NATURAL LANGUAGE PROCESSING Canale unico

Docente coordinatore e verbalizzante: IACOPO MASI

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 è nell'immagine. Si può presupporre che la dimensione dell' sia abbastanza grande in modo che le sue caratteristiche visive possano essere catturate bene da CLIP.

- 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]
    • Testi di riferimento: Jurafsky and Martin. Speech and Language Processing, Prentice Hall, third edition

  • Deep Learning for NLP [25 hours]
    • Testi di riferimento: Jurafsky and Martin. Speech and Language Processing, Prentice Hall, third edition

  • Coding Sessions for Deep Learning for NLP [5 hours]
    • Testi di riferimento: Jurafsky and Martin. Speech and Language Processing, Prentice Hall, third edition

Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030

  • Goal5
  • Goal7
  • Goal8
  • 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 obbligatoria
  • Linguaeng
  • CFU6 CFU
  • Durata complessiva60 ore
  • Distribuzione delle ore36 classroom hours, 24 training hours