Natural Language Understanding (NLU)
La comprensione del linguaggio naturale (NLU) è la parte dell'NLP che estrae significato, intento ed entità dal testo, come fanno gli assistenti vocali e i motori di ricerca.
La comprensione del linguaggio naturale (NLU) è la parte dell’elaborazione del linguaggio naturale (NLP) che determina il significato di un testo: cosa vuole chi scrive, quali elementi menziona e quale interpretazione intende quando le parole ne consentono più d’una. Un sistema NLU trasforma «Prenota un tavolo per due domani alle 7» in una richiesta strutturata, con un intento come reserve_table e slot per il numero di persone, l’ora e la data, su cui il software può agire. Gli assistenti virtuali, i chatbot del servizio clienti e i motori di ricerca eseguono NLU su ogni richiesta prima di decidere cosa fare o dire.
Perché comprendere il linguaggio è difficile#
Le stesse parole possono assumere significati diversi a ogni livello. «Bank» può indicare una banca o una riva; «Ho visto l’uomo con il telescopio» non specifica chi tiene il telescopio; e in «Il trofeo non entra nella valigia marrone perché è troppo grande», «è» si riferisce al trofeo, ma sostituendo «grande» con «piccolo» si riferisce alla valigia. Nel 2011 Hector Levesque propose questi schemi di Winograd come test della comprensione delle macchine, perché risolverli richiede conoscenze sul mondo e non semplici statistiche sulle parole. I primi sistemi basati su regole, come SHRDLU (1968-1970) di Terry Winograd, comprendevano comandi digitati solo all’interno di un mondo simulato di blocchi, descritto interamente dalle loro regole.
Attività fondamentali della NLU#
- Classificazione degli intenti: Assegna una richiesta a uno degli obiettivi di un’applicazione, come controllare il saldo o bloccare una carta.
- Riconoscimento delle entità denominate (NER): Individua le persone, i luoghi, i prodotti, le date e gli importi menzionati in una richiesta, che gli assistenti usano per riempire gli slot di un intento.
- Parsing semantico: Mappa una frase in una rappresentazione formale eseguibile da un programma, come una query al database o una chiamata API.
- Risoluzione della coreferenza: Collega i pronomi e gli altri riferimenti alle entità a cui rimandano.
- Inferenza del linguaggio naturale: Determina se una frase implica, contraddice o è neutra rispetto a un’altra.
- Analisi del sentiment: Individua l’opinione espressa in un testo.
Gli assistenti classificano di solito gli intenti con un encoder transformer sottoposto a fine-tuning. Un encoder di frasi può classificare gli intenti anche in modalità one-shot, usando un singolo esempio per ciascuno e scegliendo l'intento il cui esempio è semanticamente più vicino alla richiesta:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# One labeled example per intent, as an assistant's training data would provide
intents = {
"check_balance": "What is my account balance?",
"block_card": "Please freeze my debit card",
"transfer_money": "Send money to another account",
}
utterances = ["my card was stolen", "how much cash do I have left", "pay Alex back 20 dollars"]
# Assign each utterance the intent whose example is closest in meaning
scores = model.similarity(model.encode(utterances), model.encode(list(intents.values())))
for text, row in zip(utterances, scores):
best = int(row.argmax())
print(f"{text!r} -> {list(intents)[best]} ({row[best]:.2f})")Tutte e tre le richieste ricevono l’intento corretto: block_card (0,42), check_balance (0,49) e transfer_money (0,28). «Quanti soldi mi restano» e «Restituisci ad Alex 20 dollari» non condividono parole con i rispettivi esempi di intento, quindi la corrispondenza deriva dagli embedding, non dalle parole chiave. La richiesta di trasferimento ottiene solo 0,28, rispetto a 0,17 per gli altri intenti; framework come Rasa inviano a un fallback, che chiede all’utente di riformulare, le richieste il cui punteggio migliore è inferiore a una soglia di confidenza.
Benchmark e modelli#
GLUE (2018) ha riunito nove attività su frasi e coppie di frasi, tra cui analisi del sentiment, rilevamento delle parafrasi e inferenza del linguaggio naturale, in un unico punteggio; nel 2018 BERT lo ha portato a 80,5. Il suo successore più impegnativo, SuperGLUE (2019), ha aggiunto la risoluzione della coreferenza in stile Winograd; nel gennaio 2021 DeBERTa di Microsoft e T5 + Meena di Google hanno entrambi superato il riferimento umano di 89,8. Punteggi elevati possono dipendere dall’apprendimento di scorciatoie: nel 2018 Suchin Gururangan e i colleghi hanno dimostrato che un classificatore che leggeva solo la seconda frase di ogni coppia di inferenza etichettava correttamente circa il 67% del dataset SNLI, perché indizi come le parole di negazione sono correlati all’etichetta «contraddizione». Oggi i modelli linguistici di grandi dimensioni (LLM) svolgono la maggior parte delle attività NLU partendo da un prompt, mentre i piccoli modelli encoder restano comuni quando contano la latenza e il costo per richiesta.
NLU nella ricerca e nella visione#
La ricerca semantica applica la NLU alle query, trovando corrispondenze in base al loro significato e non alle parole esatte; la ricerca vettoriale la rende veloce su milioni di elementi. La stessa idea funziona tra modalità diverse quando testo e immagini condividono uno spazio di embedding, come in CLIP. La scheda Images della pagina Explore della Ultralytics Platform accetta una descrizione della scena, come «gatti su un divano», e restituisce immagini da dataset pubblici in base a ciò che mostrano, senza affidarsi a nomi di file o tag.
NLU e termini correlati#
- NLP: L’intero campo dell’elaborazione computazionale del linguaggio umano. La NLU interpreta l’input e la generazione del linguaggio naturale (NLG) produce l’output.
- Riconoscimento vocale: Converte l’audio parlato in testo, che la NLU interpreta.
- Riconoscimento ottico dei caratteri (OCR): Estrae i caratteri dalle immagini contenenti testo, che la NLU può poi interpretare.
- Risposta alle domande: Restituisce risposte a domande formulate in linguaggio naturale; per farlo, la NLU deve interpretare sia la domanda sia il testo che contiene la risposta.










