En este artículo aprenderemos sobre identificación de intenciones y veremos en detalle qué rol juegan las intenciones (o intents) en el contexto de los chatbots.

Qué es una intención

La principal función de los chatbots es asistir a los usuarios en la realización de alguna tarea o solicitud de información. Para ello, el usuario tiene que comunicar qué es lo que desea y el chatbot interpretarlo correctamente.

Cuando decimos qué es lo que desea, nos estamos refiriendo a que el usuario tiene una intención. Ésta puede ser, preguntar cómo está el clima; cuáles son las fechas de pago de algún impuesto; quién dirigió una película, etc. Es decir,

la intención se refiere al objetivo que tiene el usuario cuando le envía un mensaje al chatbot.

Por este motivo, las intenciones son elementos fundamentales de la conversación con los chatbots: permiten identificar el propósito del usuario sin importar cómo haya sido escrito.

Podemos pensar que las intenciones son categorías a las que asignamos los mensajes del usuario. Dependiendo a qué categoría pertenece el mensaje del usuario, el chatbot responderá de una forma u otra. En otras palabras, la detección de intenciones puede interpretarse como un problema de clasificación aplicado a textos.

A su vez, podemos clasificar las intenciones en tres tipos:

  • chitchat: mensajes simples, como saludos, despedidas, preguntar cómo se llama el chatbot, etc.
  • FAQs: preguntas frecuentes, que el chatbot responde con un mensaje predefinido
  • Complejas: aquellos casos donde la respuesta requiere que el chatbot interactúe con servicios externos, APIs, etc.

Dependiendo de la complejidad de la intención ésta puede o no contener entidades. Las entidades son palabras o expresiones que hacen más específico el mensaje del usuario. Para saber más sobre entidades lee este artículo.

El primer paso para diseñar chatbots es definir cuáles son las intenciones queremos detectar.

Cómo identifican intenciones los chatbots

Resulta crítico que el chatbot interprete correctamente las intenciones porque esto determina el éxito de la conversación. Afortunadamente, la Inteligencia Artificial nos ofrece herramientas para que los chatbots pueda comprender las intenciones de los usuarios.

Cuando diseñamos un chatbot, podemos elegir distintos componentes que procesan el texto y extraen la información de él. Con esta información procesada, el chatbot utiliza aprendizaje automático, entre otras cosas, para detectar la intención del mensaje y dar una respuesta.

El aprendizaje automático implica «enseñarle» (o entrenar) al chatbot con una gran cantidad de ejemplos de cada intención. Cuantos más y más diversos, mejor.

Por ejemplo, si queremos enseñarle al chatbot a interpretar mensajes de saludo, lo entrenaremos con una lista de mensajes como los siguientes:

  • hola
  • que tal
  • buenos días
  • buenas tardes
  • hola bot
  • holaaa!
  • bueeenas

En otras palabras, le estamos diciendo al chatbot que, si el usuario le envía alguno de estos mensajes o similares, su intención es saludar.

Consideremos también un ejemplo de intenciones tipo FAQs. Supongamos que los usuarios quieren saber las fechas límites de pago de sus impuestos. Su intención será «solicitar el calendario de pagos de impuestos» para lo cual enviarán mensajes como:

  • ¿hasta cuándo puedo pagar mis impuestos?
  • fechas límites de pago de impuestos
  • quiero ver el calendario de impuestos
  • plazo para pagar mis impuestos
  • ¿cuándo me cargarán los impuestos en la cuenta bancaria?
  • ¿hasta cuando puedo pagar mis impuestos?
  • ¿habéis cambiado las fechas para pagar los impuestos este año?

Como en el caso anterior, cuando el chatbot reciba un mensaje de estos o alguno similar, entenderá que el usuario quiere conocer el calendario de pagos. Una vez detectada la intención, el chatbot buscará la información sobre el calendario de pagos y se la facilitará al usuario.

Los chatbots también pueden detectar entidades contenidas las intenciones

Existen casos en donde el usuario es más específico en su solicitud. En estos casos es donde entran en juego las entidades. Recomendamos ver el artículo de entidades, para más detalles.

Continuemos con el caso del calendario de pagos. El usuario podría preguntar por el plazo para pagar, por ejemplo, el IBI (Impuesto de Bienes Inmuebles) o la recogida de residuos o el impuesto a los vehículos de tracción mecánica, etc.

Para que el chatbot pueda detectar las entidades, deberemos indicarlas (o etiquetarlas) en los datos de entrenamiento. Es decir, en el ejemplo, deberemos marcar las entidades a las que hace referencia el usuario:

  • ¿hasta cuándo puedo pagar el [IBI](impuesto)?
  • fechas límites de pago de la [recogida de basura](impuesto)
  • plazo para pagar el [IVTM](impuesto)
  • ¿Cuándo me cargarán el [IBI](impuesto) en la cuenta bancaria?
  • ¿hasta cu´sndo puedo pagar la [recogida de basura](impuesto)?

En los ejemplos que le hemos mostrado al chatbot, hemos marcado con «[]» palabras o expresiones claves que debe detectar el chatbot. En este caso, todas ellas son valores que puede tomar la entidad «impuesto». Sin embargo, en un mensaje puede haber más de una entidad.

Definición de intenciones

Un aspecto importante del diseño de un chatbot es definir las intenciones. En general, esto dependerá de las funcionalidades y la complejidad que queramos que tenga nuestro chatbot.

Como mencionamos anteriormente, las intenciones son categorías que utilizamos para organizar los mensajes de acuerdo a las respuestas que el chatbot le dará al usuario. No existe una receta para realizar esa categorización y, en general, dependerá del balance entre el tiempo de desarrollo del chatbot y la precisión de las respuestas que se quiera dar al usuario.

Por otra parte, no debemos olvidar que puede suceder que el usuario solicite información o una tarea para la cual el chatbot no fue diseñado. Para gestionar estas eventualidades, podemos asociar todos aquellos mensajes que no correspondan a las intenciones definidas, a una única intención, que usualmente se llama «fuera de ámbito». De esta forma, le daremos al chatbot una herramienta para informarle al usuario que no es capaz de ayudarlo con esa consulta.

Resumen

En este artículo hemos visto una pieza fundamental de los chatbots: las intenciones. Estas representan el objetivo o el motivo por el cual el usuario envía un mensaje. Éstas pueden estar asociadas a mensajes muy simples como saludos o despedidas, o mensajes muy complejos que incluyan entidades.

En general, la cantidad de intenciones que podrá interpretar un chatbot, depende de su diseño y de las funcionalidades que el desarrollador quiere que este tenga. Debemos tener en cuenta que, cuantas más intenciones, deberemos tener más datos de entrenamiento.

Finalmente, debemos recordar que es muy importante que las intenciones sean detectadas correctamente. Esto nos asegura que las conversaciones fluyan de una forma natural y, por ende, sea una agradable y productiva experiencia para el usuario.

 

Foto de SHVETS production: https://www.pexels.com/es-es/foto/persona-mujer-pared-sin-rostro-7203727/