Media  //  Blog  //  NLG, NLU, NLG... ¿Qué narices es esto?

NLG, NLU, NLG... ¿Qué narices es esto?

Hoy en día estamos acostumbrados a comunicarnos con máquinas por todas partes: los asistentes virtuales de nuestras casas, los contestadores en teléfonos de asistencia técnica... y todos sabemos que esto solo va a ir a más.

La meta de casi todo desarrollador de asistentes virtuales o chatbots es que el usuario sea incapaz de diferenciar si está interactuando con una máquina o con otro ser humano. Suena más fácil de lo que es, ya que el lenguaje y la capacidad humana de entendimiento que poseemos es de las cosas más complejas y cambiantes que existen. Aun así, el desarrollo de los asistentes virtuales tiene un futuro muy prometedor, así que si estás interesado en el mundo chatbot, lo primero es conocer bien la jerga.

Me he dado cuenta de que los que hablamos de estas tecnologías nos encontramos con términos muy similares que, frecuentemente, se mezclan y utilizan erróneamente. En especial, hablo de las siglas NLP, NLU y NLG, que en ocasiones se usan indistintamente pero que no significan lo mismo. Aquí tenéis un pequeño resumen de cada una de ellas y así en la siguiente charla de tecnología a la que vayáis podréis cazar al que no se lo ha estudiado.

NLP - Procesamiento del Lenguaje Natural (en inglés: Natural Language Processing)

Define de forma general todo el proceso de las máquinas para poder entender el lenguaje humano. Este proceso suele comenzar con una ingesta de datos (frases), que se descomponen para poder comprender el significado, y una vez esa intención se sabe, se toma la acción adecuada. Esta acción puede ser de todo tipo, y muchas veces requiere que la propia máquina conteste, generando la respuesta en el momento o con respuestas predefinidas.  (Para complicar las cosas, existe NLP como neuro-linguistic programming, programación neurolingüística, pero representa un campo de la comunicación, psicoterapia y crecimiento personal).

NLU – Comprensión del Lenguaje Natural (en inglés: Natural Language Understanding)

Se define como un subconjunto de procesos NLP que hablan específicamente de cómo convertir la ingesta de datos (lo que le decimos a la máquina) en algo que pueda entender para poder actuar en consecuencia. Para nosotros, como seres humanos,  no requiere mucho esfuerzo, pero para una máquinas entender dobles significados, juegos de palabras, insultos y encima intentar hacerlo con faltas de ortografía es un mundo. Esta parte del proceso es fundamental, y es la que marca la diferencia entre que nos dé la impresión de hablar con otra persona o tirarnos de los pelos cuando nos responden por quinta vez un “repite por favor, no te entiendo”.
 

Viñetas de what you say what a dog hears. Hombre hablando con perro

1-Comic de Gary Larson


NLG – Generación de Lenguaje Natural (en inglés: Natural Language Generation)

Es el proceso contrario a la comprensión del lenguaje (NLU), es decir, cuando una máquina escribe o habla en nuestro lenguaje. En NLG los datos estructurados se convierten en y/o habla. Parece sencillo, pero realmente lo que estás haciendo es intentar enseñarle todo el vocabulario, gramática, expresiones y sintaxis de tu lengua a un bot (y tú que pensabas que no ibas a volver a usar las clases de Lengua). Y por si no fuera suficiente debes enseñarle también a comprender todo lo que no entra dentro las normas del lenguaje, porque nuestra manera de comunicarnos respeta esas normas casi tantas veces como se las salta.

viñetas de Greg Williams. Búfalos humanizados hablando

2-Comic de Greg Williams

 

¿Qué conclusión sacamos de todo esto? A rasgos generales, que NLP = NLU+ NLG. Evidentemente hay muchas más cosas que entran bajo el campo del procesamiento del lenguaje natural, así que en esa suma faltan variables, pero como una pequeña introducción a estos términos no está mal. La realidad es que cada una de estas partes tiene su complejidad, y no es trivial conseguir que una máquina mantenga una conversación contigo.
 

Viñetas de Randall Munroe. Hombre y mujer hablando

3-Comic de Randall Munroe
 

Una manera de resolver muchas de las limitaciones de un bot es combinar este proceso con IA (Inteligencia Artificial), consiguiendo ir un paso más allá en imitar la comunicación humana. Hay muchas maneras en las que la IA puede ayudar a nuestros sistemas NLP, pero de eso hablaremos la próxima vez.

 

Algunas referencias:

http://www.germin8.com/blog/natural-language-processing-nlp/

https://planetachatbot.com/definicion-nlp-nlu-nlg-y-c0mo-funcionan-los-chatbots-fcf4b22e065a


Comics:

https://consciouscompanion2012.com/tag/how-to-train-my-dog-to/ by Gary Larson

https://wikiworldcomic.wordpress.com/ by Greg Williams

https://xkcd.com/948/ by Randall Munroe
Comentarios:
Alex Navarro
Gracias por este estupendo artículo para aclarar los términos y comprender los conceptos de este complejo pero apasionante mundo. Y es que solo hay que pensar que un ser humano, tarda varios años en hablar correctamente su propio idioma y no siempre correctamente (que si croquetas, que si cocretas...).

Espero con ganas el siguiente artículo sobre NLP y todos los que puedan venir.

Por cierto ¿cómo sabemos que es Lucía la que ha escrito el artículo y no un bot creado por ella? ;-)

Captchas basados en el test de Turing, YA!!

https://es.wikipedia.org/wiki/Test_de_Turing
13/05/2019 12:00:31

 Security code