Capitolo 6 di 1540%
Capitolo 6

NLP: Processamento del Linguaggio Naturale

Come l'AI capisce il linguaggio umano

📌Da Testo a Numeri

I computer non capiscono le parole come gli esseri umani: devono trasformarle in numeri.

Il processo base ha due step: (spezza il testo in unità) e (trasforma ogni token in un vettore numerico). Parole e frasi con significato vicino tendono ad avere vettori vicini nello spazio semantico.

Nota pratica: se la è sbagliata, anche il miglior modello produrrà risposte incoerenti. In produzione , testa sempre gli linguistici oltre ai casi standard.
Takeaway: parte dalla qualità della rappresentazione numerica del testo.

📌Transformer e Attention

I sono l'architettura alla base dei moderni . Il meccanismo chiave è l'attention: il modello pesa dinamicamente quali parti del testo sono più rilevanti nel contesto attuale.

Esempio: in una frase lunga, attention permette di collegare parole distanti ma semanticamente legate, migliorando coerenza e comprensione.

Nota pratica: l'attention migliora il focus, ma non elimina errori fattuali: serve sempre validazione output. <<Takeaway: attenzione al contesto > semplice sequenza di parole>>.

🎬 Video

In arrivo

Come i Transformer usano il meccanismo attention per pesare dinamicamente le parole rilevanti nel contesto. Esempio visivo su frasi lunghe: come due parole distanti ma correlate vengono collegate, e perché questo è superiore alle reti ricorrenti precedenti.

media/ch06-nlp/sec-02/video.mp4

🚀Startup Lens

In un prodotto reale non significa solo "prompt": significa pipeline completa con fallback, moderazione, monitoraggio qualità e controllo costi token.

Se non tracci latenza, tasso fallback e qualità percepita, il sistema sembra funzionare in demo ma degrada in produzione.

⚠️Errore comune + Check rapido

Errore comune: valutare il sistema solo su 2-3 prompt "fortunati".

Check rapido (2 min): scegli un caso d'uso (chat supporto, FAQ, classificazione) e indica 2 prompt edge-case che potrebbero rompere il comportamento atteso.

🎙️ Podcast

In arrivo

Un episodio breve ma denso sull'errore più comune nei sistemi NLP: valutare solo su prompt 'fortunati'. Il podcast guida lo studente nella costruzione di un mini test set con edge-case reali (ambiguità, negazioni, frasi miste, tono ironico) per un caso d'uso specifico (chat supporto, FAQ o classificazione). Collega la robustezza NLP con la pipeline di produzione vista nella Startup Lens e con le metriche operative del capitolo precedente. Takeaway: un sistema NLP affidabile si misura sui casi difficili, non su quelli facili.

media/ch06-nlp/sec-04/podcast.mp3

NLP Workflow Pratico — 6 Step

📋 Setup

Cosa imparerai in questo lab:

  • Costruire un dataset testuale inline e pre-processarlo
  • Trasformare il testo in numeri con TF-IDF
  • Confrontare Logistic Regression vs Naive Bayes su testo
  • Visualizzare la confusion matrix e le parole più discriminanti

🛠️ Scelte Tecniche

  • Questo lab NON usa reti neurali: è NLP classico per consolidare i fondamentali prima dei modelli deep.
  • TF-IDF invece di embedding deep: visibile, interpretabile e perfetto per capire i fondamentali NLP.
  • LogisticRegression + MultinomialNB: confronto lineare vs probabilistico sullo stesso dataset.
  • random_state=42 per risultati riproducibili durante la lezione.
  • seaborn + confusion matrix per mostrare errori reali (falsi positivi/negativi), non solo accuracy.

🧪 Scelte di Laboratorio

  • Dataset inline da 30 frasi italiane: nessun download e setup immediato in aula.
  • Niente API esterne: il lab funziona completamente offline.
  • Pipeline in 6 step volutamente didattica: caricamento → preprocessing → vettorizzazione → training → visualizzazione → esperimento su mia_recensione.
  • Focus sull'analisi degli errori e top parole, non sul “modello più complesso”.

Prerequisiti:

  • ✅ Python 3.7+
  • ✅ pip installato

