💬 Mapa de Intenciones del Chatbot de Soporte — Enrutamiento por Vecino Más Cercano
Simulador interactivo de chatbot de soporte: escribe un mensaje y observa cómo se incrusta en un espacio 2D y se enruta al clúster de intención más cercano usando clasificación real por centroide más cercano.
Acerca del Mapa de Intenciones del Chatbot de Soporte
Antes de que un chatbot de atención al cliente pueda responder a nada, tiene que averiguar qué es lo que realmente estás pidiendo. Este primer paso se llama clasificación de intenciones: el sistema lee tu mensaje y lo asigna a una de un conjunto fijo de categorías — «rastrear mi pedido», «quiero un reembolso», «restablecer mi contraseña» — cada una de las cuales activa un flujo de trabajo diferente. Los sistemas modernos hacen esto incrustando el texto en un espacio vectorial de alta dimensión con un modelo transformer y comparando distancias, pero la idea geométrica subyacente es la misma que muestra esta simulación en dos dimensiones: cada intención ocupa una región del espacio, y un mensaje nuevo se enruta hacia la región de la que queda más cerca.
Esta simulación define seis intenciones de soporte fijas, cada una con un pequeño diccionario de palabras clave construido a mano y una posición 2D de centroide precalculada. Al escribir un mensaje se tokeniza, se puntúa el solapamiento de palabras clave contra cada intención, y tu mensaje se coloca en el promedio ponderado por similitud de los seis centroides — un clasificador real, funcional, por centroide más cercano, simplemente comprimido a un vocabulario lo bastante pequeño como para poder verlo. Observa cómo el punto vuela hasta su posición, se conecta con una línea a la intención ganadora, y consulta el gráfico de barras de similitud en vivo y el registro de enrutamiento. Activa el «modo ambiguo» para ver qué ocurre cuando un mensaje no pertenece claramente a una sola categoría.
Preguntas Frecuentes
¿Qué es un clasificador de intenciones y por qué lo usan los chatbots de soporte?
Un clasificador de intenciones es un modelo que lee un texto libre y lo asigna a una de un conjunto fijo de categorías — «intenciones» — como rastrear un pedido o restablecer una contraseña. Los chatbots de soporte lo usan como el primer paso de una conversación: antes de poder generar cualquier respuesta, el sistema tiene que decidir cuál de las decenas de flujos de trabajo posibles quiere realmente el cliente. Enrutar hacia la intención equivocada hace que el bot responda a una pregunta totalmente distinta, por lo que este paso de clasificación se trata como una puerta obligatoria antes de producir cualquier respuesta.
¿Cómo convierte esta simulación un texto en una posición 2D?
Cada intención tiene un pequeño diccionario de palabras clave construido a mano con pesos, por ejemplo «track» y «package» puntúan alto para la intención «Rastrear pedido». Tu mensaje se tokeniza en palabras, y cada token se compara con el diccionario de cada intención (incluyendo una coincidencia simple de prefijos para que «charged» siga coincidiendo con «charge»). Esto produce una puntuación de similitud bruta por intención, que se normaliza en una distribución similar a una probabilidad. La posición 2D del punto es entonces el promedio ponderado de los seis centroides fijos de intención, ponderado por esas puntuaciones normalizadas — así, un mensaje con puntuación alta en una intención cae justo encima de ese clúster, mientras que un mensaje ambiguo cae en algún punto intermedio.
¿Cómo incrustaría el texto un sistema real en lugar de comparar palabras clave?
Los sistemas de producción rara vez codifican listas de palabras clave a mano. Los enfoques clásicos usan vectores TF-IDF sobre un vocabulario amplio combinados con un clasificador lineal o una regla de centroide más cercano — esencialmente, una versión de mayor dimensión de lo que hace esta simulación. Los sistemas modernos usan incrustaciones de oraciones basadas en transformers (modelos como BERT o sentence-transformers) que asignan a una oración entera un vector denso de 384–1536 números, entrenado para que oraciones semánticamente similares queden cerca incluso sin compartir palabras — así, «mi paquete no ha llegado» y «dónde está mi pedido» acaban muy próximos pese a compartir casi nada de vocabulario. Esta simulación comprime esa idea a 2 dimensiones y una lista de palabras clave diminuta para que la geometría siga siendo visible.
¿Qué significa aquí la «confianza» y qué ocurre cuando es baja?
La confianza es la puntuación de similitud normalizada de la intención ganadora — si «Rastrear pedido» puntúa 0,72 y el resto de intenciones se reparten el 0,28 restante, el enrutador está bastante seguro. Cuando la puntuación más alta es baja (aproximadamente por debajo de 0,4 en esta simulación), suele significar que el mensaje contiene palabras clave de dos o más intenciones, o de ninguna de las conocidas. Los sistemas reales gestionan la confianza baja recurriendo a una pregunta aclaratoria («¿Te referías a rastrear un pedido o a una devolución?») o derivando directamente a un agente humano en lugar de adivinar y dar una respuesta equivocada.
¿Por qué el modo ambiguo produce un enrutamiento de baja confianza?
El modo ambiguo construye mensajes de ejemplo que mezclan deliberadamente palabras clave de dos intenciones distintas, por ejemplo combinando lenguaje de seguimiento y de facturación en una misma frase. Como la puntuación de similitud se reparte de forma casi equitativa entre las dos intenciones que coinciden, la confianza normalizada del «ganador» cae bruscamente y el punto se desplaza hacia una posición entre los dos clústeres en lugar de situarse justo sobre uno de ellos. Esto refleja los tickets de soporte reales, donde los clientes a menudo describen un problema que abarca dos categorías, como «me devolvieron el dinero a la tarjeta equivocada».
¿Por qué esta simulación no recuerda mensajes anteriores?
Cada mensaje se clasifica aquí de forma independiente, sin memoria de lo dicho antes — exactamente como un clasificador de intenciones de un solo turno. Los sistemas conversacionales reales mantienen el estado del diálogo entre turnos: si un usuario dice «rastrea mi pedido» y luego «en realidad, cancélalo», un clasificador sin estado podría enrutar mal el segundo mensaje porque «cancélalo» por sí solo es ambiguo. Los chatbots de producción resuelven esto introduciendo los turnos recientes de la conversación en el paso de incrustación o manteniendo un estado de diálogo explícito de relleno de campos, algo bastante más complejo que la búsqueda de un solo mensaje que se muestra aquí.
¿Qué es la clasificación por centroide más cercano y en qué se diferencia de k-NN?
La clasificación por centroide más cercano representa cada clase con un único punto resumen (el centroide, o media, de los ejemplos de esa clase) y asigna un nuevo punto al centroide más próximo. El método de k vecinos más cercanos, en cambio, compara un nuevo punto con cada ejemplo de entrenamiento individual y toma el voto mayoritario entre los k más cercanos. El centroide más cercano es más rápido y sencillo — exactamente una comparación de distancia por clase — pero asume que cada clase forma una única masa compacta y aproximadamente convexa; k-NN puede manejar clases de forma irregular o multimodal a costa de almacenar y recorrer todo el conjunto de entrenamiento.
¿Podrían dos intenciones tener vocabularios de palabras clave solapados en un despliegue real?
Sí, y es una de las partes más difíciles de diseñar una taxonomía de intenciones. Palabras como «tarjeta» o «cuenta» aparecen tanto en intenciones de facturación como de restablecimiento de contraseña o de fraude. Los sistemas reales reducen este solapamiento entrenando con miles de mensajes reales de clientes etiquetados en lugar de listas de palabras clave escritas a mano, permitiendo que el modelo aprenda qué combinaciones de palabras — no palabras sueltas — son realmente diagnósticas. Los equipos también revisan regularmente los «pares de confusión» (intenciones que el modelo mezcla con frecuencia) y las fusionan, añaden más ejemplos de entrenamiento contrastivos, o las dividen en subintenciones más finas.
Escribe un mensaje de soporte y observa cómo se incrusta en un espacio 2D y se enruta al clúster de intención más cercano en tiempo real.
3D · Renderizador Three.js / WebGL · objetivo 60 FPS · funciona totalmente en el cliente, sin instalación