El profesional de la información


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:

  • O  --> SN, SV
  • SN --> Det, N
  • Det--> el
  • N  --> cliente
  • SV --> V, SN
  • V  --> compra
  • SN --> Det, N
  • Det--> un
  • N  --> libro

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:

  • Det--> el
  • N  --> cliente

para formar posteriormente unidades sintagmáticas en forma ascendente.

  • SN --> Det, N

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:

  • Sistemas de recuperación de información (SRI).

    Como es conocido, la finalidad de un SRI, definida de manera muy general, consiste en recuperar de entre una colección de documentos aquellos que respondan a una necesidad de información.

    La aplicación del PLN y la representación del contenido semántico de cada documento permite acceder a la información, teniendo en cuenta el carácter polisémico del lenguaje y utilizando procesos de inferencias semejantes a los que una persona utiliza para seleccionar información.

    La refocalización, estrechamiento o ampliación de la búsqueda, uso de sinónimos contextualizados, relaciones parte-todo... son algunas de las mejoras en comparación a los tratamientos actuales.

    El PLN se enfrenta a problemas pendientes de solucionar, con lo cual aplicaciones que utilicen estas técnicas de forma extensiva quedan enmarcadas en el ámbito de la investigación.
  • Interfaces de preguntas y respuestas.

    Su propósito es posibilitar que la persona se comunique con el ordenador en lenguaje natural. Con su aplicación el usuario es capaz de introducir órdenes o consultas, por ejemplo en una base de datos, sin necesidad de utilizar un lenguaje especializado, sino haciendo uso del lenguaje natural.

No obstante existen problemas asociados a su utilización, como son:

  • los recursos de ordenador que puede consumir son elevados y por tanto ocasionan tiempo de demora.
  • el interfaz no puede cubrir todo el espectro del lenguaje natural, y por consiguiente el usuario tiene que conocer el subconjunto del lenguaje utilizado.
  • el interfaz puede producir errores en su interpretación.

A causa de estas desventajas las aplicaciones han sido más bien modestas o asociadas a dominios de lenguaje restringido.

  • Traducción automática.

    Se trata de una de las áreas claves en la aplicación del PLN, que a pesar de los resultados no tan satisfactorios como los deseados, mantiene un elevado interés tanto desde un punto de vista de investigación como económico.

    Su teoría se fundamenta en la idea de que en un texto es posible diferenciar la forma de su contenido, y por tanto es posible expresar éste último en la forma adecuada de otra lengua.

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