Chatbots y Procesamiento de Lenguaje Natural: La Guía Definitiva

natural language

¿Qué es la NLP? ¿Cómo funciona? ¿Cómo se utiliza? ¿Cuáles son las funciones y ventajas de un chatbot de procesamiento de lenguaje natural y realmente necesitas uno?

Desglosamos este sub-dominio de la IA (Inteligencia Artificial) centrándonos en su aplicación en las tecnologías de los chatbots en términos sencillos, para que, la creación de chatbots de procesamiento de lenguaje natural sea comprensible y accesible a cualquiera – incluyendo a los non-tech marketers.


Los chatbots, aunque han estado en la escena durante bastantes años, siguen siendo un tema candente. En general, se obtienen dos tipos de enfoques para su creación:

  1. Empresas decididas a desarrollar bots capaces de tener conversaciones naturales indistinguibles de las humanas usando NLP y aprendizaje automático.
  2. Las compañías enfocadas en bots funcionales buenos para realizar tareas específicas de forma rápida y eficiente, haciendo que la humanidad percibida por los bots sea un asunto secundario.

La cuestión es que con todo el bombo que rodea a la inteligencia artificial, a menudo es difícil mantener la perspectiva, distinguir los hechos de la ficción, manejar las expectativas de los usuarios o simplemente resistirse a ser seducido por la tecnología por su propio bien (en lugar de tener en cuenta su objetivo empresarial/mercantil).

Francamente, un chatbot no tiene por qué engañarte para que pienses que es humano para poder completar su razón de ser. En esta etapa del desarrollo tecnológico, tratar de hacerlo sería un gran error en lugar de ayudar..

De hecho, si bien toda conversación sobre chatbots suele ir acompañada de la mención de la inteligencia artificial, el aprendizaje automático y el procesamiento del lenguaje natural (NLP), muchos robots altamente eficientes son bastante «tontos» y están lejos de parecer humanos.

Los bots basados en reglas con botones, preguntas de sí-no, reconocimiento de keywords y sugerencias de respuestas rápidas parecen generar grandes resultados. A veces incluso mejor que la NLP!

Sin embargo, esto no significa que debas renunciar a ello. Al crear chatbots de procesamiento de lenguaje natural el NLP tiene un papel importante en la matriz de desarrollo de los bots. La clave para una aplicación exitosa del NLP es entender cómo y cuándo usarlo.

Para darle sentido a todo esto, desglosamos la esencia de la NLP, su funcionamiento interno y sus posibles usos.


¿Por qué las Máquinas Necesitan NLP?


Todo lo que expresamos en forma escrita o verbal abarca gran cantidad de información.

La combinación del tema, el tono, la selección de palabras, la estructura de la oración, la puntuación/expresiones permite a los humanos interpretar esa información, su valor e intención.

Teóricamente, los humanos están programados para entender. A menudo también, incluso predicen el comportamiento de otras personas usando ese complejo conjunto de información.

¿Cuál es el problema?

Una persona puede generar cientos de palabras en una declaración. Cada una con su propia complejidad y trasfondo contextual. Implementar la comprensión del robot significa analizar cientos o miles de personas y sus posibles declaraciones, que difieren más de una geografía a otra…

Estos datos conversacionales se llaman datos no estructurados y no caben en filas y columnas bien apiladas. Es complicado, desordenado y difícil de manipular. La única manera de enseñar a una máquina sobre todo eso es dejarla aprender de la experiencia.


¿Qué es la NLP?


El lenguaje natural, es el que usan los humanos para comunicarse entre sí.

Por otro lado, el lenguaje de programación fue desarrollado para que los humanos puedan decirle a las máquinas lo que tienen que hacer, de manera que éstas puedan entender. Por ejemplo, el inglés es un lenguaje natural; mientras que el Java, de programación.

El Procesamiento del Lenguaje Natural facilita la comunicación entre humanos y máquinas. Sin que los humanos necesiten «hablar» Java o cualquier otro lenguaje de programación. Y, permite a las máquinas obtener y procesar información a partir de las entradas escritas o verbales del usuario.

En esencia, los desarrolladores crean modelos NLP que permiten a los ordenadores decodificar e incluso imitar como los humanos hablan. A diferencia de las operaciones comunes de procesamiento de palabras, la NLP no trata el habla o el texto sólo como una secuencia de símbolos.

