Descomponiendo el chatbot

Elementos de una interfaz conversacional

Algonew education
7 min readJul 28, 2020
El chabot y los componentes que lo integran
Photo by Shane Aldendorff on Unsplash

Desmontar cualquier producto tecnológico produce bastante respeto. Desde los antiguos relojes mecánicos hasta los modernos smartphones, nos asombra la cantidad de piezas y componentes que se ensamblan y relacionan para producir el resultado final: un dispositivo único, integrado y atractivo.

En este artículo vamos a repasar los componentes que tiene una interfaz conversacional. Más adelante profundizaremos en cada uno de estos componentes, pero nuestro objetivo ahora es presentar las partes de un chatbot aunque sea superficialmente para empezar a adivinar cómo es por dentro.

A muy grandes rasgos, el trabajo de un chatbot tiene dos partes:

· Entender lo que el usuario dice (Comprensión del lenguaje)

· Reaccionar a lo que el usuario dice (responder, ejecutar acciones tales como consultar una base de datos, enviar archivos al usuario, etc). Esto implica Generación de Lenguaje y otras actividades automatizadas.

Vamos a empezar

La intención: ¿Qué me estás contando?

En un diálogo de chat, sea con otra persona o con un agente automático, los mensajes suelen ser breves, de unas pocas líneas, incluso de unas pocas palabras. Por eso tiene sentido esperar que el mensaje del usuario se pueda reducir a un único significado. Es lo que se conoce como la intención del hablante.

¿Me quieres decir algo?

Dependiendo de la forma de expresarse y de cómo se siente en el momento de comunicarse, es posible que nuestros usuarios envíen mensajes con estructura y contenidos diferentes pero que a fin de cuentas quieran decir lo mismo:

· Nos queremos ir de viaje

· Necesitamos unas vacaciones lejos de casa

· Tenemos planes de estar unos días de turismo

Dependiendo del contexto de la conversación, es posible que podamos asignar las tres frases anteriores a una misma intención (quiero_viajar). El chatbot deberá disponer de la tecnología suficiente para asignar esta intención a las tres frases anteriores y a muchas otras que a fin de cuentas quieran decir lo mismo.

Las entidades: dame información

Dentro del mensaje que nos envía el usuario puede haber información más allá de la intención. En estas tres frases:

· Me voy de viaje a Roma

· Hemos elegido París para nuestras vacaciones

· Vamos a pasar una temporada de descanso en Cancún

Además de transmitirnos la misma intención que antes, el usuario nos da un dato adicional: el destino de su viaje. El papel de Roma, París y Cancún es exactamente el mismo dentro de la intención quiero_viajar. Este tipo de datos complementarios se llaman entidades y según los casos pueden tener un papel importante en el flujo de la conversación posterior.

Por tanto, necesitamos que nuestros chatbots estén preparados para extraer entidades de las frases, además de identificar la intención del hablante.

Las entidades que maneja un chatbot pueden ser de distintos tipos: valores económicos (necesito mil dólares), de tiempo (quiero una cita para dentro de diez días), distancias o de tipo texto general.

Además se puede distinguir entre entidades universales o predefinidas (por ejemplo, países del mundo) o específicas del chatbot (planes de tarifa de nuestro producto, cada uno con su nombre). Para las entidades universales no es necesario empezar de cero cada vez sino que se pueden emplear módulos preentrenados que se reutilizan en todos los chatbots que hagamos.

En cambio, para las entidades específicas de nuestro chatbot deberemos enseñarle a identificarlas. Hablaremos más en detalle de esto en el artículo que le dediquemos a las entidades.

Encuentra la entidad escondida

Comprensión de lenguaje natural

Los dos pasos anteriores forman la parte de comprensión o interpretación del chatbot. Todo debe comenzar por entender qué nos están diciendo.

En artículos posteriores profundizaremos en las tecnologías empleadas para la comprensión de los mensajes. De momento avanzaremos que se trata por lo general de algoritmos de Aprendizaje Automático (Machine Learning) aplicados al proceso de lenguaje natural. Algoritmos que en ocasiones se complementan con reglas para incorporar conocimiento que ya tenemos las personas y que no requiere entrenamiento de algoritmos.

Y ahora ¿qué digo?

La comprensión es solamente la mitad del proceso. El usuario espera una reacción apropiada del chatbot. Puede ser la respuesta a una pregunta, puede ser la continuación lógica de una conversación o algún elemento visualizable o descargable.

La reacción del chatbot incluye la generación automática de lenguaje y algunos elementos más:

· Un abanico de respuestas previstas

· Un conjunto de acciones relevantes a la conversación

· Un conjunto de elementos para visualizar o descargar

· Y lo más importante de todo: algoritmos de navegación por el diálogo para elegir la respuesta apropiada

El bot respondón: nunca se queda sin palabras

