• Jueves, 04 Febrero 2021

Chatbots o asistentes conversacionales basados en Inteligencia Artificial y técnicas de Procesamiento de Lenguaje Natural

Un asistente conversacional o chatbot es un software basado en Inteligencia Artificial que ha sido desarrollado con el objetivo de poder interactuar con los usuarios de forma automática y coherente. Esta coherencia implica, por una lado, que el chatbot debe emplear un lenguaje natural para el usuario y, por otro lado, que la respuesta proporcionada resuelve, en la medida de lo posible, la necesidad o duda planteada por esa persona.

Ejemplos de estos servicios pueden ser: consultar información de manera rápida y precisa, leer y enviar correos, reservar una habitación de hotel, mesa en un restaurante, reservar un vuelo, etcétera; y pueden estar integrados en sitios web o en sistemas /aplicaciones de mensajería como Facebook Messenger, Slack o Telegram.

Las ventajas que presentan los chatbots es que permiten automatizar procesos de atención y respuesta al cliente en los que la tarea a resolver es concreta, como en los ejemplos mostrados, y también favorecen un primer nivel de asistencia o acceso a la información de forma rápida.

Los chatbots han permitido una nueva manera en la que un ser humano se comunica  y  realiza  tareas  a  través  de  una  computadora. Esta comunicación puede llevarse a cabo tanto de forma escrita como oral y existen distintos tipos de chatbots entre los que se pueden destacar: los basados en menús o botones, los que reconocen palabras clave y, por último los contextuales, que serán en los que nos centremos en este post.

Los chatbots se apoyan principalmente en dos tecnologías, que son la Inteligencia Artificial (IA) y el Procesamiento de Lenguaje Natural o también conocido como NLP, de sus siglas en inglés, Natural Language Processing, y  que, combinadas, permiten que el asistente sea capaz de entender nuestro lenguaje e interactuar con nosotros de forma directa e instantánea para recordar conversaciones con los usuarios y así mejorar las respuestas con el tiempo.

¿Qué capacidades presenta un chatbot?

La inteligencia del asistente conversacional es la responsable de determinar la mejor respuesta relacionada con la pregunta que el usuario final introduce, la cual  depende de múltiples fuentes de información y del modelo y algoritmos conversacionales en los que se basa el chatbot para conseguir dotar al asistente de capacidades para reconocer la intención de una frase, hacer frente a variantes del lenguaje, así como,  identificar y permitir errores tipográficos, relacionar conversaciones anteriores y aprender diálogos autónomamente en base a entrenamiento, etc.

Estas capacidades que dotan de inteligencia a los chatbots se muestran en la siguiente imagen donde se engloban los distintos módulos:

  • Máquina de respuesta chatbot, que es el motor central donde se reúne toda la información.
  • Procesamiento del lenguaje natural (NLP) para comprender la intención de una oración, reconocimiento del estado de ánimo, reconocimiento de la entidad (identificación de los sustantivos y verbos clave), etc.
  • Reconocimiento de contexto de una conversación para poder tener una perspectiva más amplia permitiendo captar conceptos semánticos, incluido el significado de verbos, sustantivos y partes de discurso (POS).
  • Análisis de historial para proporcionar contexto de conversaciones previas (con el mismo usuario u otros usuarios). Para ello, tiene tanto conversaciones con el mismo usuario como reconocimiento de patrones basados ​​en conversaciones previas con todos los demás usuarios con respecto al mismo tema.
  • El modelo de entrenamiento proporciona la entrada para un modelo supervisado, en función del cual el NLP puede determinar la intención (o el significado) de la sentencia que el usuario introduce en los chatbots.
  • Estadísticas, esta es la capacidad más importante utilizada en la máquina de respuesta, NLP y el análisis histórico.

¿Cómo funciona la generación de conversaciones de un chatbot?

Una vez vistas las capacidades de los chatbots se va a explicar cómo generar las conversaciones a las que el chatbot responderá y cómo se trata de comprender el propósito de las sentencias y asignárselo a una intención con una probabilidad. Para ello hay que presentar los conceptos de intenciones, entidades, diálogos y contextos.

  • Intenciones (Intents): el sistema de Inteligencia Artificial, lo primero que trata de identificar cuando alguien le escribe es la “intención” de lo que el usuario le ha querido decir. Las intenciones nos permiten agrupar las tipologías de preguntas a realizar y qué recursos buscar.
  • Entidades (Entities): son aquellos inputs del usuario (palabras, categorías, frases) que determinarán la respuesta del chatbot, puesto que son necesarias para poder llevar a cabo la acción. Las entidades, van asociadas a las intenciones.
  • Dialogos (Dialogs): el diálogo es la propia estructura de la conversación. En los diálogos se definen lo que queremos que responda el chatbot cuando reconoce la intención que ha expresado el usuario. La construcción de estos diálogos se basa en técnicas de deeplearning, así como similitud de contextos de preguntas anteriores almacenadas para determinar si ir hacia un tipo de diálogo u otro.

Así, para generar las conversaciones, hay que seguir los siguientes pasos:

  1. Identificación de entidades. Identificación de entidades asociadas y las relaciones existentes en las mismas para el marco de conversación.
  2. Generación de preguntas. Generación de preguntas genéricas por contexto que el chatbot será capaz de responder en el contexto conversacional.
  3. Expansión de  preguntas. En base a ese conjunto de preguntas, se agruparán en intenciones generando posteriormente preguntas semejantes en base a sinónimos, o distintas formas de formular la misma pregunta por cada una de las intenciones.
  4. Entrenamiento de intenciones. Mediante un modelo de deeplearning (aprendizaje automático) se entrenará al sistema para asignar a cada frase una intención.
  5. Generación de dialogo. Generación de un dialogo que permita el engagement o compromiso con los  usuario del chatbot. El diálogo puede incluir un conjunto de acciones  a realizar, como por ejemplo, dar una respuesta determinada, buscar datos en base de datos para formular la respuesta, contactar con un servicio externo, mostrar un vídeo, etc.
  6. Entrenamiento del diálogo. En el caso anterior se entrenaba para la clasificación de intenciones, en este caso se entrena la secuencia de respuesta y frases (diálogo que debe decir el bot).
  7. Validación de los resultados.  Con objetivo de validar el sistema, se generará una batería de tests  y se realizarán test con usuarios que permitan validar la madurez del prototipo.

A modo de resumen, indicar que en este post se ha mostrado la importancia y ventajas que presentan los chatbots o asistentes conversacionales, las capacidades que presentan y las tecnologías en las que se basan, así como el proceso de generación de conversaciones.

Ejemplos reales de chatbot desarrollados por ITAINNOVA

Para concluir os recogemos un par de proyectos en los que el Instituto Tecnológico de Aragón ha trabajado y que muestran el potencial de los chatbots y sus posibilidades.

COVID19 Aragón Bot

Servicio de respuesta ante dudas e información realtivo a la COVID (accesible vía Telegram).

Imagen del proyecto de chatbot sobre la Covid-19 del Gobierno de Aragón

Chatbot Aragón Open Data

Asistente conversacional que permite conversar en lenguaje natural para aportar al ciudadano información basada en datos abiertos del portal Aragón Open Data:

https://opendataei2a.aragon.es/servicios/chatbot/

Imagen del proyecto de chatbot para Aragón Open Data

Miguel Ángel Gracia Bandrés

OTROS ARTÍCULOS

Skip to content