También tiene en cuenta la estructura jerárquica del lenguaje natural. Las palabras crean frases; y, éstas, forman oraciones; y, éstas, se convierten en ideas coherentes. En otras palabras, el software de NLP no sólo busca palabras clave.

Utiliza conocimientos pre-programados o adquiridos para decodificar el significado y la intención a partir de factores como la estructura de la frase, el contexto, los modismos, etc.

Por ejemplo, un buen software NLP debería reconocer si el «¿Por qué no?» del usuario indica un acuerdo o pregunta que requiere respuesta.

La NLP se divide en dos categorías clave:

  1. Comprensión del Lenguaje Natural (NLU – Natural Language Understanding)
  2. Generación de Lenguaje Natural (NLG – Natural Language Generation

¿Cómo Encaja la NLP en el Mundo de la IA?


Las palabras IA, NLP y ML (Machine Learning) se utilizan a veces casi indistintamente. Sin embargo, hay un orden en la locura de su relación.

Jerárquicamente, el procesamiento del lenguaje natural se considera un subconjunto del aprendizaje automático. Mientras que la NLP y la ML caen dentro de la categoría más amplia de la inteligencia artificial.

  • La inteligencia artificial es uno de los principales subcampos de las ciencias informáticas. Fue creada en los años 60 y se ocupa de programar máquinas para resolver tareas intrínsecas a los humanos pero difíciles para las computadoras.
    Una IA exitosa podría hacer cualquier cosa que un humano pueda hacer (excepto las cosas puramente físicas), incluyendo moverse por el mundo, planificar, reconocer objetos y sonidos, hablar, traducir, realizar transacciones sociales o de negocios, producir trabajos creativos como hacer arte o poesía, y así sucesivamente. No hace falta decir que aún estamos muy lejos de crear algo cercano a ese «ideal».
  • El procesamiento del lenguaje natural es la disciplina de la informática con orientación lingüística. Y esta, se ocupa de la capacidad del software para comprender el lenguaje humano natural. Tanto escrito como hablado.
  • El aprendizaje automático se centra en la creación de un software que pueda aprender de sus propias observaciones y experiencias pasadas.

ia-ml-nlp-chatbot

Dado que, cuando se trata de nuestro lenguaje natural, hay tal abundancia de diferentes tipos de entradas y escenarios, es imposible para cualquier desarrollador programar para cada caso imaginable.

Por lo tanto, para que el procesamiento del lenguaje natural en la IA funcione realmente, debe ser apoyado por el ‘machine learning’.

En pocas palabras, el aprendizaje automático permite que el algoritmo de NLP aprenda de cada nueva conversación y así se mejore de forma autónoma a través de la práctica.


La NLP no se trata sólo de Crear Chatbots Inteligentes…


La NLP es una herramienta para que los ordenadores analicen, comprendan y deriven el significado del lenguaje natural de una manera inteligente y útil.

Esto va más allá de los más recientemente desarrollados chatbots y asistentes virtuales inteligentes. De hecho, los algoritmos de procesamiento del lenguaje natural están en todas partes, desde la búsqueda, la traducción online, los filtros de spam y el control de la ortografía.

Así que, usando NLP, los desarrolladores pueden organizar y estructurar la masa de datos no estructurados para realizar tareas como las inteligentes:

  • Resumen automático (acortar inteligentemente textos largos)
  • Sugerencias automáticas (utilizadas para acelerar la escritura de correos electrónicos, mensajes y otros textos)
  • Traducción (traduciendo frases e ideas en lugar de palabra por palabra)
  • Reconocimiento de entidades nombradas (se utiliza para localizar y clasificar entidades nombradas en lenguajes naturales no estructurados en categorías predefinidas como las organizaciones; nombres de personas; ubicaciones; códigos; cantidades; precio; tiempo; porcentajes)
  • Extracción de relaciones (relaciones semánticas entre las entidades identificadas en el texto/voz del lenguaje natural como «está ubicada en», «está casada con», «está empleada por», «vive en», etc.)
  • Análisis de los sentimientos (ayuda a identificar, por ejemplo, opiniones positivas, negativas y neutrales en un texto o discurso ampliamente utilizado para obtener información de los comentarios de los medios de comunicación social, foros o respuestas a encuestas)
  • Reconocimiento del habla (permite a los ordenadores reconocer y transformar el lenguaje hablado en texto – dictado – y, si está programado, actuar sobre ese reconocimiento – por ejemplo, en el caso de asistentes como Google Assistant Cortana o Apple’s Siri)
  • Segmentación temática (divide automáticamente los textos escritos, el discurso o las grabaciones en segmentos más cortos y coherentes con el tema y se utiliza para mejorar la recuperación de la información o el reconocimiento del habla)

¿Cómo Funciona el Procesamiento del Lenguaje Natural?


Una de las mejores cosas sobre el NLP es que es probablemente la parte más fácil de la IA para explicar a la gente no técnica, o, también conocida como non-marketers o non-techies.

Toma uno de los ejemplos de aplicación de procesamiento de lenguaje natural, el algoritmo de predicción en tu correo electrónico.

El software no sólo adivina lo que dirás a continuación. Analiza también la probabilidad de ello basándose en el tono y el tópico. Los ingenieros son capaces de conseguirlo dando a los ordenadores un «entrenamiento en NLP». En otras palabras, proporcionan al software una gran cantidad de datos. Ya sea, sobre el lenguaje, incluyendo frases y oraciones, así como transcripciones de conversaciones en vivo o correos electrónicos.

De esta manera, con el tiempo, los programas de ordenador son capaces de aprender a emparejar palabras; qué es lo que intentamos transmitir y qué necesitamos lograr con esa comunicación.

Naturalmente, predecir lo que se va a escribir en un email corporativo es más simple que entender y responder a una conversación. Aún así, la decodificación/entendimiento del texto se basa, en ambos casos, en gran medida en el mismo principio de clasificación.

Por lo general, la «comprensión» del lenguaje natural (NLU) se produce a través del análisis del texto o de la entrada del habla utilizando una jerarquía de modelos de clasificación.

Cada modelo ayuda al siguiente reduciendo el alcance hasta que la computadora llegue a la etapa final de «comprensión».
  • El Clasificador de Dominio segmenta la entrada natural en uno de los grupos preestablecidos de dominios de conversación. Esto sólo es necesario para las soluciones que manejan conversaciones sobre temas variados, que requieren un vocabulario especializado. Por ejemplo, ser capaz de clasificar un dominio es esencial para los asistentes virtuales como Siri. Es probable que los clasificadores de dominios de los asistentes incluyan dominios como el tiempo, los deportes, la navegación o la música, entre otros…
  • El clasificador de intención hace exactamente lo que tu crees que hace. Determina lo que la persona trata de lograr asignando a cada entrada una de las intenciones especificadas en su algoritmo de NLP. Ejemplos de intentos incluyen «encontrar la tienda más cercana», «encontrar el horario de apertura», «encontrar un producto», etc.
  • El Reconocedor de Entidades extrae las palabras y frases (entidades) que son esenciales para cumplir con la consulta/intención del usuario. Por ejemplo, si el usuario quiere reservar una mesa en tu restaurante, las entidades necesarias incluirían hora, fecha y número de comensales.
  • Los clasificadores de funciones son otras etiquetas de diferenciación que puedes aplicar a tus entidades en cada de que sea posible que esa entidad tenga diferentes significados/consecuencias en función del contexto. Por ejemplo, puedes clasificar la entidad de tiempo de forma más detallada etiquetándola como «cerrada» y «abierta».

Siguiendo la lógica de la clasificación, siempre que el algoritmo NLP clasifica la intención y las entidades necesarias para cumplirla, el sistema (o el bot) es capaz de «comprender» y así proporcionar una acción o una respuesta rápida.


Tres Pilares de un Chatbot basado en NLP


Ahora es el momento de mirar más de cerca todos los elementos centrales que hacen que el chatbot NLP, o chatbots de procesamiento de lenguaje natural, tomen vida.

1) Sistema de Diálogo


