¿Cómo puede el machine learning mejorar tu chatbot?

Definir características de datos para aumentar el aprendizaje de tu chatbot.

Cobus Greyling

--

Introducción

Al diseñar y crear una aplicación NLU, realmente deseas aprovechar los puntos en común de los datos. Esto puede acelerar y mejorar el aprendizaje automático de tu bot.

Ejemplo: una función de lista de frases de las marcas de automóviles

Mira esto como un proceso de compartir datos de entrenamiento entre diferentes componentes de tu entorno NLU.

Estos componentes pueden ser intenciones, entidades, entidades compuestas de ML y mucho más.

Esta característica generalizada se describe como una feature.

El entorno en el que voy a construir y demostrar el prototipo es Microsoft LUIS. Las features dan pistas a LUIS sobre cómo encontrar diferentes conceptos en tus datos y cómo distinguir esos conceptos.

En el aprendizaje automático, una feature es un rasgo o atributo distintivo de los datos que tu sistema observa y aprende.

Las features deben ser parte integral de cualquier esquema de LUIS diseñado.

LUIS admite tanto listas de frases como modelos como features:

  • Función de lista de frases.
  • Usar un modelo (intención o entidad) como característica.

La mejor manera de ilustrar la implementación y el poder de las features es recorrer un ejemplo básico de implementación de las dos. Una guía si lo deseas.

Lista de frases como una feature

En este primer ejemplo, creé una lista de frases de fabricantes de automóviles y de nombres de vehículos. Crear una lista aumentada como esta es bastante rápido, ya que las sugerencias de LUIS son asombrosamente precisas.

LUIS crea automáticamente sugerencias para agregar a la función de lista de frases.

A medida que las sugerencias se recortan y agregan a los valores, las sugerencias posteriores de LUIS mejoran drásticamente en precisión y relevancia. Esto lo veo como un valor agregado significativo de LUIS.

El siguiente paso es crear una entidad llamada CarsEntity y agregar la lista de frases llamada CarMakes como una función de machine learning.

Una entidad llamada CarsEntity se crea y define agregando como característica de aprendizaje automático la lista de frases.

Hasta ahora hemos creado la lista de frases y la entidad. Desde aquí, se puede crear la intención, con expresiones de usuario de ejemplo. Y la entidad agregada como una función de aprendizaje automático.

Como se muestra a continuación.

La intención se crea con algunos ejemplos de la entrada del usuario. La Entidad se define contextualmente en el enunciado. La entidad también se agrega como una característica de AA.

Convenientemente, cuando se enumeran las intenciones, la característica o características agregadas se enumeran por intención.

Se enumeran las características vinculadas a la intención.

Una vez entrenado, el configurado se puede probar y confirmar la precisión de detección de la entidad ML. Por supuesto, esto no nos impide agregar más ejemplos a la entidad CarsEntity.

Resultado de la prueba del panel de prueba.

A partir del prototipo, queda claro cómo estas funciones se pueden compartir y reutilizar para una mayor eficiencia.

Veamos un segundo ejemplo que es un poco más complejo…

Usar un modelo como feature que ayuda a otros modelos

Suena confuso y superfluo, pero pronto verás el valor de esto…

En LUIS, una entidad compuesta de aprendizaje automático está constituida por subentidades más pequeñas. Se utiliza para indicar y definir un concepto que está presente en la entidad que estamos intentando definir.

Ejemplo de entidad de AA compuesta

El valor de la subentidad actúa como una característica de su matriz.

Las subentidades pueden tener una lista de frases u otra entidad como característica.

Así que veamos un ejemplo práctico para aclarar cuál es el objetivo…

En este ejemplo queremos capturar una dirección de entrega. La entidad matriz en este caso será la dirección de entrega.

Las subentidades están todas en el mismo nivel, sin más anidamientos.

Son:

  • Número de calle,
  • Nombre de la calle,
  • Ciudad,
  • Estado o Provincia,
  • Condado y
  • Código postal.

A continuación se muestra de forma gráfica.

La entidad de LD compuesta con seis subentidades:

A partir de aquí vamos a crear los demás elementos que constituyen la aplicación LUIS. Este gráfico muestra cómo encajan las piezas entre sí.

Hemos creado la entidad ML compuesta, a continuación creamos la intención con algunas expresiones de usuario de ejemplo. La entidad y subentidades de ML se definen en los ejemplos de enunciados del usuario.

La intención ShippingDetail se muestra aquí con expresiones de ejemplo que están anotadas.

Ahora tenemos nuestra intención y nuestra entidad creadas, pero vamos a enriquecerlas con una función.

Vamos a crear una lista de frases de pueblos y ciudades dentro de Sudáfrica.

Lo que me sorprendió dentro de LUIS fue la precisión con la que LUIS hizo sugerencias de pueblos y ciudades de Sudáfrica.

Lista de frases de nombres de ciudades y pueblos en Sudáfrica

Entidad llamada Cities con la Lista de frases agregada como una función de aprendizaje automático.

La entidad denominada Cities se enriquece con esta lista de frases, y también podemos agregar otros ejemplos dentro de la entidad. O incluso agrega más listas de frases.

La entidad Cities se agrega a la Entidad ML compuesta de ShippingAddress. Lo que hace que esto sea particularmente interesante es que podemos agregar la entidad como una función ML a una subentidad específica. Como se ve en la siguiente imagen:

La entidad de Ciudades se agrega a una subentidad particular llamada Ciudad.

Y, por último, la entidad de Cities también se puede agregar a la intención (ShippingDetail) creada anteriormente.

Se agregó la función de aprendizaje automático a una intención.

El último paso es probar la interfaz y ver cómo funciona.

Conclusión

Microsoft LUIS está realmente a la vanguardia en la creación de nuevas estructuras para definir parámetros de lenguaje natural. Las entidades de aprendizaje automático compuestas son un gran paso adelante, y alimentar esto con listas de frases dinámicas que actúan como funciones de machine learning es realmente astuto.

--

--