El diseñador del bot tiene presente de antemano el tipo de conversación que espera mantener con el usuario. Eso le lleva a anticiparse a los posibles caminos de la conversación y por tanto a definir una lista de respuestas posibles.

Por ejemplo, ante la intención quiero_viajar es posible que tenga sentido preguntarle al usuario a dónde desea ir. Esto define una respuesta de texto específica, aunque no necesariamente con una única formulación. Para dar variedad al diálogo y que sea más amena la navegación conversacional, el bot podría tener estas alternativas de respuesta:

  • Entonces ¿a dónde desea ir?
  • ¿Cuál es el destino de su viaje?
  • ¿A qué lugar ha elegido viajar?

Aún cuando las tres frases quieren decir lo mismo y buscan la misma respuesta del usuario, el bot podría escoger una de ellas al azar para no parecer repetitivo.

La respuesta podría aprovechar las entidades que se han ido identificando en pasos previos del diálogo, y así preguntar por ejemplo

¿A dónde nos vamos de viaje, Teresa?

donde Teresa se corresponde con la entidad nombre_del_cliente que se ha identificado en una fase anterior de la conversación.

Siempre tiene que decir algo

De todos modos, la respuesta de texto no lo es todo. Si el usuario pregunta por la temperatura actual en Roma, el bot tendrá que hacer algo para averiguarlo.

Lo que hago cuando no miras

Es posible que antes de responder, y en ocasiones después de responder, el bot tenga que llevar a cabo alguna acción automatizada necesaria para que la conversación tenga sentido.

Algunos ejemplos:

  • Acudir a un web service para conocer la temperatura actual en Roma. El dato obtenido se utiliza para dar valor a una entidad y así poder responder

La temperatura actual en Roma es de 21º

  • Consultar una base de datos interna para proporcionar el precio de un artículo o el saldo de una cuenta
  • Preparar una imagen u otro elemento multimedia para adjuntarlo a la respuesta
  • Ejecutar cálculos sencillos para establecer la dirección del diálogo. Por ejemplo, si el usuario ya nos ha informado del precio de la casa y de la entrada que va a poder pagar, se puede calcular el ratio entrada/precio, y contestar de forma diferente si el ratio es menor o mayor que el 20%.
¿Buscando algún dato?

Tipos de respuesta: el chatbot versátil

Ya hemos apuntado que la respuesta del chatbot podría ser algo más compleja que una o varias frases de respuesta. Por ejemplo:

  • El chatbot podría mostrar una imagen: un gráfico de precios, el mapa del entorno de un hotel, la foto de un personaje.
  • Igualmente podría mostrar un video
  • Podría ofrecer un documento pdf para su descarga u otro tipo de archivo.
  • O también un enlace para que el usuario pudiera navegar ahora o más adelante

Este elenco de posibilidades tiene que estar previsto en el guión de la conversación, el elemento que hace que todo lo anterior (intenciones, entidades, respuestas, etc) esté integrado y funcione como una única pieza.

El contexto: lo que hemos ido diciéndonos

Para el bot mantener el historial de la conversación es imprescindible, de la misma manera que lo es para un conversador humano. Es lo que llamaremos el contexto de la conversación. El contexto es imprescindible para decidir cuál es nuestro siguiente paso. Imaginemos que el usuario nos dice

De acuerdo

La intención está clara: nos dice que sí. Pero sí ¿a qué? La respuesta está escondida en el contexto, probablemente en la última pregunta del bot. El contexto es la secuencia de intenciones, entidades y respuesta que se han producido hasta el momento actual de la conversación.

Navegando por el diálogo

La definición del flujo del diálogo es una de las partes donde más puede aportar el diseñador de la interfaz conversacional. Hay mucho que explicar sobre esta parte y más adelante le dedicaremos uno o dos artículos específicos para ello. Solamente algunos apuntes para empezar a tomar contacto:

  • El diálogo tiene que empezar por alguna parte. Puede ser un saludo, una explicación de lo que hace el bot o simplemente esperar a que el usuario diga algo.
  • El diálogo debe elegir el camino de la conversación en función del contexto, no solamente en función del último mensaje del cliente.
  • Hay que prever situaciones en las que es imposible deducir la intención del cliente
  • En caso de equipo mixto agente bot-agente humano, hay que prever la petición de ayuda al agente humano.
  • Hay que prever actitudes usuarios juguetones (¿Cómo te llamas? ¿Eres una máquina? etc), pero también momentos de indignación del usuario o hasta de insultos.

Esta navegación se puede llevar a cabo mediante reglas fijas (árboles de diálogo y similares) y se puede completar por algoritmos de apredizaje automático para situaciones inesperadas.

Conclusión

Hemos dado un repaso superficial a los componentes básicos del chatbot. En próximos artículos de la serie podremos profundizar en cada uno de ellos. Mientras tanto, ¡Feliz conversación!

--

--

Algonew education

El equipo de comunicación de Algonew escribe artículos divulgativos sobre interfases conversacionales y chatbots