NATURAL LANGUAGE PROCESSING

Anno accademico 2024/2025 - 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

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

 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.

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.