Para comunicarse, la gente usa la boca para hablar, los oídos para oír, los dedos para escribir y los ojos para leer.

Un chatbot también necesita tener una interfaz compatible con las formas en que los humanos reciben y comparten información con la comunicación. Eso es lo que llamamos un sistema de diálogo, o bien, un agente de conversación.

No hay componentes de sistema de diálogo establecidos. Pero para que un sistema de diálogo sea realmente un sistema de diálogo, tiene que ser capaz de producir outputs, o resultados, y aceptar entradas (de información), o inputs. Aparte de eso, pueden adquirir una variedad de formas. Se pueden diferenciar en base a:

  • Modalidad (basado en texto, basado en voz, gráfico o mixto)
  • Dispositivo
  • Estilo (basado en comandos, dirigido por el menú y – por supuesto – lenguaje natural)
  • Iniciativa (sistema, usuario o mixto)

2) Comprensión del Lenguaje Natural


Así que, ya sabes que la NLU es un sub-dominio esencial de la NLP y tienes una idea general de cómo funciona.

Aún así, es importante señalar que la capacidad de analizar lo que el usuario está diciendo es probablemente la debilidad más obvia en los chatbots basados en NLP hoy en día.

Los lenguajes humanos son demasiado complejos. Además de enormes vocabularios, están llenos de múltiples significados, muchos de los cuales no están relacionados.

