NATURAL LANGUAGE PROCESSING Canale unico
Docente coordinatore e verbalizzante: IACOPO MASI
Docenti
Obiettivi formativi
Obiettivi generali:
I fondamenti dell'elaborazione del linguaggio naturale.
Obiettivi specifici:
L'elaborazione del linguaggio naturale al livello di: morfologia, parte del discorso, sintassi, semantica, pragmatica. Traduzione automatica.
Conoscenza e comprensione:
Conoscenza e comprensione delle tecniche algoritmiche e di apprendimento automatica per l'elaborazione del linguaggio naturale.
Applicare conoscenza e comprensione:
Essere in grado di applicare le tecniche di elaborazione del linguaggio naturale mediante homework e un progetto.
Capacità critiche e di giudizio:
Capacità di comprendere e identificare soluzioni efficaci ai problemi dell'elaborazione del linguaggio naturale.
Capacità comunicative:
Capacità di illustrare il progetto sviluppato.
Capacità di apprendimento:
Capacità di apprendere e applicare nuove tecniche di elaborazione del linguaggio naturale sia basate su quelle illustrate nel corso sia basate su approcci innovativi.
Risultati di apprendimento attesi
Obiettivi generali:
I fondamenti dell'elaborazione del linguaggio naturale.
Obiettivi specifici:
L'elaborazione del linguaggio naturale al livello di: morfologia, parte del discorso, sintassi, semantica, pragmatica. Traduzione automatica.
Conoscenza e comprensione:
Conoscenza e comprensione delle tecniche algoritmiche e di apprendimento automatica per l'elaborazione del linguaggio naturale.
Applicare conoscenza e comprensione:
Essere in grado di applicare le tecniche di elaborazione del linguaggio naturale mediante homework e un progetto.
Capacità critiche e di giudizio:
Capacità di comprendere e identificare soluzioni efficaci ai problemi dell'elaborazione del linguaggio naturale.
Capacità comunicative:
Capacità di illustrare il progetto sviluppato.
Capacità di apprendimento:
Capacità di apprendere e applicare nuove tecniche di elaborazione del linguaggio naturale sia basate su quelle illustrate nel corso sia basate su approcci innovativi.
Prerequisiti
Teoria della Probabilità, Statistica, Algebra Lineare e Skill di Programmazione in Python.
Programma dell’insegnamento
Si veda: https://github.com/iacopomasi/NLP
- Introduzione al Natural Language Processing
- Modelli N-gram; smoothing; interpolation; backoff
- Assegnazione part-of-speech (incluso POS tagging multilingue)
- Analisi sintattica: tecniche statistiche e neurali
- Semantica computazionale e semantica lessicale
- Lessici computazionali: WordNet
- Reti semantiche multilingue: BabelNet
- Word Sense Disambiguation; Entity Linking
- Multilinguismo nel Natural Language Processing
- Reti neurali, incorporamenti di parole e sensi e deep learning
- Etichettatura dei ruoli semantici neurali e analisi semantica
- Traduzione automatica statistica
- Generazione del linguaggio naturale e Question Answering
- Modelli di linguaggio neurale (Transformers, BERT, XLM-RoBERTa, GPT)
- Traduzione automatica neurale
- Applicazioni avanzate di NLP multimodale
Testi di riferimento
- Jurafsky and Martin. Speech and Language Processing, Prentice Hall, third edition, in preparation.
- Jacob Eisenstein. Introduction to Natural Language Processing, MIT Press, 2019.
- Yoav Goldberg. Neural Network Methods for Natural Language Processing, Morgan & Claypool, 2017.
- https://d2l.ai/
Modalità di svolgimento
Modalità di svolgimento delle lezione in presenza, con la possiblita' di attendere da remoto (Zoom o Meet)
Frequenza
Facoltativa ma è consigliato seguire il corso in presenza
Modalità di esame
L'esame comprende una parte scritta che testa la parte di teoria e una parte pratica in cui è necessario implementare e analizzare un sistema di NLP di base/avanzato. Essa può essere svolta con homework durante il corso o con un progetto finale.
Esempi di domande
1) Un trasformatore viene utilizzato anche nel modello Contrastive Language-Image Pre-training (CLIP). Supponiamo di avere un'immagine x di una scena e di dover utilizzare CLIP per prendere una decisione automatica se un particolare oggetto
- Indica se puoi utilizzare CLIP per risolvere questo problema.
- Se hai risposto sì, descrivi brevemente perché e come puoi ottenere una previsione se l'oggetto è nella scena.
- Se hai risposto no, spiega perché CLIP non può farlo.
2) Supponiamo di avere un vocabolario V composto da un milione di token di parole e di avere una matrice di incorporamento di parole E in ℝ^(D×|V|) dove D è la dimensione di incorporamento. Assumiamo anche che la parola "sale" sia all'indice i=100 di V. Descrivi con l'algebra lineare come puoi ottenere l'inclusione della parola "sale" da E.
3) Consideriamo di avere due corpora Cx e Cy di testo della stessa lunghezza: N token di parole. Condividono lo stesso vocabolario V. Un corpus viene generato selezionando casualmente i token di parole in V con distribuzione uniforme con sostituzione. Il secondo corpus è un set di dati comune utilizzato per addestrare il CBOW word2vec del Bag-of-Words continuo. Supponiamo di avere i parametri di word2vec addestrati su questo set di dati comune. Conosci anche la dimensione della finestra T utilizzata per addestrarlo. Non sai quale corpus è Cx e quale è Cy. Descrivere una procedura per discernere automaticamente i due corpora.
Programmazione delle attività didattiche
- NLP fundamentals and downstream tasks - Part I [30 hours]
- Deep Learning for NLP [25 hours]
- Coding Sessions for Deep Learning for NLP [5 hours]
Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030
- Anno accademico2024/2025
- Corso di studio a cui afferisce l’insegnamentoComputer Science - Informatica
- Codice insegnamento1038141
- Anno e semestre2º anno - 2º semestre
- TipologiaAttività formative affini ed integrative
- AmbitoAttività formative affini o integrative
- SSDINF/01
- Presenza obbligatoriaSì
- Linguaeng
- CFU6 CFU
- Durata complessiva60 ore
- Distribuzione delle ore36 classroom hours, 24 training hours