NLP Parsing
Parsear, en el contexto del procesamiento de lenguaje natural consiste en encontrar la estructura gramatical de las oraciones. por ejemplo, ver que grupos de palabras van juntas como frases y que palabras o frases son el sujeto, el verbo y el predicado.
El objetivo de un parseo es determinar el árbol del análisis gramatical de una oración dada. Este árbol describe las dependencias entre las diferentes palabras o estructuras gramaticales como frases substantivas, frases adverbiales, sujeto predicado, objetos (directo e indirecto), etc…
Parsing viene del latín (pars) que es parte o división, y formalmente es el proceso del análisis de una cadena de símbolos ya sea en lenguaje natural, lenguajes formales, lenguajes de computadora o estructuras de datos, los cuales siguen una gramática, ya sea formal o informal (natural).
Uno de los problemas principales de los lenguajes naturales es que se pueden llegar a distintos árboles de resultado ya que las palabras tienen diferentes partes de la oración y pueden generar diferentes dependencias.
Para esto se pueden utilizar diferentes métodos de análisis:
- POS tagging o Part-of-Speech tagging, el cual consiste en darle a cada una de las palabras una etiqueta que le asigna su parte de la oración y esas etiquetas dependen de la palabra y de las palabras anteriores a ella lo que induce una secuencia.
- Shallow parsing o análisis superficial, consiste en asignar estructura a las diferentes partes de la oración, esta estructura consiste en asignar las palabras con sus respectivas etiquetas a uno de varios tipos de frases, y estas frases a sus componentes, ya sea el sujeto, o el predicado.
- Análisis por constituyentes (Constituency Parsing): En este tipo de analizadores, cad una de las palabras pertenece a una categoría determinada por las palabras vecinas.
- Análisis de dependencias Este método se basa en la teoría de las dependencias, la cual indica (a grandes rasgos) que cada una de las palabras o frases depende de otra u otras, y este orden de las palabras define el árbol de dependencias. Existen diferentes tipos de dependencias las cuales pueden ser estudiadas, sintácticas, morfológicas, prosódicas y semánticas.
Existen diferentes parsers o analizadores que se pueden utilizar los cuales utilizan las teorías aqui presentadas, además de algunas técnicas utilizadas para el análisis de lenguajes formales. Estos parsers se pueden ver en el capítulo 8 de Natural Language Processing with Python https://www.nltk.org/book/ch08.html
Una manera rápida, informal y que generalmente sólo funciona con oraciones sencillas consiste en seccionar las diferentes oraciones, y una vez obtenida la lista de oraciones a trabajar, se buscan los verbos, ya sea con diccionarios de conjugaciones o buscando las terminaciones de las diferentes palabras. Una vez hecho esto, todo lo que queda antes del verbo es sujeto y todo lo que va después es el predicado, por lo que esto nos secciona rápidamente las oraciones y podemos después utilizar otros métodos mas elaborados para tratar con cada una de las partes.