Implementar y perfeccionar la NLU es más importante que hacer que el bot suene 110% humano con una NLG impecable.

¿Por qué? Si un bot entiende a los usuarios y cumple con su intención, a la mayoría no le importará si esa respuesta es algo taciturna… No funciona al revés. Un bot que no puede derivar el significado de la entrada natural de manera eficiente puede tener las más suaves habilidades de conversación y a nadie le importará. ¡Ni siquiera un poco!

3) Generación del Lenguaje Natural


Dado que el chatbot NLP analizó y entendió la entrada del usuario, su programación determinará una respuesta apropiada y la «traducirá» de nuevo al lenguaje natural.

No hace falta decir que esa respuesta no aparece de la nada.

Para que el NLP produzca una narrativa amigable para el ser humano, el formato del contenido debe ser delineado ya sea a través de flujos de trabajo basados en reglas, plantillas o enfoques dirigidos por la intención. En otras palabras, el bot debe tener algo con lo que trabajar para crear ese resultado.

Actualmente, todos los sistemas de NLG se basan en el diseño narrativo – también llamado diseño de conversación – para producir ese resultado. Este diseño narrativo se guía por reglas conocidas como «lógica condicional». Estas reglas desencadenan diferentes resultados basados en las condiciones que se cumplen y las que no.


Necesitas un Chatbot NLP?


Seamos claros.

Usar NLP para casos de uso simples y directos es exagerado y completamente innecesario.

De hecho, si se usa en un contexto inapropiado, el chatbot de procesamiento de lenguaje natural puede NO ayudar a tu negocio.

Si una tarea se puede realizar en sólo un par de clics, hacer que el usuario teclee todo no facilita las cosas.

Por otra parte, si la alternativa significa dar al usuario múltiples opciones, el chatbot NLP puede ser útil. Puedes ahorrar a tus clientes de la confusión/frustración pidiéndoles que escriban o digan algo. No es muy diferente de acercarse al miembro del personal en el mostrador en el mundo real.

La IA es genial pero si no es útil, a nadie le importará lo «moderna» que sea tu empresa.


¿Qué Pueden Aprender los Chatbots NLP de los Bots Basados en Reglas?


Muchos argumentarán que un chatbot sin Inteligencia Artificial y el lenguaje natural no es ni siquiera un chatbot sino una secuencia de auto-respuesta básica en una interfaz de mensajes.

Tienes dos opciones aquí.

Puedes decidir quedarte colgado de la nomenclatura o crear un chatbot capaz de completar tareas, alcanzar metas y entregar resultados.

Estar obsesionado con la pureza de la experiencia de los bots de IA no es bueno para los negocios. De hecho tu bot NLP puede aprender MUCHO sobre eficiencia y practicidad de esas «secuencias de auto-respuesta» basadas en reglas que llamamos chatbots.

1) Limitar Inputs y Aprovechar los Elementos de Control


¿Por qué harías que alguien escriba un mensaje si con un simple clic se puede solventar? A veces, restringir la entrada del usuario puede ser una gran manera de enfocar y acelerar la resolución de la consulta.

Por lo tanto, cuando sea lógico, recurrir a elementos de control como botones, carruseles o respuestas rápidas no hará que tu bot parezca menos inteligente. Al contrario…

Además de la velocidad, estos elementos de control también ayudan a reducir la carga cognitiva de los usuarios. Por lo tanto, no necesitan preguntarse qué es lo correcto para decir o preguntar.

En caso de duda, opta siempre por la simplicidad.

2) Diseña el Diagrama de Flujo de Diálogo


Los bots NLP generan respuestas basadas en las aportaciones, o inputs, de los usuarios. Así que, técnicamente, el diseño de una conversación no requiere elaborar un diagrama del flujo de la conversación.

