¿Qué es Procesamiento del Lenguaje Natural?

El recurso más importante que posee la raza humana es conocimiento, o sea información. En la época actual de información, del manejo eficiente de este conocimiento depende el uso de todos los demás recursos naturales, industriales y humanos.

Durante toda la historia de humanidad el conocimiento, en su mayor parte se comunica, se guarda y se maneja en la forma de lenguaje natural –griego, latín, inglés, español, etc. La época actual no es ninguna excepción: el conocimiento sigue existiendo y creándose en la forma de documentos, libros, artículos, aunque éstos se guardan en forma electrónica, o sea digital. El gran avance es que en esta forma, las computadoras ya pueden ser una ayuda enorme en el procesamiento de este conocimiento.

Sin embargo, lo que es conocimiento para nosotros –los seres humanos– no lo es para las computadoras. Son los archivos, unas secuencias de caracteres, y nada más. Una computadora puede copiar tal archivo, respaldarlo, transmitirlo, borrarlo –como un burócrata que pasa los papeles a otro burócrata sin leerlos. Pero no puede buscar las respuestas a las preguntas en este texto, hacer las inferencias lógicas sobre su contenido, generalizar y resumirlo –es decir, hacer todo lo que las personas normalmente hacemos con el texto. Porque no lo puede entender.

Para combatir esta situación, se dedica mucho esfuerzo, sobre todo en los países más desarrollados del mundo, al desarrollo de la ciencia que se encarga de habilitar a las computadoras a entender el texto. Esta ciencia, en función del enfoque práctico versus teórico, del grado en el cual se espera lograr la comprensión y de otros aspectos tiene varios nombres: procesamiento de lenguaje natural, procesamiento de texto, tecnologías de lenguaje, lingüística computacional. En todo caso, se trata de procesar el texto por su sentido y no como un archivo binario.

El esquema general de la mayoría de los sistemas y métodos que involucran el procesamiento de lenguaje es el siguiente:

·     Primero, el texto no se procesa directamente sino se transforma en una representación formal que preserva sus características relevantes para la tarea o el método específico (por ejemplo, un conjunto de cadenas de letras, una tabla de base de datos, un conjunto de predicados lógicos, etc.).

·     Luego, el programa principal manipula esta representación, transformándola según la tarea, buscando en ella las subestructuras necesarias, etc.

·     Finalmente, si es necesario, los cambios hechos a la representación formal (o la respuesta generada en esta forma) se transforman en el lenguaje natural.

Entre las tareas principales del procesamiento de lenguaje natural se puede mencionar:

·     Recuperación de información,

·     Interfaces en lenguaje natural,

·     Traducción automática.

 

Inicio

Principal

 

Recuperación de Información

La aplicación del procesamiento de lenguaje natural más obvia y quizá más importante en el momento actual es la búsqueda de información (se llama también recuperación de información). Por un lado, en Internet y en las bibliotecas digitales se contiene una cantidad enorme de conocimiento que puede dar respuestas a muchísimas preguntas que tenemos. Por otro lado, hay tanta información que no sirve porque ya no se puede encontrarla. Hoy en día la pregunta ya no es “¿si se sabe cómo...?” sino “ciertamente se sabe, pero ¿dónde está esta información?”.

Técnicamente, rara vez se trata de decidir cuáles documentos (así se llaman archivos o textos en la recuperación de información) son relevantes para la petición del usuario y cuáles no. Usualmente, una cantidad enorme de documentos se puede considerar como relevantes en cierto grado, siendo unos más relevantes y otros menos. Entonces, la tarea se entiende como medir el grado de esta relevancia para proporcionar al usuario primero el documento más relevante; si no le sirvió, el segundo más relevante, etc.

El problema más difícil de la recuperación de información es, sin embargo, no de índole técnica sino psicológica: entender cuál es la necesidad real del usuario, para qué formula su pregunta. Este problema se complica ya que no existe un lenguaje formal en el cual el usuario podría formular claramente su necesidad. (La dirección más prometedora de resolver este problema es, nuevamente, el uso de lenguaje natural.)

Las técnicas más usadas actualmente para la recuperación de información involucran la búsqueda por palabras clave: se buscan los archivos que contengan las palabras que el usuario teclee. Es decir, la representación formal usada es el conjunto de las cadenas de letras (palabras), usualmente junto con sus frecuencias en el texto (en número de ocurrencias). La claridad matemática de la tarea causó mucho avance en la teoría de estos métodos. Las ideas más usadas son los modelos probabilísticos y los procedimientos iterativos e interactivos: tratar de adivinar qué necesita el usuario preguntándolo cuáles documentos le sirven).

Sin embargo, los métodos que involucran sólo las palabras (como cadenas de letras) pero no el sentido del texto son muy limitados en su capacidad de satisfacer la necesidad informática del usuario, es decir, de hallar la respuesta a la pregunta que tiene en mente. Se puede mejorar mucho aplicado las siguientes operaciones, desde las más sencillas hasta más complejas:

·     Coincidencia de las formas morfológicas de palabras: buscando pensar, encontrar piénsalo.

