Ok, Google: busca qué es NLP o “Natural Language Processing”

Parlante de Google Voice Assistant utilizando Natural Language Processing (NLP), un elemento clave de la inteligencia artificial para comprendernos
EL asistente de voz de Google funciona mediante el procesamiento del lenguaje natural

Y Google me respondió algo así: NLP es la sigla en inglés para procesamiento del lenguaje natural o natural language processing.

El procesamiento del lenguaje natural es un componente esencial de la inteligencia artificial y se apoya en el machine learning. El NLP tiene múltiples aplicaciones desde el asistente de Google hasta clasificación de documentos. Y esto es solo el comienzo.

Hubo algunos intentos de desarrollo de traducción automática ya en 1930, pero 1950 marca el verdadero inicio de esta historia con la publicación de “Computing Machinery and Intelligence“, por Alan Turing, en el que propone un test de inteligencia conocido como el Test de Turing que pone a prueba la habilidad de un programa computacional de mantener una conversación en tiempo real con un humano.

Entre los años 50 y hasta los 80, diferentes avances en traducciones automáticas, modelos gramaticales que contribuyeron desde la lingüística, como el trabajo de Noam Chomsky en 1957, así como trabajos en entendimiento e input de lenguaje en los 60 y 70, fueron haciendo el camino del NLP del presente.

El avance comienza realmente a acelerarse hacia los 80 cuando se incluyen los algoritmos de machine learning. La popularidad del NLP aumentó con los modelos de análisis estadísticos durante los 90 y hacia principios de siglo XXI, cuando Yoshua Bengio propone, junto con su equipo, el primer modelo neural de lenguaje.

2011 da la bienvenida a Siri, uno de los más exitosos asistentes virtuales de uso doméstico, al que luego se unirían Cortana, Alexa, Google Assistant y Bixby, entre otros.

Para 2013 y 2014 el NPL comienza a adoptar modelos de redes neurales. Y en 2018 se emplean modelos de lenguajes preentrenados.

Procesar lenguaje natural

Para los humanos la facultad del lenguaje viene dada. La lengua que hablamos todos los días tiene un repertorio enorme, aunque finito, de palabras que pueden tener más de un significado, incorpora jerarquías y dependencias entre ellas, incluye abstracciones, metáforas, ironías, chistes e incluso mentiras. Es un sistema indefinido, ambiguo e impreciso: a partir de un conjunto limitado de sonidos, palabras y reglas —en alguna medida flexibles— de formación. Esto quiere decir que los hablantes podemos producir y entender un número potencialmente infinito de expresiones. Incluso cosas que nunca antes hayamos proferido o escuchado y que quizás nunca se vayan a volver a repetir.

Entonces parece natural que queramos comunicarnos con todo lo que nos rodea, hasta con las máquinas, a pesar de que sea un verdadero desafío.

¿Cómo se hace?

La historia corta es que se entrenan algoritmos para identificar y extraer las reglas del lenguaje natural para convertirlas a un formato que las computadoras puedan comprender.

Parece una tarea sencilla. Partamos de que la lengua está compuesta por palabras —dejando los sonidos y los morfemas que componen las palabras para otro momento—, que pueden tener más de un significado y que están sujetas jerarquías y dependencias. Una vez que tenemos este problema identificado, definimos un algoritmo que haga el trabajo de clasificarlas.

Para hacerlo, los modelos de clasificación asignan un set de números (llamado vector) a cada palabra que se le muestra durante su entrenamiento. El proceso de entrenamiento consiste en presentarle al algoritmo un conjunto de ejemplos. Por un lado el input y por otro output o resultados deseados. A partir de estos conjuntos, el algoritmo debe ser capaz de reconocer el patrón y desarrollar reglas para ejemplos que no sean parte del conjunto inicial.

Google Voice Assistant escuchando e interpretando al usuario (GIF: Pinterest)

El vector codifica un significado como un punto en un espacio imaginario. Así, conceptos similares tendrán un conjunto de números similar que los representen, mientras que palabras con significados diferentes se codificarán en un vector completamente diferente.

El siguiente paso es juntar las palabras de una oración y observar los vectores de toda la expresión. Podemos emplear un modelo ya entrenado para predecir, por ejemplo, si las expresiones analizadas son positivas, negativas o neutrales, de forma automática.

Así se usa el NPL hoy

Las aplicaciones del NLP pueden ir desde la traducción, como Google Translate, mejorar la eficiencia en el procesamiento de documentación, identificar la información pertinente en bases de datos grandes. También existen aplicaciones que trabajan con la voz, en los que el sistema debe reconocer y “transcribir” lo que escucha para luego procesarlo. Este es el caso de los asistentes personales. Se sigue avanzando sobre mejoras en correctores de gramática, como Microsoft Word y Grammarly; sumarización de textos, respuestas a preguntas, por nombrar algunos.

En Bunker DB usamos un modelo preentrenado de NLP para predecir el sentimiento de los comentarios que reciben las publicaciones de las marcas en las redes sociales. El módulo recoge los comentarios y analiza el texto para arrojar uno a uno y en promedio si el sentimiento de la audiencia de una marca es positivo, negativo o neutral. La dificultad con la que nos encontramos, trabajando en latinoamérica, es la gran variedad de diferentes españoles que se hablan y expresiones regionales.

Clasificación de sentimiento de comentarios en positivo, neutral o negativo.

Para resolver este inconveniente, complementamos el modelo preentrenado con un algoritmo que desarrollamos para reconocer expresiones regionales de variedades del español de latinoamérica. Esto nos diferencia de todos los otros modelos de clasificación de sentimiento, pues ningún otro es capaz de hacer una predicción de sentimiento tan específica.

Los límites de mi lenguaje significan los límites de mi mundo.”

Hablemos de qué podemos esperar del NLP en el futuro o mejor dicho, ¿qué podemos esperar del futuro con NLP? La frase de arriba pertenece al lingüista Ludwig Wittgenstein y refiere a los límites del entendimiento. Si cabe esta frase también para los algoritmos, entonces podemos cuestionarnos sobre los límites de las aplicaciones que la IA y el NLP pueden tener. Por el momento, podemos esperar una transformación en customer experience, llevando a una mejora en la lealtad de los clientes, cobertura omnicanal del ecosistema de comunicación de las empresas. El NLP podrá unificar los campos de big data y Business intelligence e incrementará las capacidades de data-interpretation.

Aunque la historia comenzó hace más de un siglo, recién estamos empezando a ver los resultados de su desarrollo y queda mucho camino por recorrer.