Ir al contenido principal

Procesamiento del Lenguaje Natural



Seguramente te has percatado que al escribir erróneamente una palabra en WhatsApp te la corrige automáticamente; me atrevo a asegurar que usaste alguna vez un traductor automático, como Google-Translator; quizás te ha sido de utilidad la opción de autocompletar cuando estás en un buscador de Internet; probablemente has utilizado el reconocimiento de voz de tu celular, como Siri o Cortana; o ¿alguna vez escuchaste la voz que emerge de un robot? Todos estos son ejemplos de aplicaciones de la Inteligencia Artificial, en particular de un área conocida como procesamiento del Lenguaje Natural (PLN).

El PLN (no confundir con PNL, -Programación Neurolingüística) tiene como objetivo proponer modelos y técnicas que permitan comprender los símbolos y reglas de un lenguaje para así poder generar "productos" prácticos dentro de un ambiente computacional. Para lograr esto, el PLN divide su trabajo en 4 tareas fundamentales: la morfología, la sintaxis, la semántica y la pragmática.

La morfología estudia la composición de las palabras. En "gat-o-s" encontramos información morfológica relevante: "gat" es la raíz, la cual será invariable (gatos, gatas, gato, gata, gatito, gatita, -por cierto, en un diccionario no se encuentran todas estas entradas, ya que otros procesos morfológicos, como la composición o la derivación, nos ayudan a generarlas); "-o" es un morfema de género masculino y "-s" es un morfema de número plural.

La sintaxis trabaja evaluando la correcta estructura de una oración. El español es muy flexible en este aspecto: "La casa roja es de Pedro", "Es de Pedro la casa roja", "De Pedro es la casa roja", "Roja es la casa de Pedro" son oraciones válidas, pero "casa Pedro de es la roja" es una oración con estructura sintáctica incorrecta.

La semántica estudia el verdadero sentido o significado de las oraciones. En "el gato está debajo del auto", no podemos estar seguros a qué "objeto" gato se están refiriendo. ¿Acaso a un animal? ¿a una herramienta? o hablando despectivamente, ¿se refiere a un trabajador? Ante esta situación, se hace necesario una labor de análisis del contexto, cuando sea posible. Si la oración está dentro de un contexto de mecánica automotriz, es más probable (aunque no seguro) que se esté hablando de una herramienta, más que de un animal.

Hablar de la pragmática es intentar dar un paso más allá en la obtención de un significado. Estamos verificando cuánto influye el contexto en la interpretación del mismo. Imagina a un hablante decir "- Disculpe, ¿sabe dónde está el Hotel Holiday?" y que el interlocutor responda "- sí, claro que lo sé" (y se va). Ahora bien, si una mujer dice "¡hace frio esta mañana!" ¿A qué hace referencia? Quizás solamente está tratando de describir el clima. ¿Y si se lo está diciendo a su pareja? Es probable que, en vez de describir el clima, intente decirle que cierre las ventanas o, inclusive, quiere simplemente que la abrace. El nivel pragmático implica un verdadero reto, ya que se deben tomar en consideración aspectos como la intención, el tono, la interacción y el uso social del lenguaje. Este tipo de estudio va más allá del significado de las oraciones, es una verdadera comprensión de la comunicación emisor-destinatario.

Afortunadamente se ha avanzado mucho en la implementación de los resultados de investigación en estas tareas, tan es así que, cuando escuchamos hablar de dispositivos "inteligentes", es en gran medida por los avances en esta área. Sumados a los mencionados al inicio de este texto, podemos enumerar otras aplicaciones, como la generación de resúmenes, la clasificación de textos, los sistemas de dictado o de diálogo, la evaluación automática de respuestas, la minería de textos (análisis de sentimientos), entre otras.
La próxima vez que hagas uso de alguna de estas herramientas, recuerda que gran parte de su funcionalidad fue gracias al PLN ... ¡y a la Inteligencia Artificial!

Comentarios

Entradas más populares de este blog

RMI: un ejemplo práctico

En el desarrollo de software, la idea de separar la lógica del negocio de la interfaz gráfica de usuario (GUI) fue posible gracias, entre otras cosas, al concepto de middleware (software que se sitúa entre un sistema operativo y las aplicaciones que se ejecutan en él) y la teoría de los sistemas distribuidos. Dentro de la programación orientada a objetos (POO) encontramos un ejemplo representativo de middleware para objetos distribuidos: RMI (Remote Method Invocation). RMI, así como otras tecnologías middleware, tienen como antecedente a RPC (Remote Procedure Call), que se usaba ampliamente dentro del paradigma procedimental, y introdujo conceptos muy importantes como stubs, skeletons e IDL. La principal ventaja (y desventaja) de RMI es que es una tecnología propia en Java, por lo que solamente los objetos remotos que se programen aquí, estarán disponibles para aplicaciones programadas con Java. Un error común cuando hablamos de RMI y otras tecnologías dis...