Tabla de contenidos
Introducción
En lo relacionado con las herramientas y los entornos de desarrollo de chatbot disponibles actualmente, hay tres problemas que requieren solución:
- Entidades contextuales compuestas.
- Descomposición de la entidad.
- Desactivación de los que se conoce como “Rigid State Machine”, gestión de cuadros de diálogo.
En esta historia me voy a centrar solo en las Entidades. Y cómo se gestionan las entidades en tres entornos de tecnología conversacional.
Entidades 101
¿Qué es una entidad?
Las tres palabras que se utilizan con mayor frecuencia en relación con los chatbots son:
- declaraciones o utterances,
- intenciones y
- entidades.
Una declaración o utterance es realmente cualquier cosa que diga el usuario. El enunciado puede ser una oración, en algunos casos unas pocas oraciones, o simplemente una palabra o una frase. Durante la fase de diseño, se anticipa lo que sus usuarios podrían decirle a su bot.
Una intención es la intención del usuario con su expresión o interacción con su bot. Piense en las intenciones como verbos o palabras funcionales. Una expresión o un diálogo único de un usuario debe destilarse en una intención.
Microsoft LUIS — Nuevas entidades aprendidas por máquina — Descomposición de entidades
Las entidades pueden verse como sustantivos, a menudo se las conoce como slots. Suelen ser datos como la fecha, la hora, las ciudades, los nombres, las marcas, etc. La captura de estas entidades es fundamental para tomar medidas según la intención del usuario.
Piensa en un robot de viaje, que captura las ciudades de salida, destino, modo de viaje, precio, fechas y horas que son la base de la interfaz. Sin embargo, esta es la parte más difícil de la interfaz conversacional. Ten en cuenta que el usuario ingresa los datos al azar y sin ningún orden en particular.
Las entidades compuestas y contextuales están siendo implementadas por más plataformas de chatbot. La opción de anotar entidades contextualmente también está en aumento. Los ejemplos aquí son Rasa, IBM Watson Assistant y, en menor grado, Amazon Lex.
Entidades compuestas y contextuales
Se han logrado grandes avances en este área y muchos ecosistemas de chatbot se adaptan a ellos.
Entidades contextualesEl proceso de anotar las expresiones del usuario es una forma de identificar entidades por su contexto dentro de una oración
Anotación de entidad contextual en IBM Watson Assistant
A menudo, las entidades tienen un conjunto finito de valores que se definen. Luego están las entidades que no se pueden representar mediante una lista finita; como ciudades del mundo o nombres o direcciones. Estos tipos de entidad tienen demasiadas variaciones para enumerarse individualmente.
Para estas entidades, debe utilizar anotaciones; entidades definidas por su uso contextual. Las entidades se definen y detectan a través de su contexto dentro del enunciado del usuario.
Entidades compuestas
La premisa básica es que los usuarios pronunciarán múltiples entidades en una oración.
Lo más probable es que los usuarios expresen múltiples entidades dentro de un enunciado; denominadas entidades compuestas.
En el siguiente ejemplo, hay cuatro entidades definidas
- modo_viaje
- de ciudad
- to_cyt
- fecha y hora
Rasa: Extracto del archivo NLU.md en el proyecto Rasa
Estas entidades pueden detectarse en el primer paso y solicitarse la confirmación del usuario.
Echemos un vistazo a estructuras de entidades más complejas y cómo se implementan en Rasa, Microsoft Luis y Amazon Alexa…
Rasa
Contextual y compuesto
Desde el principio, uno de los puntos fuertes de Rasa fueron las entidades compuestas y contextuales.
Contextualmente significa que el chatbot no reconoce las entidades al pedirle al usuario directamente la entrada o que las encuentra a través de una lista de búsqueda finita. Más bien, las entidades se detectan en función de su contexto dentro del enunciado u oración.
Esto está más alineado con la forma en que nosotros, como humanos, detectamos entidades en una conversación
Rasa ~ Entidades compuestas y contextuales en Rasa-X
Las entidades compuestas significan que puedo capturar varias entidades por intención o expresión del usuario. En un escenario en el que el usuario te brinda toda la información en un solo enunciado, tienes la capacidad de capturar todos esos valores de una vez.
Esto se traduce en menos turnos de diálogo y un chatbot más eficiente.
Roles de entidad
El punto de partida de las entidades es que puedes agregar etiquetas a las palabras. Por lo tanto, puedes definir conceptos en tus datos.
En el siguiente ejemplo, tienes diferentes tipos de ciudades definidos con otras entidades.
##intent:travel_details– I want to travel by [train](travel_mode) from [Berlin](from_city) to [Stuttgart](to_city) on [Friday](date_time)
Esto no es elegante, ya que es necesario crear varias entidades para un objeto de palabra real, a saber, ciudad.
Y en este ejemplo, la ciudad tiene dos roles; la ciudad de salida y la ciudad de llegada. Con Rasa, puedes definir estas entidades con roles específicos en el archivo nlu.md de tu proyecto.