Sin embargo!

Tener un diagrama de ramificación de conversación ayuda a pensar que estás construyendo. En consecuencia, es más fácil diseñar una narración natural y fluida. Puedes dibujar tu mapa a la antigua usanza o usar una herramienta digital. Tanto el constructor de bots visuales de Landbot como cualquier mind-mapping software servirán bien a este propósito.

3) Definir el Final de la Conversación


La falta de conversación puede convertirse fácilmente en un problema y te sorprendería saber cuántos chatbots de NLP no tienen uno.

Si el usuario no está seguro de si la conversación ha terminado o no, tu bot puede parecer estúpido. O bien, te obligará a trabajar en otros intentos que de otro modo habrían sido innecesarios.

Los bots basados en reglas y elecciones no tienen este problema. Una vez que se acaba, se acaba. No hay confusión ahí.

Por lo tanto, deja claro que la conversación ha terminado, verbal o visualmente. Incluso puedes ofrecer instrucciones adicionales para relanzar la conversación.

4) No te Dejes Atrapar por los Casos Menos Frecuentes


A los robots que no usan IA no les importan los casos menos frecuentes que ni ellos (tus bots) son capaces de solventar. Llevan a la gente por uno de los caminos trazados y se acabó.

Hay una lección aquí… no obstaculices el proceso de creación de los bots manejando los casos de esquina. Especialmente si todavía estás en la fase de prototipo. Concéntrate en desarrollar las intenciones centrales y en desarrollarlas bien. No pierdas tu tiempo con casos de uso altamente improbables que ocurran en un futuro cercano. Puedes volver a ellos cuando tu bot sea popular.

Si realmente quieres sentirte seguro, en caso de el usuario no está obteniendo las respuestas que desea, puedes habilitar la transición a agentes humanos.

5) Diseña un Reinicio Fácil de la Conversación


Incluye un botón de reinicio y házlo obvio.

Sólo porque es un chatbot supuestamente inteligente de procesamiento de lenguaje natural, no significa que los usuarios no puedan frustrarse o hacer que la conversación «salga mal».

Ahorra a tus usuarios/clientes/visitantes la frustración y permite reiniciar la conversación cuando lo crean conveniente.


Puedes Construir Chatbots NLP Sin Código?


Desafortunadamente, un chatbot de procesamiento de lenguaje natural sin código sigue siendo una fantasía.

Necesitas un desarrollador/diseñador de narrativa experimentado para construir el sistema de clasificación. Y de ese modo poder entrenar al bot para entender y generar respuestas amigables para los humanos.

Sin embargo, hay herramientas que pueden ayudarte a simplificar significativamente el proceso.

Por ejemplo, una de las plataformas de desarrollo de chatbot NLP más utilizadas es Dialogflow de Google que se conecta a la plataforma de Google Cloud. Al ofrecer a los desarrolladores/diseñadores interfaces fáciles de usar ocupándose del procesamiento de lenguaje natural y aprendizaje automático y otros conceptos más profundos, te permiten centrarte en el flujo de la conversación y construir bots.

dialogflow-nlp-chatbot

La NLP está lejos de ser simple incluso con el uso de una herramienta como Dialogflow. Sin embargo, hace que la tarea a mano sea más comprensible y manejable.

Otra cosa que ayuda a simplificar la construcción de tu chatbot NLP es usar un constructor de bots visuales sin código de Landbot. Su base integra el elemento NLP.

Podríamos ser un poco parciales sobre Landbot. Pero cuando se trata de simplificar todo el proceso de creación de un bot, es difícil argumentar en contra. Mientras que el constructor se utiliza generalmente para crear un tipo de flujo de conversación muy flexible y dinámico, permitiendo la integración Dialogflow.

Esto significa que puedes ofrecer a tus usuarios un asistente inteligente basado en NLP. A la vez, aprovechas las características sin código en el proceso de creación y gestión.

Algunas son de las herramientas digitales son la toma de posesión humana, los elementos de control, el diseño del front-end; la integración de aplicaciones web/página web/mensajería y así sucesivamente…

integracion-landbot-dialogflow-chatbot-nlp

¿Mejor aún? El uso de Dialogflow y un constructor de chatbot sin código como Landbot permite combinar los aspectos inteligentes y naturales de la NLP con los aspectos prácticos y funcionales de los bots basados en la elección.

 

👇 Registra tu cuenta con Landbot HOY! 👇