Procesamiento de Lenguaje Natural

Share on facebook
Share on twitter
Share on linkedin
Procesamiento Lenguaje Natural

Se conoce como Procesamiento de Lenguaje Natural (NLP por sus siglas en inglés) al campo de estudio interdisciplinario entre la inteligencia artificial, las ciencias computacionales y la lingüística cuyo objetivo es lograr que las computadoras realicen tareas de utilidad que involucren el lenguaje humano. Dichas tareas pueden ser enfocadas a permitir la comunicación humano-máquina, mejorar la comunicación humano-humano o simplemente para realizar procesos de reconocimiento de habla o texto.

Remontándonos a la década de los 50’s Alan Turing propuso el famoso test que lleva su apellido con el fin de determinar la habilidad de una máquina para mostrar inteligencia. La forma de evaluar dicho test, es emitiendo un juicio sobre una conversación en lenguaje natural entre la máquina y un humano. Desde entonces, ha sido una meta el conseguir que una máquina tenga la capacidad de entender y expresarse de la manera que un humano lo haría, sin embargo, a pesar de que en los últimos años se han dado pasos importantes, un completo entendimiento del lenguaje con todas sus peculiaridades permanece elusivo para nuestros interlocutores artificiales.

A pesar de que las máquinas aún no son capaces de equiparar a un humano en el reconocimiento del lenguaje, eso no significa que no sean de utilidad para diversas aplicaciones que involucran la habilidad de procesar y en algunos casos “entender” el lenguaje. Algunas de estas aplicaciones ya nos resultan habituales, tales como los filtros detectores de spam o los correctores ortográficos, pero también otras más complejas que aún no han sido resueltas del todo, como los asistentes digitales, los sistemas de traducción automática o la respuesta automatizada de preguntas.

La principal característica del lenguaje natural que hace difícil la automatización de su procesamiento es la ambigüedad, algo con lo que el cerebro humano generalmente se acostumbra a lidiar. Al interpretar una sentencia, el ser humano evoca toda una serie de experiencias personales y contextuales que la impregnan de significado, lo cual resulta muy complejo de modelar programáticamente.

La ambigüedad en el lenguaje se puede observar en algunas frases curiosas como las siguientes:

  • Vi las montañas volando hacia Monterrey.
  • Después de la muerte, los mineros se niegan a trabajar.
  • En México, una mujer da a luz cada 15 minutos.
  • El oficial disparó al hombre con la navaja.

Otro reto importante al que se enfrenta el procesamiento de lenguaje, es la amplia variedad de lenguajes con diferentes reglas gramaticales y las variaciones regionales para un mismo lenguaje. Esto provoca falta de generalidad en las soluciones propuestas y por lo tanto, muchas veces los algoritmos tienen que ser adaptados específicamente para cada lenguaje o funcionan solamente para algunos de ellos.

Los primeros algoritmos utilizados para procesar el lenguaje fueron basados en reglas, pero dada la complejidad del lenguaje, el conjunto de reglas necesarias para modelarlo tiende a crecer desproporcionadamente, además de que por lo general dichas reglas son codificadas manualmente y requieren de casos especiales para cada posible interpretación de las palabras.

Posteriormente, la estrategia que se ha utilizado para resolver de manera pragmática el problema es el uso de modelos probabilísticos del lenguaje, que usan grandes cantidades de textos a los que se denomina corpus, los cuales son procesados para servir como ejemplos de entrada a algoritmos de aprendizaje automático. La idea es que estos modelos capturen de alguna forma la frecuencia, el orden e idealmente la semántica de las palabras.

En los últimos años ha cobrado auge el uso de redes neuronales artificiales, para muchas aplicaciones de inteligencia artificial y el procesamiento del lenguaje no es la excepción, ya que varias arquitecturas de redes neuronales han sido adaptadas para ello, en particular las redes profundas de tipo recurrente, en las que se trata de entender múltiples niveles de creciente complejidad y abstracción.

En este tipo de algoritmos y también en algunas otras aplicaciones es común usar la técnica de word embeddings, en la que las palabras son representadas como vectores de números reales sobre los que es posible realizar operaciones con algunos resultados sorprendentes. El ejemplo ilustrativo clásico es el de tomar el vector que representa la palabra “rey”, restarle el vector de “hombre” y sumarle el vector de “mujer” obteniendo como resultado el vector que representa la palabra “reina”.

Vectores de palabras
Fig. 1.  Operación con vectores de palabras.

Normalmente estos vectores son obtenidos mediante el entrenamiento de una red neuronal que toma como entrada un gran corpus de texto y produce una representación vectorial para cada palabra que captura la co-ocurrencia con las demás palabras presentes en dicho corpus.

Entre las principales aplicaciones que en la actualidad hacen uso del procesamiento de lenguaje natural están las siguientes:

  • Motores de búsqueda
  • Respuestas automáticas
  • Asistentes automáticos
  • Extracción de información
  • Análisis de sentimiento
  • Sistemas de traducción
  • Correctores ortográficos
  • Interfaces a bases de datos en lenguaje natural
  • Resúmenes de textos
  • Clasificación de documentos
  • Minería de redes sociales
  • Reconocimiento de voz

Parece que todavía falta mucho camino por recorrer para lograr una perfecta comunicación humano-máquina, un ejemplo es lo ocurrido con Tay, un bot de conversación liberado por Microsoft vía Twitter que fue dado de baja por emitir mensajes ofensivos y controversiales.

Tay-Robot
Fig. 2.  Expectativa vs. Realidad.

A pesar de todo, en el futuro se prevé un continuo progreso en el procesamiento del lenguaje aprovechando el aumento en el poder de cómputo, nuevos algoritmos y la accesibilidad a grandes volúmenes de datos, así como un mayor conocimiento de la estructura del lenguaje humano.

(Ilustraciones: Pepe Rodríguez)

Share on facebook
Share on twitter
Share on linkedin

3 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*

*

¡Conozcámonos mejor!

Súmate a nuestra newsletter donde además de ofertas exclusivas y novedades de SoldAI estaremos envíandote noticias y tendencias del mundo de la tecnología e Inteligencia Artificial.

¡Entérate de todo!