NATURAL LANGUAGE PROCESSING

Anno accademico 2023/2024 - 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 facoltativa ma fortemente raccomandata

Contenuti del corso

Introduzione all'elaborazione del linguaggio naturale. Analisi lessicale e sintattica. Modelli di linguaggio basati su N-grams. Word embeddings. Part-Of-Speech Tagging. Parsing sintattico della frase. Analisi semantica. Word Sense Disambiguation. Database lessicali e network semantici: WordNet, BabelNet. Named Entity Recognition. Entity linking. Semantic Role Labeling. Risoluzione delle co-referenze. Modelli neurali di linguaggio: Trasformer ed embedding contestuale. Classificazione di testi. Similarità semantica tra testi. Estrazione di conoscenza da corpus testuali. Large language models. Applicazioni: question answering e chatbot; traduzione automatica; sentiment analysis e stance detection; verifica automatica dei fatti. Librerie, tool e repository: OpenNLP, NLTK, spaCy, PyTorch, 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

 ArgomentiRiferimenti testi
1Introduzione al Natural Language Processing
2Normalizzazione del testo
3Modelli di linguaggio basati su N-gram
4Classificazione di testo attraverso Naive Bayes
5Classificazione di testo attraverso Regressione Logistica
6Semantica distribuzionale e word embeddings
7Risorse lessicali
8Modelli di linguaggio neurali
9Transformers
10BERT
11POS-tagging e Named Entity Resolution
12Parser sintattici
13Parser semantici
14Architetture GPT (Generative Pretrained Transformer)
15Utilizzo di Large Language Models (LLMs)
16Applicazioni 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.

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.