¿Alguna vez te has preguntado qué hace que un chatbot no solo procese palabras, sino que también «entienda» realmente lo que le decimos? La respuesta radica en la lingüística, concretamente en disciplinas como la lexicografía y la semántica. Estas herramientas permiten que los sistemas de inteligencia artificial desglosen y analicen nuestras palabras para ofrecer respuestas más naturales y precisas. Hoy quiero mostrarte cómo estos conceptos toman forma en un ejemplo muy práctico: un chatbot para una pizzería, donde cada interacción está diseñada para comprender tus deseos desde el primer «Hola».
🎯 La base: Intents y entidades 🧩
Imagina que estás diseñando un chatbot para una pizzería. Este sistema no solo debe identificar palabras clave, sino también interpretar con precisión lo que el cliente realmente desea. Para ello, necesita comprender tanto la intención del usuario (intents) como los elementos específicos que aparecen en cada frase (entidades). Es como entrenar a un nuevo empleado para que no solo tome notas, sino que entienda completamente las necesidades del cliente y actúe en consecuencia, con el toque innovador de la tecnología.
💡 La arquitectura lingüística en Intents 🔍
El arte de los sinónimos 🗣️
Cuando un cliente quiere pedir una pizza, puede expresarlo de muchas formas distintas, como por ejemplo:
- «Quiero una pizza.»
- «Me apetece una pizza.»
- «¿Me pones una pizza?»
- «Vengo a por una pizza.»
Para un humano, todas estas frases significan lo mismo. Sin embargo, para un chatbot, es necesario enseñarle explícitamente que todas estas expresiones equivalen a la misma acción. Este proceso consiste en crear un «corpus» que mapea estas variaciones a un mismo propósito o «Intent». Desde la perspectiva de la pragmática, podría considerarse como una forma de modelar los actos del habla, donde la intención subyacente del usuario queda claramente definida.
La jerarquía del menú: hiperónimos e hipónimos 🌳
Piensa en tu menú como un árbol genealógico:
- «Comida» es el abuelo (hiperónimo).
- «Pizza» es el padre.
- «Margarita», «Pepperoni» y «Cuatro Quesos» son los hijos (hipónimos).
Cuando alguien pregunta «¿Qué comida tienen?», el bot sabe navegar por este árbol para ofrecer todas las opciones relevantes.
El rompecabezas de los ingredientes: merónimos, holónimos y sinónimos en entidades 🍕
Cada pizza es como un rompecabezas donde:
- Las piezas (merónimos): Masa, salsa de tomate, queso y otros ingredientes.
- El todo (holónimo): La pizza completa.
A su vez, cada uno de estos componentes puede tener múltiples valores con sinónimos asociados. Por ejemplo:
- Masa fina puede referirse también a base delgada o masa ligera.
- Salsa de tomate podría llamarse salsa roja o simplemente tomate triturado.
Cuando un cliente pregunta «¿Qué lleva la Margarita?», el bot puede «desarmar» la pizza en sus componentes principales y reconocer que «masa fina» o cualquiera de sus sinónimos afectan una parte específica del pedido. Esto permite que las variaciones en el lenguaje del usuario no interfieran con la precisión del sistema.
La coreografía de la preparación: troponimia 🎶
Preparar una pizza no es una acción única, sino una danza de movimientos coordinados:
- Amasar.
- Estirar.
- Agregar ingredientes.
- Hornear.
- Entregar.
Cuando alguien pregunta por los tiempos de preparación, el bot puede desglosar cada paso del proceso.
El contexto es rey: polisemia 👑
«Quiero una Margarita» puede significar dos cosas completamente diferentes: ¿pizza o cóctel? El bot debe actuar como un detective, analizando el contexto de la conversación para resolver el misterio. Sin embargo, dado que algunos sistemas no siempre captan el contexto con precisión o el input del usuario puede ser insuficiente, la solución más efectiva suele ser crear un intent desambiguador. Este intent formula una pregunta directa al usuario: «¿Te refieres a la pizza o al cóctel?», garantizando así que el bot pueda responder de manera precisa y eficiente.
🔄 Lingüística en acción: un ejemplo real 📋
Veamos cómo se estructura todo esto en la práctica:
Intent: realizar pedido
- Reconoce: «Quiero una Margarita familiar con masa fina.»
- Identifica las entidades: tipo de pizza: margarita (sinónimos: clásica, tradicional); tamaño: familiar (sinónimos: grande, para compartir); tipo de masa: fina (sinónimos: base delgada, ligera).
Intent: consultar menú
- Entiende: «¿Qué opciones tienen en el menú?»
- Navega por su jerarquía de categorías para mostrar todas las opciones, incluyendo pizzas, entrantes, bebidas y postres. Cada categoría tiene valores normalizados y sinónimos asociados. Por ejemplo: pizzas: margarita (sinónimos: clásica, tradicional), pepperoni (sinónimos: americana, picante); bebidas: refrescos (sinónimos: sodas, gaseosas), agua (sinónimos: mineral, natural); postres: tiramisú (sinónimos: pastel italiano), helado (sinónimos: crema fría).
Intent: información de procesos
- Procesa: «¿Cuánto tardan en preparar?»
- Desglosa los tiempos por cada paso del proceso, incluyendo entidades, valores normalizados y sinónimos: proceso: preparar masa (sinónimos: amasar, mezclar); horneado: tiempo de cocción (sinónimos: hornear, cocinar); entrega: tiempo de envío (sinónimos: repartir, entregar a domicilio).
📚 Intents más allá de la recolección de entidades 🚀
Aunque gran parte del trabajo de un chatbot se centra en reconocer entidades y procesarlas, algunos intents realizan tareas más complejas. Estos intents pueden incluir:
- Validaciones contextuales: por ejemplo, asegurarse de que un pedido cumple con las condiciones de envío gratuito o verificar horarios de disponibilidad.
- Desambiguaciones avanzadas: como en el caso de «Margarita», donde un intent desambiguador puede identificar si el usuario se refiere a una pizza o un cóctel.
- Procesos internos: como calcular tiempos estimados o sugerir opciones alternativas si un producto no está disponible.
Por otro lado, las entidades no son simplemente palabras individuales. Estas pueden incluir colocaciones (“margarita familiar”), frases completas (“quiero una pizza con masa fina y extra queso”) o incluso patrones definidos con expresiones regulares, como fechas (“entregar el 25 de diciembre”) o números de teléfono.
🎈 El resultado final 🏆
Un chatbot construido con esta base lingüística no solo procesa pedidos, sino que realmente entiende a las personas. Es como pasar de un camarero que simplemente toma órdenes a uno que interactúa con naturalidad, recomienda opciones según tus gustos y resuelve dudas como si fuera un experto en el menú. Este nivel de interacción no solo mejora la experiencia del usuario, sino que también refuerza la confianza y la satisfacción con el servicio.