Este problema es bastante simple a resolver en el lenguaje inglés, al cual se dedica la mayor parte de investigación en el mundo. Sin embargo, para el español se convierte a un problema moderadamente serio, debido a la gran variedad de las formas de palabras en español.

Los métodos de la morfología computacional –la rama del procesamiento de lenguaje natural que se encarga del modelado de las formas morfológicas de palabras– varían desde el uso de diccionarios que especifican las formas para cada palabra, hasta las heurísticas que ayudan a adivinarlas [15, 16].

·     Coincidencia de los sinónimos, conceptos más generales y más específicos: buscando cerdo, encontrar puerco, mascota, animal, etc.

Este problema prácticamente no depende de lenguaje (es tanto importante para el inglés como para el español), aunque los diccionarios que se usan sí son específicos para cada lenguaje.

La idea principal es, como ya se dijo, el uso de diccionarios jerárquicos [10, 13], que especifican los sinónimos en el mismo nivel del árbol y los conceptos más específicos debajo de los conceptos más generales. Uno de los problemas que aún no recibieron una solución adecuada es medir las distancias en este árbol: qué tan parecida es la palabra cerdo a puerco? y a mascota? animal? objeto?

Una generalización de esta idea son los diccionarios de las palabras conceptualmente relacionadas, por ejemplo, cerdo y tocino; sacerdote, Biblia, iglesia y rezar. Aquí, el problema de la medición de distancia es aún más difícil.

·     Tomar en cuenta las relaciones entre las palabras en la petición del usuario y en el documento: buscando estudio de planes, rechazar como no relevante planes de estudio.

Para lograr este grado de calidad, se necesita reconocer (automáticamente) la estructura del texto y representarla en forma que permita la comparación necesaria, por ejemplo, en la forma de los grafos conceptuales.

Recientemente se adelantaron los desarrollos en una aproximación diferente al problema de búsqueda de información: generación automática de respuestas. La idea es la siguiente: en lugar de presentarle al usuario el documento completo donde probablemente se contiene la respuesta a su pregunta (por ejemplo, ¿cuándo fue la revolución mexicana?), simplemente darle la respuesta (en este caso, generar “En 1910-1917” basándose en la información encontrada en los textos).

Una de las técnicas más usadas para esto es la extracción de información: transformación de algunas partes de los textos libres en un formato de base de datos, por ejemplo: evento–fecha, artículo–lugar–precio, etc. Otra técnica posible es el razonamiento lógico sobre las relaciones encontradas en el texto.

 

Inicio

Principal

 

Interfaces en Lenguaje Natural

Las computadoras están entrando en todos los aspectos de nuestra vida cotidiana: en las oficinas, en las tiendas, en las escuelas, en los servicios públicos. Sin embargo, la gran mayoría del pueblo no tiene la preparación adecuada para usarlas ya que se requiere saber cómo se usan. Y nunca va a tener esta preparación, por el simple hecho: económicamente, más conviene que las máquinas se adapten al modo de la comunicación de las personas y no que todas las personas (las cuales sólo en el mundo hispanohablante son 400 millones), generación tras generación, aprendan cómo usar las máquinas –por ejemplo, aprendan el SQL para formular con precisión sus preguntas.

De esto surge la idea ya muy conocida de las películas de fantaciencia: las personas debemos poder hablar con las máquinas (o sea, los robots) como hablaríamos con nuestros sirvientes, dándoles órdenes en la forma cotidiana y escuchando sus respuestas.

Hablando de darles órdenes, no se trata de pronunciar los comandos especiales que de otra manera escogeríamos del menú: abrir, edición, copiar, guardar, salir (de modo similar a como se habla al perro pastor). En lugar de esto, se trata de hablar a la máquina como hablaríamos al ser humano.

Un tipo específico de las interfaces en lenguaje natural son preguntas complejas a una base de datos. Como un ejemplo, podemos mencionar el sistema TRAINS desarrollado en la Universidad de Rochester en los EE.UU. por James Allen. Este sistema vende los boletos de tren. El cliente –que puede ser cualquier persona sin ningún conocimiento sobre las máquinas– llama por teléfono a la estación de trenes y formula su necesidad: tengo que ir mañana en la tarde a Nueva York. El programa –sin siquiera darse cuenta el cliente de que habla con una máquina y no con una persona– trata de entender su pregunta e internamente la traduce a SQL, para ejecutar la búsqueda en su base de datos. Después, el programa conduce (por teléfono) el diálogo con el usuario, explicándole los precios y las condiciones, escuchando sus preguntas o comentarios sobre cuál boleto más le conviene, etc. Finalmente, si llegan al acuerdo, le reserva el boleto. Todo eso, nuevamente enfatizamos, no requiere del cliente ningún conocimiento previo sobre el manejo de los programas sino sólo el manejo natural de lenguaje que cotidianamente usa para hablar con otras personas.

