Text mining and sentiment analysis
A.A. 2024/2025
Obiettivi formativi
Understand the state of the art on text mining and sentiment analysis. Design and develop methods for text classification and topic modeling. Design and develop methods for sentiment classification and polarity detection. Understand the differences between sentiment analysis and emotion detection. Design and develop methods for emotion detection in text.
Risultati apprendimento attesi
At the end of the course the student will be able to address a specific problem in the area of text mining and sentiment analysis. In particular student will know he main notions needed to understand text processing, foundations of natural language processing, text classification, and topic modeling. Moreover students will deal with sentiment analysis in the context of opinion mining and rule-based models and machine learning models for text.
Periodo: Secondo trimestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo trimestre
Programma
Introduzione al programma del corso e modalità d'esame
- Tokenizzazione, normalizzazione e scoring
- Modello vettoriale del testo
- Strumenti: introduzione a NLTK e SpaCy
- N-grams e Skip-grams
Livelli del linguaggio naturale
- Analisi morfologica e sintattica
- SpaCy: parte del discorso e albero della sintassi
Classificazione e valutazione del testo
- Classificazione non supervisionata: clustering
- Classificazione supervisionata: approccio vettoriale vs approccio probabilistico
Valutazione dei risultati
- Classi di risultato: Vero Positivo, Falso Positivo, Vero Negativo e Falso Negativo
- Precisione micro, macro e media, recall e F-score
- Matrice di confusione
Opinion Mining
- Analisi del sentimento basata sugli aspetti
- Opinioni riportate e opinioni indirette, implicite e dedotte
- Lessico dei sentimenti
- SentiWordNet, Vader e TextBlob
- Il problema della disambiguazione del senso delle parole
- L'analisi del sentiment come classificazione
- Analisi del sentiment basata sugli aspetti
Indicizzazione semantica latente
- Latent Dirichlet Allocation
- Topic and sentiment analysis
- Riconoscimento di Named Entities
Word Embedding
- Introduzione alle reti neurali
- Word2Vec, GloVe, FastText
Language Models
- Approcci neurali
- Apprendimento Sequence 2 Sequence
- Architetture RNN e LSTM
- Codificatori automatici e contextual embedding
Transformers e autoencoder
- BERT
- Utilizzo di modelli linguistici per ABSA
- Casi di studio e applicazioni
- Tokenizzazione, normalizzazione e scoring
- Modello vettoriale del testo
- Strumenti: introduzione a NLTK e SpaCy
- N-grams e Skip-grams
Livelli del linguaggio naturale
- Analisi morfologica e sintattica
- SpaCy: parte del discorso e albero della sintassi
Classificazione e valutazione del testo
- Classificazione non supervisionata: clustering
- Classificazione supervisionata: approccio vettoriale vs approccio probabilistico
Valutazione dei risultati
- Classi di risultato: Vero Positivo, Falso Positivo, Vero Negativo e Falso Negativo
- Precisione micro, macro e media, recall e F-score
- Matrice di confusione
Opinion Mining
- Analisi del sentimento basata sugli aspetti
- Opinioni riportate e opinioni indirette, implicite e dedotte
- Lessico dei sentimenti
- SentiWordNet, Vader e TextBlob
- Il problema della disambiguazione del senso delle parole
- L'analisi del sentiment come classificazione
- Analisi del sentiment basata sugli aspetti
Indicizzazione semantica latente
- Latent Dirichlet Allocation
- Topic and sentiment analysis
- Riconoscimento di Named Entities
Word Embedding
- Introduzione alle reti neurali
- Word2Vec, GloVe, FastText
Language Models
- Approcci neurali
- Apprendimento Sequence 2 Sequence
- Architetture RNN e LSTM
- Codificatori automatici e contextual embedding
Transformers e autoencoder
- BERT
- Utilizzo di modelli linguistici per ABSA
- Casi di studio e applicazioni
Prerequisiti
Conoscenze negli ambiti della programmazione in Python, metodi statistici di base e nozioni di machine learning.
Metodi didattici
L'insegnamento è erogato attraverso lezioni frontali dedicate alle basi teoriche e completate da esempi e casi di studio illustrati del docente. Il coding è una parte fondamentale dell'insegnamento. Presenteremo diversi casi d'uso ed esempi di programmazione. Gli studenti sono tenuti a integrare lo studio teorico con un approccio pratico ai casi di studio proposti.
Materiale di riferimento
L'insegnamento non si avvale di un testo unico di riferimento ma piuttosto di diversi materiali e riferimenti bibliografici forniti dal docente durante le lezioni e tramite il sito Ariel. E' inoltre disponibile il repository https://github.com/afflint/textsent che contiene svariati esempi di software python e casi di studio. Il materiale è il medesimo per studenti frequentanti e non frequentanti.
Modalità di verifica dell’apprendimento e criteri di valutazione
Il progetto finale consiste nella redazione di un breve approfondimento su uno degli argomenti dell'insegnamento, individuando una precisa domanda di ricerca e obiettivi misurabili. Il progetto proporrà una metodologia per la soluzione del quesito di ricerca e fornirà una verifica sperimentale dei risultati ottenuti secondo metriche di valutazione dei risultati. L'accento non è posto sull'ottenimento di alte prestazioni ma piuttosto sulla discussione critica dei risultati ottenuti al fine di comprendere la potenziale efficacia della metodologia proposta.
I risultati devono essere documentati in un breve articolo di non meno di 4 pagine e non più di 8. Gli studenti devono inoltre fornire l'accesso a un repository GitHub contenente il codice e i risultati sperimentali riproducibili.
Infine, il progetto sarà discusso dopo una presentazione di 10 minuti in inglese con diapositive. Il voto è espresso in trentesimi e valuta la capacità di presentare le idee e i metodi del progetto, la conoscenza della letteratura necessaria e l'organizzazione del lavoro e del software prodotto.
Le modalità di verifica dell'apprendimento sono le stesse per studenti frequentanti e non frequentanti.
I risultati devono essere documentati in un breve articolo di non meno di 4 pagine e non più di 8. Gli studenti devono inoltre fornire l'accesso a un repository GitHub contenente il codice e i risultati sperimentali riproducibili.
Infine, il progetto sarà discusso dopo una presentazione di 10 minuti in inglese con diapositive. Il voto è espresso in trentesimi e valuta la capacità di presentare le idee e i metodi del progetto, la conoscenza della letteratura necessaria e l'organizzazione del lavoro e del software prodotto.
Le modalità di verifica dell'apprendimento sono le stesse per studenti frequentanti e non frequentanti.
Docente/i
Ricevimento:
Su appuntamento. Il colloquio si svolgerà online dopo aver contattato il docente per posta elettronica.
Online. In caso di appuntamento di persona, Dipartimento di Informatica, via Celoria 18 Milano, Stanza 7012 (7 piano)