💬 Mappa degli Intenti del Chatbot di Supporto — Instradamento al Vicino più Prossimo
Simulatore interattivo di chatbot di supporto: digita un messaggio, osservalo essere proiettato in uno spazio 2D e instradato al cluster di intenti più vicino usando una vera classificazione a centroide più vicino.
Informazioni sulla Mappa degli Intenti del Chatbot di Supporto
Prima che un chatbot di assistenza clienti possa rispondere a qualsiasi cosa, deve capire cosa stai effettivamente chiedendo. Questo primo passaggio si chiama classificazione degli intenti: il sistema legge il tuo messaggio e lo assegna a una delle categorie prestabilite — "traccia il mio ordine", "voglio un rimborso", "reimposta la password" — ciascuna delle quali attiva un flusso di lavoro diverso a valle. I sistemi moderni lo fanno proiettando il testo in uno spazio vettoriale ad alta dimensionalità con un modello transformer e confrontando le distanze, ma l'idea geometrica di fondo è la stessa che questa simulazione mostra in due dimensioni: ogni intento occupa una regione dello spazio, e un nuovo messaggio viene instradato verso la regione a cui risulta più vicino.
Questa simulazione definisce sei intenti di supporto fissi, ciascuno con un piccolo dizionario di parole chiave costruito a mano e una posizione del centroide 2D precalcolata. Digitando un messaggio, questo viene tokenizzato, il sovrapporsi delle parole chiave viene valutato rispetto a ogni intento, e il tuo messaggio viene posizionato nella media ponderata per similarità dei sei centroidi — un classificatore a centroide più vicino vero e funzionante, semplicemente compresso in un vocabolario abbastanza piccolo da poter essere visualizzato. Osserva il punto volare verso la sua posizione, collegarsi all'intento vincente con una linea, e controlla il grafico a barre della similarità dal vivo e il registro di instradamento. Attiva la "modalità ambigua" per vedere cosa succede quando un messaggio non appartiene chiaramente a una sola categoria.
Domande frequenti
Cos'è un classificatore di intenti e perché i chatbot di supporto ne usano uno?
Un classificatore di intenti è un modello che legge un testo libero e lo assegna a una delle categorie prestabilite — gli "intenti" — come tracciare un ordine o reimpostare una password. I chatbot di supporto ne usano uno come primissimo passaggio di una conversazione: prima che possa essere generata qualsiasi risposta, il sistema deve decidere quale, tra alcune decine di flussi di lavoro possibili, il cliente vuole effettivamente. Instradare verso l'intento sbagliato significa che il bot risponde a una domanda completamente diversa, per questo questo passaggio di classificazione viene trattato come un controllo obbligatorio prima di produrre qualsiasi risposta.
Come trasforma questa simulazione il testo in una posizione 2D?
Ogni intento ha un piccolo dizionario di parole chiave costruito a mano con dei pesi, per esempio "traccia" e "pacco" ottengono un punteggio alto per l'intento "Traccia ordine". Il tuo messaggio viene tokenizzato in parole, e ogni token viene confrontato con il dizionario di ogni intento (incluso un semplice confronto per prefisso, così "addebitato" corrisponde comunque ad "addebito"). Questo produce un punteggio di similarità grezzo per ogni intento, che viene poi normalizzato in una distribuzione simile a una probabilità. La posizione 2D del punto è quindi la media ponderata dei sei centroidi fissi degli intenti, pesata da questi punteggi normalizzati — così un messaggio che ottiene un punteggio alto su un intento atterra proprio sopra quel cluster, mentre un messaggio ambiguo atterra da qualche parte nel mezzo.
Come farebbe un sistema reale a proiettare il testo invece di abbinare parole chiave?
I sistemi in produzione raramente codificano manualmente liste di parole chiave. Gli approcci classici usano vettori TF-IDF su un vocabolario ampio combinati con un classificatore lineare o una regola a centroide più vicino, essenzialmente una versione a più dimensioni di ciò che fa questa simulazione. I sistemi moderni usano embedding di frasi basati su transformer (modelli come BERT o sentence-transformers) che mappano un'intera frase in un vettore denso di 384-1536 numeri, addestrati in modo che frasi semanticamente simili finiscano vicine tra loro anche senza parole in comune — così "il mio pacco non è arrivato" e "dov'è il mio ordine" finiscono vicini nonostante non condividano quasi nessun vocabolo. Questa simulazione comprime quell'idea in 2 dimensioni e una piccola lista di parole chiave in modo che la geometria resti visibile.
Cosa significa "confidenza" qui e cosa succede quando è bassa?
La confidenza è il punteggio di similarità normalizzato dell'intento vincente — se "Traccia ordine" ottiene 0,72 e tutti gli altri intenti si dividono il restante 0,28, il router è abbastanza sicuro. Quando il punteggio più alto è basso (circa sotto 0,4 in questa simulazione) di solito significa che il messaggio contiene parole chiave di due o più intenti, oppure di nessuno degli intenti conosciuti. I sistemi reali gestiscono la bassa confidenza ricorrendo a una domanda di chiarimento ("Intendevi tracciare un ordine o un reso?") oppure instradando direttamente verso un operatore umano invece di indovinare e dare una risposta sbagliata.
Perché la modalità ambigua produce un instradamento a bassa confidenza?
La modalità ambigua costruisce messaggi di esempio che mescolano deliberatamente parole chiave di due intenti diversi, per esempio combinando in una frase linguaggio di tracciamento e di fatturazione. Poiché il punteggio di similarità si divide più o meno equamente tra i due intenti corrispondenti, la confidenza normalizzata del "vincitore" cala bruscamente e il punto viene tirato in una posizione tra i due cluster invece di posizionarsi sopra uno dei due. Questo rispecchia i ticket di supporto reali, dove i clienti spesso descrivono un problema che copre due categorie, come "il mio rimborso è stato riaddebitato sulla carta sbagliata".
Perché questa simulazione non ricorda i messaggi precedenti?
Ogni messaggio qui viene classificato in modo indipendente, senza memoria di ciò che è stato detto prima — esattamente come un classificatore di intenti a turno singolo. I sistemi conversazionali reali mantengono uno stato di dialogo tra i turni: se un utente dice "traccia il mio ordine" e poi "in realtà annullalo", un classificatore senza stato potrebbe instradare male il secondo messaggio perché "annullalo" da solo è ambiguo. I chatbot in produzione risolvono questo problema alimentando i turni di conversazione recenti nella fase di embedding oppure mantenendo uno stato di dialogo esplicito a riempimento di slot, il che è considerevolmente più complesso della singola ricerca per messaggio mostrata qui.
Cos'è la classificazione a centroide più vicino e in cosa differisce dal k-NN?
La classificazione a centroide più vicino rappresenta ogni classe con un singolo punto riassuntivo (il centroide, o media, degli esempi di quella classe) e assegna un nuovo punto al centroide più vicino. Il k-Nearest Neighbours confronta invece un nuovo punto con ogni singolo esempio di addestramento e prende un voto di maggioranza tra i k più vicini. Il centroide più vicino è più veloce e semplice — esattamente un confronto di distanza per classe — ma presuppone che ogni classe formi un unico blob compatto e approssimativamente convesso; il k-NN può gestire classi con forme irregolari o multimodali al costo di memorizzare e cercare nell'intero insieme di addestramento.
Due intenti potrebbero mai avere vocabolari di parole chiave sovrapposti in un utilizzo reale?
Sì, ed è una delle parti più difficili nella progettazione di una tassonomia degli intenti. Parole come "carta" o "account" compaiono sia negli intenti di fatturazione, sia in quelli di reimpostazione password, sia in quelli legati alle frodi. I sistemi reali riducono questa sovrapposizione addestrandosi su migliaia di messaggi reali etichettati dei clienti invece che su liste di parole chiave scritte a mano, lasciando che il modello impari quali combinazioni di parole — non le singole parole — siano davvero diagnostiche. I team rivedono regolarmente anche le "coppie di confusione" (intenti che il modello confonde spesso) e le uniscono, aggiungono ulteriori esempi di addestramento contrastivi, oppure le suddividono in sotto-intenti più fini.
Digita un messaggio di supporto e osservalo proiettato in uno spazio 2D e instradato in tempo reale al cluster di intenti più vicino.
3D · Renderer Three.js / WebGL · obiettivo 60 FPS · esegue interamente lato client, senza installazione