Marzo 1997
Procesamiento del lenguaje natural: revisión del estado actual, bases teóricas y aplicaciones (Parte II)
Por Eduardo Sosa
La primera parte de este artículo se publicó en el anterior número de IWE, vol. 6, nº 1-2, enero-febrero de 1997, pp. 26-29.
Analizadores sintácticos
Parsing es el término con el que se denomina el proceso de análisis sintáctico realizado en PLN. Consiste en un conjunto de operaciones algorítmicas necesarias para la comprensión sintáctica de una frase, teniendo como input una frase y como output una representación arbórea del resultado.
Las operaciones de análisis que se realizan son agrupamientos parciales de los signos léxicos en unidades superiores. Por ejemplo, un determinante combinado con un nombre será tratado por una regla que permita la creación de un sintagma nominal. Esta unidad sintagmática se utilizará en otras reglas para formar unidades superiores. En el momento que se haya analizado la frase tendremos conocimiento de todas las unidades léxicas que aparecen y la relación establecida entre ellas. El resultado de este análisis puede ser utilizado para realizar un análisis semántico.
El parser o analizador produce inferencias a partir de la información consultada en el módulo de gramática. Sus algoritmos son considerados procedimientos de búsqueda que dirigen el proceso y elaboran la representación de la estructura de la frase. La función de un parser es, por tanto, identificar los elementos de la oración y especificar la relaciones entre ellos.
Procedimientos de análisis
En función de la organización del análisis y la combinación de reglas se diferencia entre analizadores descendentes y analizadores ascendentes.
Analizadores descendentes
Conocidos también con el nombre de top-down, se caracterizan por comenzar el proceso de análisis por las reglas más generales: si consideramos la representación del análisis en forma arbórea, en la parte superior (top) aparecen las reglas más generales, y a medida que descendemos se procesan las más específicas, llegando finalmente a las unidades léxicas formadas por palabras.
En modo top-down el programa comienza por reglas generales como
O --> SN, SV
(indica que una oración está formada por un sintagma nominal seguido de un sintagma verbal). La siguiente regla a aplicar sería del tipo:
SN --> Det, Nombre
(indica que un sintagma nominal está formado por un determinante seguido de un nombre). En el proceso de parsing de la frase
el cliente compra un libro
se aplicarían las siguientes reglas según este orden:
Analizadores ascendentes
Conocidos también como bottom-up, aplican las reglas en orden inverso al modelo anterior: el análisis comienza por la parte inferior del árbol (bottom), y se forman unidades complejas ascendiendo hacia la parte superior (up).
El primer paso es el reconocimiento de las categorías de las palabras:
para formar posteriormente unidades sintagmáticas en forma ascendente.
Los estados de análisis son generados por la asignación de una palabra a su categoría léxica correspondiente, o bien reemplazando la parte derecha de una regla por su parte izquierda.
Algunas aplicaciones del PLN
A pesar de que hoy en día sus aplicaciones son limitadas, a medida que se incorporen nuevos avances el uso de técnicas de PLN puede comportar la integración en numerosas actividades.
Los ámbitos actuales de aplicación pueden ser clasificados de la siguiente manera:
No obstante existen problemas asociados a su utilización, como son:
A causa de estas desventajas las aplicaciones han sido más bien modestas o asociadas a dominios de lenguaje restringido.
En los últimos años se han incorporado nuevas técnicas de tratamiento sintáctico, semántico y pragmático con la finalidad de obtener desambiguaciones léxicas más adecuadas.
Asimismo, ha surgido la tendencia de diseñar aplicaciones para dominios y tipos de textos concretos. De esta manera la utilización de un sublenguaje propio del dominio facilita la tarea de la traducción.
En las aplicaciones que se comercializan todavía se incluyen técnicas de traducción basadas en palabra por palabra, y los avances del PLN en general no son incorporados, posiblemente por su falta de viabilidad comercial.
Lenguajes de programación declarativos y PLN
El uso de lenguajes procedurales permite representar problemas formados por una secuencia de acciones que se han de desarrollar en un orden concreto. Por ejemplo, el algoritmo que gestione imprimir un documento constará de unas instrucciones que se ejecutarán en un orden establecido. En cambio, la ejecución de tareas en un programa de procesamiento del lenguaje se realiza a partir de las reglas de la gramática implementada, y el conocimiento generado puede estar implícito en las instrucciones que especifican cómo ejecutar la tarea; una representación procedural no sería la más adecuada.
Los lenguajes de programación declarativos permiten al programador especificar las reglas y delegar al programa las decisiones de proceso.
Prolog es uno de los lenguajes más difundidos basado en programación lógica. En este tipo de lenguajes se trata de describir los problemas en forma lógica, expresando no cómo hacer un proceso sino qué se ha de hacer.
Una gramática construida de tal manera permitirá tanto verificar si una oración está bien formada como la generación de oraciones. Los programas elaborados en estilo declarativo presentan ventajas considerables como son simplicidad, claridad, comprensibilidad, reusabilidad y mantenibilidad.
Prolog, abreviación de programación lógica, es el lenguaje de programación creado en los años setenta por Alain Colmerauer y que se ha convertido en un estándar en PLN. Programar en Prolog consiste en declarar hechos sobre los objetos y sus relaciones, definir reglas que permitan crear inferencias y, finalmente, hacer preguntas sobre objetos y relaciones.
Gramáticas de cláusulas definidas (DCG)
Prolog es un lenguaje declarativo que además de sus propias reglas de programación incorpora las denominadas DCG o Definite Clause Grammars. Una DCG es principalmente una extensión de Prolog para la construcción de gramáticas. Éstas son escritas en un formato basado en reglas gramaticales que son interpretadas por el programa en código Prolog.
O --> SN (persona: P, número: N),
SV (persona: P, número: N, forma_verbal: pres).
SN (persona: 3, número: singular) --> [Juan].
SN (persona: 3, numero: singular) --> [ella].
...
...
Un ejemplo de reglas definidas en DCG
En la extensión de este artículo se ha pretendido aproximar al lector a las técnicas y conceptos más comunes utilizados en PLN. Para ello, utilizando un lenguaje básico, se han explicado algunos de sus fundamentos, que, de otro modo, se pueden encontrar explicados extensamente en la bibliografía recomendada.
El tema, en la actualidad más focalizado en la investigación que en el sector comercial, no deja de ser próspero y es de esperar una confluencia cada vez más productiva entre estos dos sectores.
Bibliografía recomendada
Allen, J. Natural language understanding. Redwood City: The Benjamin / Cummings Publishing Company, 1995.
Bach, E. W. Informal lectures on formal semantics. New York: State University of New York Press, 1989.
Chierchia, G. Meaning and grammar: an introduction to semantics. Cambridge: MIT Press, 1990.
Gazdar, G.; Mellish, C. Natural language processing in Prolog. An introduction to computational linguistics. Wokingham: Addison‑Wesley, 1989.
Grishman, R. Introducción a la lingüística computacional. Madrid: Visor, 1991.
McEnery, T. Computational linguistics: a handbook & toolbox for natural language processing. Wilmslow: Sigma Press, 1992.
Meya Llopart, Montserrat; Huber, Wolfgang. Lingüística computacional. Barcelona: Teide, 1986.
N. de la R.: El segundo autor no tiene nada que ver con el conocido directivo del programa Info2000 de la DGXIII de la Comisión Europea.
Reichgelt, H. Knowledge representation: an AI perspective. Norwood: Ablex, 1991.
Eduardo Sosa. Sección científica de Biblioteconomía y Documentación. Universitat Pompeu Fabra. Barcelona.
Tel.: +34-3-542 22 64; fax: 542 23 72
sosa_eduard ARROBA fcsc.upf.es
Enlace del artículo:
http://www.elprofesionaldelainformacion.com/contenidos/1997/marzo/procesamiento_del_lenguaje_natural_revisin_del_estado_actual_bases_tericas_y_aplicaciones_parte_ii.html