NATURAL LANGUAGE PROCESSING
Anno accademico 2026/2027 - Docente: MISAEL MONGIOVI'Risultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): Lo studente avrà una solida comprensione dei principi di base e degli strumenti per l'elaborazione del linguaggio naturale. Sarà in grado di comprendere gli avanzamenti più recenti nello stato dell'arte nel campo dell'elaborazione del linguaggio naturale, acquisendo familiarità con le metodologie fondamentali e le tecniche innovative per l'analisi automatica del testo.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): Lo studente sarà capace di analizzare un testo per estrarre informazioni sintattiche e semantiche rilevanti. Utilizzerà in modo efficace gli strumenti specifici per la risoluzione dei principali task di elaborazione del linguaggio naturale. Sarà in grado di orientarsi nel panorama delle tecniche di elaborazione del linguaggio e di proporre soluzioni innovative per affrontare problemi pratici in questo campo.
Autonomia di giudizio (making judgements): Lo studente sarà in grado di valutare le tecniche e gli strumenti disponibili nel campo dell'elaborazione del linguaggio naturale e di selezionare quelli più adatti a risolvere problemi specifici. Svilupperà capacità critiche per confrontare approcci diversi e giustificare le scelte metodologiche in base ai requisiti del problema.
Abilità comunicative (communication skills): Lo studente avrà acquisito il lessico tipico del campo dell'elaborazione del linguaggio naturale e sarà in grado di utilizzare i termini in modo corretto e non ambiguo, facilitando la comunicazione con altri esperti del settore e con non specialisti. Sarà capace di presentare progetti e risultati in modo chiaro e professionale.
Capacità di apprendimento (learning skills): Lo studente avrà le capacità metodologiche, sia teoriche che pratiche, per affrontare e risolvere nuove problematiche nel campo dell'elaborazione del linguaggio naturale. Sarà inoltre dotato di una solida autonomia di studio, permettendogli di approfondire tematiche specifiche e di rimanere aggiornato sugli ultimi sviluppi e avanzamenti del settore.
Modalità di svolgimento dell'insegnamento
L'insegnamento si svolge attraverso lezioni frontali ed esercitazioni guidate. Le lezioni introdurranno i concetti teorici, mentre le esercitazioni ne permetteranno l'applicazione pratica. Le lezioni si svolgeranno in presenza, con modalità frontale. È prevista l'esposizione dei contenuti teorici da parte del docente, con il supporto di slide e lavagna. La partecipazione attiva degli studenti sarà incoraggiata attraverso domande e momenti di discussione in aula.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Conoscenze di base di programmazione (preferibilmente Python), fondamenti di matematica e statistica, nozioni di base di informatica e algoritmi. È utile avere familiarità con i concetti di base dell'apprendimento automatico e delle reti neurali, anche se non strettamente necessario.
Frequenza lezioni
Per una comprensione approfondita degli argomenti trattati e delle metodologie presentate, si raccomanda vivamente la regolare partecipazione alle lezioni.
Contenuti del corso
Testi di riferimento
- Jurafsky, D., & Martin, J. H. (2023). Speech and Language Processing (3rd ed.). Release 6 gennaio 2026. https://web.stanford.edu/~jurafsky/slp3/ed3book_jan26.pdf
- Materiali didattici e slide forniti dal docente, disponibili sulla piattaforma e-learning del corso.
- Articoli scientifici e risorse online selezionate, che verranno indicate durante le lezioni.
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Introduzione al Natural Language Processing | p. 11 |
| 2 | Normalizzazione del testo | pp. 12-45 |
| 3 | Modelli di linguaggio basati su N-gram | pp. 46-69 |
| 4 | Classificazione di testo attraverso Regressione Logistica | pp. 70-103 |
| 5 | Semantica distribuzionale e word embeddings | pp. 104-127 |
| 6 | Modelli di linguaggio neurali | pp. 128-153, 292-317 |
| 7 | POS-tagging e Named Entity Recognition | pp. 390-414 |
| 8 | Parser sintattici | pp. 415-462 |
| 9 | Parser semantici | pp. 489-508 |
| 10 | Introduzione ai transformers | pp. 181-225 |
| 11 | Introduzione al Large Language Models (LLMs) | pp. 154-180, 226-242 |
| 12 | Ambiti applicativi: Question Answering e Machine Translation | pp. 243-291 |
| 13 | Recupero dell'informazione e Retrieval-Augmented Generation (RAG) | pp. 243-265 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Le conoscenze saranno valutate mediante una prova scritta, seguita da una prova orale che valuterà un progetto precedentemente concordato, la capacità di applicare le tecniche apprese a problemi pratici, e la padronanza del linguaggio tecnico del settore.
Per partecipare all'esame finale è necessario avere effettuato la prenotazione sul portale SmartEdu. Per eventuali problemi tecnici relativi alla prenotazione occorre rivolgersi alla Segreteria didattica. La prova orale potrà svolgersi il giorno stesso in cui è stata svolta la prova scritta o a distanza di alcuni giorni da esso.
La prova d'esame è finalizzata a valutare in modo approfondito la preparazione dello studente, la capacità di analisi e di ragionamento sugli argomenti trattati durante il corso, nonché l'adeguatezza del linguaggio tecnico utilizzato.
La prova orale ha valore integrativo rispetto alla prova scritta e concorre alla determinazione del voto finale in modo inscindibile. Essa non rappresenta un’opportunità di incremento del punteggio, ma un completamento necessario per la valutazione complessiva della preparazione dello studente.
Per l'attribuzione del voto finale si seguiranno di norma i seguenti criteri:
- non approvato: lo studente non ha acquisito i concetti di base del Natural Language Processing e non è in grado di descrivere le tecniche fondamentali.
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a descrivere semplici tecniche di NLP.
- 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone, sa applicare le tecniche apprese con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; applica le tecniche in modo completo e senza errori, dimostrando anche capacità di analisi critica.
Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.
Esempi di domande e/o esercizi frequenti
- Descrivere le tecniche di smoothing dei modelli di linguaggio basati su N-grams, evidenziando vantaggi e limiti dei vari metodi.
- Discutere l'importanza dei word embeddings nella comprensione del linguaggio naturale. Illustrare il funzionamento del modello Word2Vec.
- Illustrare la rappresentazione delle parole mediante vettori sparsi basata su tf-idf e cosine similarity. Discuterne brevemente i limiti.
- Descrivere il modello BERT illustrandone la strategia di pre-training.
- Descrivere l'utilizzo di una feed-forward network con un hidden layer per la classificazione di testo.
- Esplorare il ruolo dei Transformer nell'ambito dei modelli neurali di linguaggio. Illustra il funzionamento del self-attention layer in un blocco transformer.
- Confrontare i modelli generativi GPT con quelli bidirectionali come BERT, evidenziando i diversi ambiti di applicazione.
Si precisa che tali domande hanno carattere puramente indicativo: le domande effettivamente proposte in sede d'esame potranno divergere, anche in modo significativo, da quelle riportate in questa lista.