Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Conociendo a LUIS (ahora CLU) ¿Qué son los intents?

¿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.

Actualmente trabajamos con esta tecnología para la creación de bots que brinden un servicio de ayuda o consulta a modo conversacional al usuario, o incluso para interpretación de instrucciones que puedan implantarse en un RPA.

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.

En esta captura vemos el ejemplo de una POC de gestión de solicitudes en una plataforma de pólizas, en la que tuvimos que definir 2 tipos distintos de intención: una relacionada con el cambio de cuenta bancaria, y otro homólogo para el cambio en la periodicidad. A partir de una entrada de texto (correo electrónico) del usuario, se debía interpretar mediante CLU el propósito del mensaje.

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.

Aquí podemos ver un fragmento del JSON que nos devuelve el servicio.

 

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 😉

mm

Sobre Adrián Prats

Experto en Administración de Sistemas Informáticos en Red, Sharepoint y Windows Server 2012R2 (MCP 70-410 y MCP 70-497). Tengo amplia experiencia como Analista QA, realizando pruebas funcionales, test de carga y rendimiento, automatización de pruebas, pruebas unitarias (unit test), pruebas de integración, pruebas exploratorias, elaboración del test plan, etc. Actualmente soy Quality Assurance Specialist en ENCAMINA.
Esta entrada ha sido publicada en Azure Cloud Services, Cloud computing, LUIS, Microsoft Azure, Microsoft Bots, QA. Enlace permanente.
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores