Cos'e il NLP
Il Natural Language Processing (NLP) e la branca dell'intelligenza artificiale che studia l'interazione tra computer e linguaggio umano. L'obiettivo e costruire sistemi capaci di comprendere, interpretare e generare testo e parlato in modo utile.
Il NLP e alla base di tecnologie che usiamo quotidianamente: assistenti vocali, traduttori automatici, filtri antispam, motori di ricerca, chatbot e Large Language Model come GPT e Claude. La disciplina combina linguistica computazionale, statistica e deep learning.
Il linguaggio umano e intrinsecamente ambiguo: "La vecchia porta la sbarra" ha almeno due interpretazioni. Questa ambiguita e la sfida fondamentale del NLP.
Tokenizzazione
Il primo passo di qualsiasi pipeline NLP e la tokenizzazione: la suddivisione del testo in unita minime (token) comprensibili al modello. Per un approfondimento completo, si veda l'articolo dedicato a Token e Tokenizzazione.
I metodi di tokenizzazione si sono evoluti nel tempo:
- Basata su spazi: "il gatto mangia" diventa ["il", "gatto", "mangia"]. Semplice ma non gestisce le parole composte o le lingue senza spazi.
- Subword (BPE, WordPiece): suddivide le parole rare in sottounita. "impossibile" potrebbe diventare ["im", "possibil", "e"]. E l'approccio usato dai LLM moderni.
- Character-level: ogni carattere e un token. Vocabolario minimo ma sequenze lunghissime.
Task classici: POS, NER, parsing
Prima dell'era dei LLM, il NLP si strutturava attorno a task specifici, ciascuno con modelli dedicati:
Task fondamentali del NLP
POS Tagging (Part-of-Speech): assegna a ogni parola la categoria grammaticale (nome, verbo, aggettivo...). Essenziale per il parsing sintattico.
NER (Named Entity Recognition): identifica e classifica entita nominate nel testo (persone, organizzazioni, luoghi, date). Es: "[Federico Boggia]PERSONA lavora a [Milano]LUOGO".
Parsing sintattico: analizza la struttura grammaticale della frase, identificando soggetto, predicato, complementi e le relazioni tra le parole.
Lemmatizzazione e stemming riducono le parole alla forma base: "mangiavano" diventa "mangiare" (lemma) o "mangi" (stem). Lo stemming e piu grezzo ma piu veloce; la lemmatizzazione richiede analisi morfologica.
Sentiment analysis e classificazione del testo
La sentiment analysis determina il tono emotivo di un testo: positivo, negativo o neutro, con possibili gradazioni. E una delle applicazioni NLP piu diffuse nel marketing per monitorare la reputazione del brand, analizzare recensioni e feedback dei clienti.
La text classification e la generalizzazione: assegnare una o piu etichette a un testo. Esempi:
- Categorizzazione di email (spam/non spam, urgente/non urgente)
- Classificazione di ticket di supporto per dipartimento
- Intent detection nei chatbot ("prenotazione", "reclamo", "informazione")
- Topic modeling per analizzare grandi corpora di testi
Questi task possono essere affrontati con approcci classici (algoritmi di classificazione come Naive Bayes o SVM su feature TF-IDF) oppure con modelli pre-addestrati (fine-tuning di BERT o classificazione zero-shot con LLM).
Word embeddings
Un passaggio cruciale nell'evoluzione del NLP e stato il passaggio da rappresentazioni sparse (one-hot encoding, bag-of-words) a rappresentazioni dense: i word embeddings.
Modelli come Word2Vec (2013) e GloVe (2014) trasformano ogni parola in un vettore denso (tipicamente 100-300 dimensioni) dove parole semanticamente simili sono geometricamente vicine. La famosa analogia: vec("re") - vec("uomo") + vec("donna") risulta vicino a vec("regina").
Il limite degli embedding statici e che ogni parola ha un unico vettore indipendentemente dal contesto: "banco" (di scuola) e "banco" (di lavoro) hanno lo stesso embedding. I modelli contestuali (ELMo, BERT) risolvono questo problema generando embedding diversi in base al contesto. Per un approfondimento, si veda Embedding e Vector Database.
Transformer e LLM
L'architettura Transformer ha rivoluzionato il NLP dal 2017 in poi. Il meccanismo di self-attention permette al modello di considerare tutte le parole di una frase simultaneamente, catturando dipendenze a lungo raggio in modo efficiente.
I Large Language Model (LLM) sono Transformer addestrati su enormi quantita di testo. La loro capacita emergente di risolvere task diversi con semplici istruzioni in linguaggio naturale (few-shot e zero-shot learning) ha unificato il NLP: un singolo modello sostituisce decine di sistemi specializzati.
| Modello | Tipo | Task principali |
|---|---|---|
| BERT | Encoder | Classificazione, NER, QA estrattiva |
| GPT-4 / Claude | Decoder | Generazione, reasoning, coding |
| T5 / BART | Encoder-Decoder | Traduzione, summarization |
Applicazioni pratiche
Il NLP ha applicazioni trasversali in ogni settore:
- Chatbot e assistenti virtuali: customer service automatizzato, assistenti vocali (Alexa, Siri, Google Assistant).
- Traduzione automatica: Google Translate, DeepL, basati su Transformer encoder-decoder.
- Ricerca semantica: motori di ricerca che comprendono il significato delle query, non solo le parole chiave (fondamentale per la SEO moderna).
- Content generation: generazione di testi, riassunti, email, codice.
- Information extraction: estrazione strutturata di dati da documenti non strutturati (contratti, fatture, report).
- Voice-to-text e text-to-speech: trascrizione automatica (Whisper) e sintesi vocale.
Il NLP e oggi la disciplina AI con il maggiore impatto sul business. Comprenderne i fondamenti — dalla tokenizzazione ai Transformer — e essenziale per sfruttare le potenzialita dei LLM e per costruire applicazioni AI efficaci con RAG e API REST.