Comandi di avvio:

# 1. Estrai lo ZIP e accedi

$ cd ml-lab-03-nlp/

# 2. Installa le dipendenze

$ pip install -r requirements.txt

# 3. Esegui il lab

$ python main.py

Step 1

Carica i Dati

Dataset inline di 30 recensioni in italiano (15 positive + 15 negative) — nessun download, nessuna API. Il modello impara direttamente da queste frasi.

Carica i Dati — Codice

python

Loading...

🎯 Prova: Prova: aggiungi 5 tue frasi al dataset — il modello le include nel training. Una frase ironica viene classificata correttamente?

Step 2

Preprocessing

Preprocessing in 2 righe: lowercase + rimozione punteggiatura con regex. Nessuna libreria esterna — mostra che il pre-processing è matematica elementare.

Preprocessing — Codice

python

Loading...

🎯 Prova: Sperimenta: aggiungi re.sub(r'\d+', '', text) per rimuovere i numeri — migliora o peggiora l'accuracy?

Step 3

TF-IDF Vectorization

TF-IDF trasforma il testo in numeri: parole rare ma frequenti in un documento hanno peso alto. È la base di quasi tutti i sistemi NLP classici.

TF-IDF Vectorization — Codice

python

Loading...

🎯 Prova: Prova: cambia max_features=500 — l'accuracy cambia? Con meno feature il modello è più veloce ma meno preciso.

Step 4

Training — LR vs Naive Bayes

Allena e confronta due approcci: Logistic Regression (lineare, interpretabile) vs Multinomial Naive Bayes (probabilistico, velocissimo su testo).

Training — LR vs Naive Bayes — Codice

python

Loading...

🎯 Prova: Rifletti: quale modello ha accuracy più alta? Perché Naive Bayes funziona spesso bene con il testo nonostante le sue assunzioni semplificate?

Step 5

Visualizzazione

Confusion matrix con seaborn per visualizzare falsi positivi/negativi + le top 10 parole più discriminanti dai coefficienti del modello.

Visualizzazione — Codice

python

Loading...

🎯 Prova: Sperimenta: aggiungi la tua frase nella sezione ESPERIMENTO in fondo al main.py — il modello la classifica correttamente?

Step 6

Esperimento — cambia mia_recensione

Modifica la variabile mia_recensione nel file main.py: il modello rifà il preprocessing, la vettorizzazione e restituisce una nuova predizione (Positivo/Negativo) con relativa confidenza.

Esperimento — cambia mia_recensione — Codice

python

Loading...

🎯 Prova: Prova: cambia tono e parole chiave in mia_recensione (es. “ottimo” vs “pessimo”) e osserva come cambia la predizione. Con frasi ambigue, verifica se il modello sbaglia: è un ottimo test di robustezza.

🎯 Punti Chiave

  • Il linguaggio deve essere convertito in numeri
  • Attention mechanism = "cosa è importante"
  • Transformer = base di ChatGPT e moderni LLM
  • Context window = quante parole ricorda il modello
  • Learning outcome: spiegare token/embedding/attention su un esempio pratico

💬 Discussione in Aula

  • Come cambierebbe ChatGPT se non avesse Attention mechanism?
  • Qual è il limite della context window e come potrebbe impattare la comprensione?
  • Se due parole hanno embedding molto simili, cosa significa?

Media del Capitolo

1/3 pronti

Gli slot con media reale non sono più placeholder; gli altri restano placeholder finché non carichiamo i file.

🎬 Video

In arrivo

Video completo Capitolo 6: tokenizzazione, embedding, Transformer e attention, con esempi pratici NLP e guardrail di valutazione.

Durata target: 9 min

Path previsto: media/ch06-nlp/video.mp4

🎙️ Podcast

In arrivo

Podcast di ripasso NLP: pipeline testo->numeri, errori comuni e best practice per test su edge-case.

Durata target: 20 min

Path previsto: media/ch06-nlp/podcast.mp3

🧠 Quiz del Capitolo

Domanda 1 / 100/10 risposte

1. Cos'è la tokenizzazione nel NLP?

Seleziona una risposta per continuare