Antes de escribir una sola línea de código, toda aplicación de comprensión de lenguaje natural necesita un paso previo que define su éxito: la planeación del modelo de entendimiento. Saber qué acciones resolverá tu aplicación, qué información extraerá y en qué contexto operará marca la diferencia entre un asistente virtual útil y uno que frustra al usuario. A continuación se exploran los elementos centrales para diseñar correctamente una aplicación de LUIS.
¿Qué papel juegan el dominio, las intenciones y las entidades en LUIS?
El dominio es el contexto general en el que opera la aplicación [0:36]. En un sitio de comercio electrónico, por ejemplo, el dominio delimita que el usuario puede preguntar sobre políticas de devolución, buscar artículos dentro de un rango de precios o rastrear un envío con su ID de seguimiento. Definir el dominio evita ambigüedades y le comunica al usuario qué tipo de acciones puede realizar, en lugar de dejarle la puerta abierta a cualquier tema [3:00].
Las intenciones representan las tareas u objetivos que el usuario desea cumplir [3:41]. Cada acción de la aplicación se traduce en una intención:
- Agregar al carrito: el usuario pasa un artículo.
- Encontrar artículo: requiere artículo, precio y categoría.
- Políticas o reglas: no necesita información adicional, solo entrega las políticas de envío o cancelación.
- Seguimiento de envíos: necesita el ID de seguimiento [1:36].
Las entidades son los fragmentos de información que se extraen de la oración del usuario: el nombre del artículo, el precio, la categoría o el ID de seguimiento [0:27]. Es habitual que varias intenciones compartan entidades; por ejemplo, el artículo puede aparecer tanto al agregar al carrito como al buscarlo.
¿Cómo ayuda el dominio a evitar ambigüedades?
Piensa en un call center donde el usuario presiona opciones y submenús [3:13]. Al definir un dominio claro en LUIS, reemplazas ese árbol rígido por un sistema que detecta la intención del usuario de forma natural. En una aplicación de viajes, el dominio podría abarcar reservación de vuelos, reservación de hoteles y alquiler de vehículos [2:27]. Así, el modelo sabe que frases como "Resérvame un vuelo a Río la próxima semana" corresponden a la intención de reservar un vuelo [4:08].
¿Qué sucede con la intención "ninguna"?
Cuando una oración no coincide con ninguna intención entrenada, cae en la intención ninguna [5:53]. Esto significa que la aplicación no entendió al usuario y debe pedir una aclaración. Revisar las peticiones que llegan a "ninguna" permite identificar intenciones adicionales o reasignar oraciones que deberían pertenecer a otra intención [5:10].
¿Cuántas expresiones necesita cada intención para un buen entrenamiento?
La recomendación es entrenar cada intención con entre quince y treinta expresiones [6:37]. Colocar solo dos o tres reduce la precisión del puntaje de confianza; incluir demasiadas tampoco mejora proporcionalmente los resultados.
Para generar variedad en las expresiones puedes:
- Buscar sinónimos de las palabras clave.
- Variar el tiempo verbal y la puntuación.
- Preguntar a otras personas cómo formularían la misma petición [7:12].
- Incluir posibles faltas de ortografía o errores de dedo que un usuario real cometería [7:44].
Esta flexibilidad es precisamente lo que diferencia a LUIS de una simple expresión regular (regex) [8:02]. Un regex funciona bien para patrones fijos como un correo electrónico o un número de documento, pero cuando se trata de interpretar cómo una persona formula una pregunta, las combinaciones son demasiado amplias para resolverlas con patrones estáticos.
¿Cómo se conectan las entidades con la respuesta de tu aplicación?
Cuando el usuario envía una frase, el servicio de LUIS responde con dos elementos: la intención identificada junto con un nivel de confianza, y las entidades extraídas [8:43]. Para una reservación de vuelo, las entidades podrían ser destino, fecha, aerolínea, tipo de billete —turista o VIP— y clase del viaje [8:22].
Con esa información tu aplicación ya puede ejecutar la acción correspondiente: reservar el vuelo, buscar disponibilidad de hotel o lo que el flujo de negocio requiera. El servicio de LUIS se encarga del entendimiento; tu aplicación se encarga de la acción.
Si ya tienes claro tu dominio y tus intenciones, el siguiente paso es abrir el portal de LUIS y comenzar a construir el modelo desde cero. ¿Qué dominio planeas implementar primero? Comparte tu caso en los comentarios.