La teoría de los lenguajes formales se dirige a aquellas
expresiones que pueden ser descritas de forma muy precisa, como son los
lenguajes de programación. Los lenguajes naturales no son lenguajes formales,
y, por tanto, no hay un límite claramente definido entre una sentencia correcta
de otra que no lo es. Sin embargo, se pueden adoptar algunas aproximaciones
formales a ciertos fenómenos del lenguaje natural susceptibles de una
codificación similar a la realizada en los lenguajes de programación. Estas
descripciones formales se utilizan por los lingüistas computacionales para
expresar teorías sobre aspectos específicos de los lenguajes naturales, tales
como el análisis morfológico y el análisis y etiquetado de segmentos de texto.
Johnson fue el primero en observar que determinadas
morfológicas se podrían representar por mecanismos de estado-finito,
denominando a su formalismo `two level model'. La idea del modelo de
dos-niveles fue clave para el progreso del formalismo computacional sobre la
morfología propuesto por Koskenniemi. El modelo de Koskenniemi estableció
una correspondencia entre la forma canónica, o forma léxica, y la forma
superficial de las palabras. Esta relación la representó usando transductores
finitos.
De forma sintetizada, un transductor de estado-finito (FST,
siglas en inglés), es un sistema de representación computacional que comprende
un conjunto de estados y una función de transición, que define el cambio de
estado. La función de transición se etiqueta con un par de símbolos que
constituyen el alfabeto del input y el alfabeto de output. Este
mecanismo se puede representar en la forma de un diagrama o gráfico de
estado-finito. El transductor tomaría cadenas en el input y las
relacionaría con cadenas en el output. Formalmente un FST se define como
una tupla de cinco elementos que se expresa de la forma siguiente:
FST = (S, Q,
i, F, E)
donde:
Este
transductor podría establecer una relación entre el lenguaje superior y el
inferior. Así, este mecanismo podría reconocer la cadena representada por
"ac" y la podría transformar en la cadena "bd". La
equiparación es bidireccional, y una cadena de un lenguaje se podría
corresponder a una, o más cadenas de otro lenguaje. Las transducciones son
posibles si la cadena en la parte del input lleva al transductor a un
estado final.
La
aplicación del formalismo de estado-finito a la unificación y etiquetado de
términos parte básicamente de que se puede establecer una relación de
equivalencia entre las distintas formas superficiales y la raíz, o lema, a la
que se le puede añadir una etiqueta de la categoría gramatical correspondiente,
o etiqueta POS (part-of-speech). Esta correspondencia se puede implementar
computacionalmente por medio de transductores.26 Una analizador de dos-niveles o lematizador desarrollado
con tecnología de estado-finito se encargaría de equiparar formas variantes
léxicas, a formas unificadas.
De la misma
forma, se ha utilizado el formalismo de estado-finito para el análisis
superficial (shallow parsing), donde lo que se intenta es recuperar solo una
parte de la información sintáctica del texto. Estas aproximaciones se han
basado principalmente en realizar el análisis y etiquetado de segmentos de
texto a través de cascadas de transductores, donde cada transductor agrega
información sintáctica dependiendo del contexto.27 El etiquetado
gramatical consiste en asociar a cada palabra la categoría gramatical a la que
pertenece. Esta tarea suele ser una de las primeras etapas en cualquier sistema
de procesamiento de textos. La mayor dificultad de este problema viene
provocada por la ambigüedad que presentan numerosas palabras, que pueden tener
diferentes funciones gramaticales. Esta ambigüedad hace que la solución al
etiquetado gramatical sea compleja y que pase por el uso de la información que
proporciona el contexto de cada palabra.
El análisis
y etiquetado del texto se realiza a través de cascadas de transductores, donde
cada transductor agrega, o modifica, información previamente generada por los
transductores de la cascada. Esta técnica se desarrollaría básicamente en
cuatro fases:
- Cargar el texto original, representado como una secuencia de tokens.
- Reconocimiento y etiquetado de las raíces, y terminaciones, de las palabras en un grafo de texto.
- Realización de sucesivas pasadas sobre el grafo de texto, aplicando en cada una de ellas módulos de reglas. La aplicación de las reglas recorre el grafo de texto de izquierda a derecha, analizando cada una de las posiciones si el ítem coincide con la categoría, que toda regla según la implementación debe especificar.
No hay comentarios.:
Publicar un comentario