Seguici su
Cerca

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

Il corso fornisce una panoramica completa delle tecniche e degli strumenti per l'elaborazione automatica del linguaggio naturale. Si parte dai concetti fondamentali come la normalizzazione del testo e i modelli statistici di linguaggio, per arrivare alle tecnologie più avanzate come i Large Language Models. Il programma copre sia gli aspetti teorici che quelli pratici, includendo tecniche di classificazione, rappresentazioni vettoriali delle parole, parsing sintattico e semantico, e applicazioni moderne dell'intelligenza artificiale nel campo linguistico. Durante il corso saranno introdotti vari ambiti applicativi, tra cui Sentiment Analysis, Question Answering e Machine Translation. Saranno inoltre svolte diverse esercitazioni in Python utilizzando librerie, tool e repository pubblicamente accessibili (ad es. spacy, PyTorch, Transformers, HuggingFace).

Testi di riferimento

  1. 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
  2. Materiali didattici e slide forniti dal docente, disponibili sulla piattaforma e-learning del corso.
  3. Articoli scientifici e risorse online selezionate, che verranno indicate durante le lezioni.

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione al Natural Language Processing p. 11
2Normalizzazione del testopp. 12-45
3Modelli di linguaggio basati su N-gram pp. 46-69
4Classificazione di testo attraverso Regressione Logistica pp. 70-103
5Semantica distribuzionale e word embeddingspp. 104-127
6Modelli di linguaggio neuralipp. 128-153, 292-317
7POS-tagging e Named Entity Recognitionpp. 390-414
8Parser sintatticipp. 415-462
9Parser semantici pp. 489-508
10Introduzione ai transformerspp. 181-225
11Introduzione al Large Language Models (LLMs)pp. 154-180, 226-242
12Ambiti applicativi: Question Answering e Machine Translationpp. 243-291
13Recupero 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.