MATEMATICA E INFORMATICAInformaticaAnno accademico 2024/2025
9796702 - NATURAL LANGUAGE PROCESSING
Docente: MISAEL MONGIOVI'
Risultati di apprendimento attesi
Secondo i descrittori di Dublino studenti e studentesse dovranno, alla fine del corso, acquisire:
1) Conoscenza e comprensione:
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.
2) Capacità di applicare conoscenza e comprensione
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.
3) Autonomia di giudizio:
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.
4) Abilità comunicative:
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.
5) Abilità di apprendimento:
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
Il corso alternerà lezioni frontali ad esercitazioni guidate allo scopo di fornire un chiaro collegamento tra i concetti teorici e la loro applicazione pratica.
Prerequisiti richiesti
Il corso richiede la conoscenza della programmazione, delle strutture dati e degli algoritmi elementari, nonché dei concetti di base di probabilità e statistica.
Frequenza lezioni
Frequenza obbligatoria
Contenuti del corso
La parte iniziale del corso si concentrerà sugli strumenti di base per l'elaborazione del linguaggio naturale, includendo la normalizzazione del testo, i modelli di linguaggio basati su N-grams e la classificazione di documenti di testo. Si introdurranno la rappresentazione semantica delle parole e le risorse lessicali. Una seconda parte sarà dedicata ai modelli neurali di linguaggio, a partire dai modelli più semplici basati su reti neurali Feedforward, fino ad un introduzione ai modelli più avanzati, basati sui transformer. Si approfondirà l'utilizzo di tali modelli per l'elaborazione di sequenze, in particolare per il Part-Of-Speech tagging e per il Named Entity Recognition. Una terza parte, più avanzata, riguarderà gli strumenti per il parsing sintattico e semantico ed infine un'introduzione ai Generative Pretrained Transformers (ad es. GPT-3, GPT-4, ChatGPT). Durante il corso saranno introdotte varie applicazioni dei modelli di linguaggio, tra cui Sentiment Analysis, Question Answering, Machine Translation e Summarization. Saranno inoltre svolte varie esercitazioni in Python utilizzando librerie, tool e repository pubblicamente accessibili (ad es. spacy, PyTorch, Transformers, HuggingFace).
Testi di riferimento
D. Jurafsky & J.H. Martin, Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition (third edition), Prentice Hall
Programmazione del corso
| | Argomenti | Riferimenti testi |
| 1 | Introduzione al Natural Language Processing | |
| 2 | Normalizzazione del testo | |
| 3 | Modelli di linguaggio basati su N-gram | |
| 4 | Classificazione di testo attraverso Naive Bayes | |
| 5 | Classificazione di testo attraverso Regressione Logistica | |
| 6 | Semantica distribuzionale e word embeddings | |
| 7 | Risorse lessicali | |
| 8 | Modelli di linguaggio neurali | |
| 9 | Transformers | |
| 10 | BERT | |
| 11 | POS-tagging e Named Entity Resolution | |
| 12 | Parser sintattici | |
| 13 | Parser semantici | |
| 14 | Architetture GPT (Generative Pretrained Transformer) | |
| 15 | Utilizzo di Large Language Models (LLMs) | |
| 16 | Applicazioni di NLP | |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Le conoscenze saranno valutate mediante una prova scritta, seguita da una prova orale che valuterà il progetto e la capacità di applicare le conoscenze acquisite.
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 e limiti dei vari metodi.
- Discutere l'importanza dei word embeddings nella comprensione del linguaggio naturale. Illustra 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.
- Esplora il ruolo dei Trasformer nell'ambito dei modelli neurali di linguaggio. Illustra il funzionamento del self-attention layer in un blocco transformer.
English version