Tabla de contenidos

Introducción

Actualmente, existen varias vías para introducir estructuras en las entidades con el fin de detectar patrones. Microsoft LUIS, Alexa Conversations y Rasa son los líderes en este sentido.

Aunque los ejemplos dados en este artículo se basarán en LUIS, los principios subyacentes empleados se pueden recopilar e implementar en otras plataformas.

La premisa básica es crear roles para una entidad y luego establecer un patrón en el que esos roles podrían usarse. Este patrón luego sirve como guía para que la plataforma de IA conversacional detecte patrones en las expresiones del usuario. Y posteriormente datos útiles de conversación.

Las entidades de aprendizaje automático se introdujeron en Microsoft LUIS en noviembre de 2019. La descomposición de entidades es importante tanto para la predicción de intenciones como para la extracción de datos en términos de entidades. Esto reemplazó algunas de las funciones existentes dentro de LUIS.

Por lo tanto, hasta cierto punto, la funcionalidad de roles y patrones fue reemplazada dentro de LUIS por entidades de ML que se pueden descomponer. Piensa en las entidades de ML, como entidades que se pueden anidar varias veces.

Sin embargo, los roles y patrones siguen siendo útiles en ciertos casos; cuando es necesario detectar patrones fijos dentro de las expresiones del usuario. Y quizás los usuarios tienen implementaciones heredadas que deben llevarse adelante.

Veamos cómo se pueden implementar los roles y patrones mediante un proyecto de ejemplo simple.

Agregar roles a una entidad

Empezaremos creando una entidad llamada Ciudades. Dentro de la entidad denominada Ciudades, queremos crear dos roles:

  • Destino.
  • Origen.

Dentro de LUIS tenemos la entidad de Ciudades y bajo Roles tenemos dos entradas; Destino y Origen.

Es evidente que los roles pueden verse como subconjuntos o tipos de la entidad Ciudades. Se pueden agregar múltiples roles.

Por lo tanto, la información contextual se mantiene para una entidad de esta manera. Debes tener en cuenta que los roles solo se pueden usar para patrones.

Combinando roles y patrones

Ahora vamos a combinar los roles definidos para la entidad con un patrón.

Intención de LUIS llamada Distancia que hace referencia a la entidad y el rol.

Se crea la intención básica, luego la entidad con roles. Y ahora vamos a agregar los patrones.

Secuencia de elementos para crear patrones

Al crear un patrón, debe estar vinculado a una intención. Y tiene sentido utilizar la misma redacción o expresiones que usó en la intención.

Adición de patrones con entidades y roles definidos para una intención.

Una vez que hayas hecho clic en Patrones, es importante seleccionar la intención correcta en el menú desplegable superior. Los patrones se definen como se muestra a continuación. En el formato de Entidad, dos puntos y el Rol, como muestro en el siguiente ejemplo:

How far is {Cities:Origin} from {Cities:Destination}?  We are traveling from {Cities:Origin} to {Cities:Destination}.

De estas dos líneas se desprende claramente que los roles de las entidades son verdaderamente contextuales y no finitos en su valor. Al probar en la consola LUIS, se puede ver el patrón coincidente.

Consola de pruebas de LUIS que muestra los patrones coincidentes principales.

Se supone que esta función reduce el número de ejemplos necesarios; acelerando así el proceso de configuración. También es importante tener en cuenta que no hemos proporcionado a nuestro modelo datos específicos con respecto a lo que nuestra entidad debería asignar, pero se puede recuperar un nombre de ciudad arbitrario en función de un patrón reconocido.

Conclusión

Todavía me inclino por el uso de entidades ML que se pueden descomponer; entidades que se pueden anidar, como se muestra aquí:

Entidades de ML que se componen de subentidades más pequeñas.

Es una solución limpia y simple para definir y reconocer patrones y extraer entidades y grupos relacionados. Los roles y patrones provienen de mediados de 2018 y presentan un enfoque más complejo.

Entidades de ML que se componen de subentidades más pequeñas.

Sin embargo, puede haber casos en los que desees reutilizar patrones y agruparlos. También puede haber implementaciones heredadas de este enfoque que deben ser respaldadas y aumentadas.

Por Cobus Greyling

Rasa Hero. NLP / NLU, Chatbots, Voz, UI / UX conversacional, Diseñador CX, Desarrollador, Interfaces de usuario ubicuas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *