Natural Language Processing (NLP)
L'elaborazione del linguaggio naturale (NLP) è il campo dell'IA che consente ai computer di analizzare, comprendere e generare il linguaggio umano, dai token agli LLM.
L’elaborazione del linguaggio naturale (NLP) è il ramo dell’intelligenza artificiale (AI) che consente ai computer di analizzare, comprendere e generare il linguaggio umano in forma scritta e parlata. Le sue attività vanno dall’individuazione dei nomi in una frase alla traduzione di un libro o alla gestione di una conversazione, e combinano linguistica computazionale, apprendimento automatico e apprendimento profondo. La ricerca sul Web, i filtri antispam, gli assistenti vocali, i suggerimenti della tastiera del telefono e i chatbot basati su modelli linguistici di grandi dimensioni (LLM) si basano tutti sull’NLP.
Dalle regole ai modelli linguistici di grandi dimensioni#
L’esperimento Georgetown-IBM del 1954 tradusse in inglese più di sessanta frasi russe usando un vocabolario di 250 parole e sei regole grammaticali; ELIZA (1966) di Joseph Weizenbaum imitava uno psicoterapeuta abbinando parole chiave a risposte predefinite. Le regole scritte a mano non riuscivano a gestire l’ambiguità e la varietà dei testi reali, perciò dalla fine degli anni Ottanta l’NLP statistico ha iniziato a imparare le probabilità da testi annotati: i modelli di Markov nascosti etichettavano le parti del discorso e la traduzione automatica statistica apprendeva da milioni di coppie di frasi tradotte.
Le reti neurali hanno preso il sopravvento negli anni 2010. Word2vec (2013) ha appreso embedding che collocano parole correlate vicine tra loro, mentre le reti neurali ricorrenti (RNN) leggevano le frasi una parola alla volta. Il transformer (2017) ha sostituito la ricorrenza con l’autoattenzione, che mette in relazione ogni parola con tutte le altre in parallelo. I transformer preaddestrati, come BERT e GPT, hanno appreso il linguaggio da testi non etichettati e hanno poi richiesto solo piccoli dataset etichettati per ogni compito; dal rilascio di ChatGPT nel novembre 2022, gli LLM gestiscono molti compiti di NLP partendo da una semplice istruzione scritta.
Come i sistemi NLP rappresentano il testo#
Un moderno sistema NLP suddivide innanzitutto il testo in token, parole intere o frammenti di parole generati dalla tokenizzazione, e associa ogni token a un vettore di embedding. Una rete neurale, di solito un transformer, trasforma la sequenza in vettori contestuali, in cui il vettore di ciascun token riflette quelli vicini; un output specifico del compito li interpreta: un’etichetta per l’intero testo, un tag per token, l’inizio e la fine di un segmento di risposta oppure nuovi token generati. Poiché il significato è codificato nei vettori, frasi con parole diverse possono risultare vicine, come mostra l’encoder di frasi all-MiniLM-L6-v2:
from sentence_transformers import SentenceTransformer
# A small sentence encoder maps each text to a 384-dimensional vector
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "How do I reset my password?"
candidates = ["I forgot my login credentials", "How do I reset my router?"]
# Encode all texts, then compare the query with each candidate by cosine similarity
embeddings = model.encode([query, *candidates])
scores = model.similarity(embeddings[0], embeddings[1:])[0]
for text, score in zip(candidates, scores):
print(f"{score:.2f} {text}")La parafrasi «Ho dimenticato le credenziali di accesso» ottiene un punteggio di 0,68 rispetto alla domanda, mentre «Come faccio a reimpostare il router?», che ripete cinque delle sei parole della domanda, ottiene 0,53. La ricerca semantica e la fase di recupero della generazione aumentata dal recupero (RAG) classificano i documenti usando lo stesso confronto.
Attività NLP comuni#
- Analisi del sentiment: Classifica l’opinione espressa in una recensione, un post o una risposta a un sondaggio come positiva, negativa o neutra.
- Riconoscimento delle entità denominate (NER): Etichetta ogni menzione di una persona, un’organizzazione, un luogo o una data.
- Risposta alle domande: Restituisce la risposta a una domanda invece di un elenco di documenti.
- Riepilogo del testo: Condensa un documento in un testo più breve che ne conserva i punti principali.
- Generazione di testo: Scrive nuovo testo un token alla volta; è l’attività alla base dei chatbot e degli assistenti di programmazione.
NLP nella visione artificiale#
Il linguaggio è anche il modo in cui le persone indicano ai modelli di visione artificiale cosa cercare, e combinare NLP e visione ha prodotto modelli capaci di leggere e scrivere descrizioni delle immagini. I modelli visione-linguaggio (VLM) rispondono a domande sulle foto e scrivono didascalie per le immagini, mentre CLIP ha appreso uno spazio di embedding condiviso per immagini e testo a partire da 400 milioni di coppie immagine-didascalia. I rilevatori a vocabolario aperto ricevono l’elenco delle classi sotto forma di testo: invocando set_classes(["double-decker bus", "person"]) su un modello Ultralytics YOLOE-26, ogni nome viene tokenizzato con il tokenizer CLIP e codificato con l’encoder testuale MobileCLIP2 di Apple; il rilevatore confronta quindi questi embedding testuali con le regioni dell’immagine per individuare e segmentare categorie su cui non è mai stato addestrato.
NLP e termini correlati#
- Comprensione del linguaggio naturale (NLU): La parte dell’NLP che si occupa del significato, per esempio dell’intento di un utente o del referente di un pronome. L’altra parte principale è la generazione del linguaggio naturale (NLG), che produce testo.
- Modelli linguistici di grandi dimensioni: Modelli linguistici basati su Transformer con miliardi di parametri, capaci di svolgere molti compiti di NLP tramite prompt, ma con un costo per richiesta superiore a quello di un modello piccolo addestrato per un solo compito.
- Riconoscimento vocale: Converte l’audio parlato in testo, che i modelli NLP interpretano.
- Riconoscimento ottico dei caratteri (OCR): Converte le immagini di testo stampato o scritto a mano in caratteri; è il primo passaggio prima che l’NLP possa leggere un documento digitalizzato.