El problema más importante de este tipo de aplicaciones es que –a diferencia de las aplicaciones en la recuperación de información– se requiere entender exactamente la intención del usuario, ya que el costo de error puede ser muy alto. Realmente, si el robot entiende incorrectamente el comando, pude hacer alguna acción destructiva o peligrosa. Si se malentiende la pregunta a la base de datos, la información proporcionada resultará incorrecta, lo que puede causar consecuencias graves.

Entonces, las interfaces en lenguaje natural en muchos casos requieren de las representaciones de información más detalladas y complejas, así como del análisis lingüístico más preciso y completo.

 

Inicio

Principal

 

Traducción Automática

Históricamente, el sueño de la traducción automática motivó las primeras investigaciones en lingüística computacional. A la primera vista, la traducción parece ser un trabajo bastante mecánico y aburrido, que puede fácilmente hacer la máquina: sustituir las palabras en un lenguaje con sus equivalentes en el otro.

Sin embargo, con los avances en los programas de traducción se hizo cada vez más obvio que esta tarea no es tan simple. Esto se debe, en una parte, a las diferencias entre los lenguajes las cuales varían desde muy obvias (por ejemplo, el orden de palabras es diferente en inglés y en español) hasta más sutiles (el uso de diferentes expresiones y diferente estilo).

El esquema general de prácticamente cualquier traductor automático es (en acuerdo con el esquema expuesto en la introducción a este artículo) el siguiente:

·     El texto en el lenguaje fuente se transforma a una representación intermedia,

·     De ser necesario, se hacen algunos cambios a esta representación,

·     Luego, esta representación intermedia se transforma al texto en el lenguaje final.

En algunos sistemas, al texto generado con este esquema también se aplican algunos ajustes previstas por las heurísticas de traducción.

De la calidad esperada de traducción y de la proximidad de los dos lenguajes depende qué tan profundas son las transformaciones entre las dos representaciones, es decir, que tan diferente es la representación intermedia del texto en el lenguaje humano.

En algunos casos (se puede mencionar los traductores entre los lenguajes tan parecidos como español y catalán, portugués y gallego, etc.) basta con la representación morfológica: el análisis y generación de las palabras fuera del contexto. Por ejemplo, la palabra española hijas se analiza como HIJO-femenino-plural, se transforma (usando una tabla de correspondencias) a la representación FILHA-femenino-plural, de la cual se genera la palabra portuguesa filhas (aqui, HIJA y FILHA son claves de acceso a la base de datos que contiene las propiedades de las palabras en los lenguajes correspondientes).

En otros casos, cuando hay diferencias estructurales más profundos entre los lenguajes (que es el caso de casi cualquier par de idiomas, incluidos español–inglés, español–francés, etc.), se usan como la representación intermedia (que en este caso se llama interlingua) las estructuras formales de predicados lógicos o sus equivalentes, por ejemplo, redes semánticas (véase más abajo). Esta representación independiente de lenguaje es en realidad el sentido del mensaje que comunica el texto. Es decir, la transformación del texto a esta representación formal es comprensión del texto, y la transformación en el sentido contrario es generación: teniendo una idea, decirla en el lenguaje humano.

De esta discusión queda completamente claro que en el caso de la traducción automática (de tipo interlingua) es aún mucho más importante que el programa comprende el texto perfectamente y, por otro lado, pueda correctamente verbalizar el sentido dado. Cualquier error en compresión del texto fuente causaría la traducción incorrecta, lo que, dependiendo de la situación del uso del texto traducido, puede resultar en consecuencias graves.

Entonces, este tipo de los sistemas de traducción requiere de toda la fuerza de la ciencia de lingüística computacional, los métodos más precisos y completos del análisis del texto y representación de su contenido.

Adicionalmente a los problemas de análisis de texto, la traducción automática enfrenta los problemas específicos para la generación de texto. Uno de estos problemas es la selección de palabras. Por ejemplo, para traducir de inglés la frase John pays attention to Mary, no basta con encontrar en el diccionario el verbo pay ‘pagar’ ya que esta variante de traducción es incorrecta: *Juan paga atención a María. La manera correcta de representar la palabra pay es tratarla como una llamada función léxica: esta palabra significa la ejecución de la acción de atención por el agente (Juan). En el español, la palabra que indica la ejecución de atención es prestar. Nótese que la selección de la palabra depende de la acción: para culpa es echar (Juan hecha culpa a María), para propiedad es mostrar, etc.

Otro ejemplo de una función léxica es el significado de mucho o muy: té cargado, voz alta, viento fuerte, gran vergüenza, alto mar, idiota perfecto, amigo incondicional, correr rápido, saber al dedillo. Las funciones tienen sus denominaciones, por ejemplo, la función que significa muy tiene la denominación Magn, es decir, Magn (saber) = al dedillo. Se usan las combinaciones de estas funciones para formar otras funciones compuestas o para expresar las transformaciones equivalentes [5].

Nótese también que estas funciones son, en muchos casos, diferentes en diferentes lenguajes (como en el ejemplo de pay attention / prestar atención), lo que justifica su trato indirecto y separado en cada lenguaje en el proceso de traducción o generación.

Inicio

Principal