¿Te has parado a pensar alguna vez qué es lo hace posible que servicios como Language Underestanding se entiendan contigo? Bien, pues tras leer este artículo conocerás algo más acerca de la forma de trabajar de este herramienta, entendiendo el papel que juega un elemento clave como es el intent (o intención).
Conozcamos LUIS (CLU)
LUIS, acrónimo de Lenguage Underestanding Inteligence Service, es un servicio actualmente más por conocido por otras siglas como CSL (Cognitive Service for Language) o CLU (Conversational Language Understanding). Se trata de un servicio de inteligencia artificial conversacional basado en la nube, que hace uso del aprendizaje automático o Machine Learning (ML). Este servicio personalizado a una conversación o entrada de texto basada en la comprensión del lenguaje natural del usuario o Natural Language Underestanding (NLU), nos permitirá interpretar o predecir, cuál es el significado global y el propósito del mensaje.
En este post (y alguno que vendrá después), vamos a conocer en qué consiste cada uno de los elementos que conforman el CLU. Definiremos y a arrojaremos un poco de luz acerca de cada uno de ellos. En esta post hablaremos acerca de las intenciones o intents.
Comenzamos con los intents o intenciones ¿Qué es un intent?
El intent es el propósito o la necesidad que entraña el mensaje del usuario; el ‘quiz’ de la cuestión en torno al objetivo que persigue el emisor.
Puesto que siempre se va a trabajar con distintos intents, es de vital importancia tener estos bien acotados y definidos con tal de construir un servicio CLU.
A esta necesidad le encontramos mejor el sentido al comprender cómo es el funcionamiento, que definimos a renglón seguido.
¿Cómo trabaja CLU con los intents?
Frente a todo utterance (o entrada de texto del usuario) se lleva a cabo una estimación del grado de afinidad respecto a cada uno de los intents declarados. El resultado de esa valoración se define mediante porcentaje, calculando un score de la afinidad, que determinará cuál es el top intent; o la intención con la que la entrada de texto que mantiene tiene más similitud.
La respuesta del servicio, con el resultado de la interpretación del mensaje, se devuelve en forma de JSON, para ver con qué intención mantiene mayor afinidad, así como el grado de similitud con el resto de intents.
En base al top intent identificado en el mensaje el servicio procederá desencadenará una acción u otra; por ejemplo a devolver información relacionada con la intención destacada en el caso de que CLU este implementado para un bot conversacional, o como en el caso del ejemplo de nuestra POC disparar un proceso bajo RPA para procesar un solicitud de cambio bien de cuenta bancaria o bien de periodicidad del pago.
Esta estimación será más o menos precisa en función de cómo hayamos estructurado el servicio CLU, es decir: cuanto hemos trabajado en su “entrenamiento”…y de éste dependerá contar con una mejor o peor capacidad de interpretación en nuestro servicio.
Y ahora te estarás preguntando ¿Cómo entrenas CLU mediante intents?
Con tal de hacer posible que el servicio interprete de la manera más fiable posible los utterances, debemos contemplar y registrar el mayor número posible de formas distintas de confeccionar un mismo mensaje. Y este es el concepto principal en el que se basa cualquier entrenamiento de un bot; entendiendo que, cuanto mayor sea el número de registros distintos concernientes a un mismo propósito estamos construyendo un margen mayor del servicio frente a la interpretación de los posibles entradas.
Segunda parte, en breve 😉