Text mining and sentiment analysis
A.A. 2022/2023
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 non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo trimestre
Programma
L'insegnamento fornisce una panoramica completa dello stato dell'arte e delle prospettive di ricerca nel campo del text mining e della sentiment analysis, con un'introduzione ad alcuni problemi rilevanti e correlati come il rilevamento delle emozioni e il mining delle opinioni.
Introduzione (0:30 ore)
Introduzione al corso, problemi logistici, requisiti del corso e installazione di Python.
Elaborazione del linguaggio naturale (3:30 ore)
Tecniche di base nell'elaborazione del linguaggio naturale: tokenizzazione (modelli bag-of-word e n-gram), parole chiave e punteggiatura, stemming e lemmatizzazione, tagging parziale, chunking, espressioni regolari e riconoscimento di entità denominate. Verranno introdotti toolkit di NLP pubblici come NLTK e SpaCy per acquisire esperienza pratica in Python.
Rappresentazione del documento (2 ore)
Il modello spaziale vettoriale e la metrica tf-idf: rappresentazione di documenti di testo non strutturati con formato e struttura appropriati per supportare algoritmi di mining di testo. PCA come tecnica di riduzione della dimensionalità.
Cluster di testo (3 ore)
Algoritmi di clustering, ovvero clustering basato sulla connettività (a.k.a., clustering gerarchico) e clustering basato su centroidi (ad esempio, clustering k-mean). Valutazione del clustering del testo: purity e indice di Rand.
Classificazione del testo (5 ore)
Algoritmi di selezione delle feature e categorizzazione del testo: Naive Bayes, K Nearest Neighbor (kNN), Regressione logistica, Support Vector Machines e Alberi decisionali. Valutazione della classificazione del testo: precision e recall, matrice di confusione, F score.
Topic modeling (4 ore)
I topic model sono una suite di algoritmi che scoprono la struttura tematica nascosta nelle raccolte di documenti. Saranno trattati due modelli di base: Probabilistic Latent Semantic Indexing (pLSI) e Latent Dirichlet Allocation (LDA).
Document summarization (2 ore)
Si riferisce al processo di riduzione di un documento di testo in un summary che conservi i punti più importanti del documento originale. Saranno trattati i metodi di summary basati su knowledge extraction.
Introduzione all'analisi dei sentimenti e al rilevamento delle emozioni (1 ora)
Definizione del problema di analisi del sentiment. Differenze tra analisi del sentiment e rilevamento delle emozioni.
Approcci basati sul lessico all'analisi dei sentimenti (4 ore)
Indagine sui principali approcci che sfruttano dizionari, ontologie e corpora specializzati per rilevare la polarità del sentimento nei testi.
Approcci di machine learning all'analisi dei sentimenti (4 ore)
Rilevamento del sentimento e della polarità come problema di classificazione. Panoramica e confronto dei principali modelli non supervisionati e supervisionati su un caso di studio.
Panoramica delle architetture di reti neurali per l'analisi del sentiment (2 ore)
Progettazione e realizzazione di un caso di studio basato su una rete neurale per il rilevamento dei sentimenti e la valutazione della polarità.
Rilevazione di affetti ed emozioni (1 ora)
Rilievo e definizione di affetto e rilevazione di emozioni nei testi. Discussione sulle differenze tra i compiti di rilevazione di sentimenti, sentimenti, emozioni e opinioni.
Il linguaggio delle emozioni (4 ore)
Metodi e tecniche per modellare il linguaggio delle emozioni usando reti neurali e modelli linguistici statistici. Applicazione a un caso di studio.
Approcci multimodali al rilevamento delle emozioni (1 ora)
Indagine sullo sfruttamento di dati multimodali (ad es. Linguaggio del viso e del corpo nelle registrazioni video e audio) in combinazione con il testo per rilevare il linguaggio delle emozioni.
Un caso di studio pratico dalla progettazione alla realizzazione (2 ore)
Agli studenti verrà fornito un caso di studio reale sull'analisi dei sentimenti e sul rilevamento delle emozioni. Durante la lezione, il case study sarà studiato dalla fase di progettazione all'implementazione di una soluzione.
Riepilogo e conclusione (1 ora)
Riepilogo degli argomenti principali. Discussione aperta sul lavoro di progetto scelto dagli studenti come compito dell'esame.
Introduzione (0:30 ore)
Introduzione al corso, problemi logistici, requisiti del corso e installazione di Python.
Elaborazione del linguaggio naturale (3:30 ore)
Tecniche di base nell'elaborazione del linguaggio naturale: tokenizzazione (modelli bag-of-word e n-gram), parole chiave e punteggiatura, stemming e lemmatizzazione, tagging parziale, chunking, espressioni regolari e riconoscimento di entità denominate. Verranno introdotti toolkit di NLP pubblici come NLTK e SpaCy per acquisire esperienza pratica in Python.
Rappresentazione del documento (2 ore)
Il modello spaziale vettoriale e la metrica tf-idf: rappresentazione di documenti di testo non strutturati con formato e struttura appropriati per supportare algoritmi di mining di testo. PCA come tecnica di riduzione della dimensionalità.
Cluster di testo (3 ore)
Algoritmi di clustering, ovvero clustering basato sulla connettività (a.k.a., clustering gerarchico) e clustering basato su centroidi (ad esempio, clustering k-mean). Valutazione del clustering del testo: purity e indice di Rand.
Classificazione del testo (5 ore)
Algoritmi di selezione delle feature e categorizzazione del testo: Naive Bayes, K Nearest Neighbor (kNN), Regressione logistica, Support Vector Machines e Alberi decisionali. Valutazione della classificazione del testo: precision e recall, matrice di confusione, F score.
Topic modeling (4 ore)
I topic model sono una suite di algoritmi che scoprono la struttura tematica nascosta nelle raccolte di documenti. Saranno trattati due modelli di base: Probabilistic Latent Semantic Indexing (pLSI) e Latent Dirichlet Allocation (LDA).
Document summarization (2 ore)
Si riferisce al processo di riduzione di un documento di testo in un summary che conservi i punti più importanti del documento originale. Saranno trattati i metodi di summary basati su knowledge extraction.
Introduzione all'analisi dei sentimenti e al rilevamento delle emozioni (1 ora)
Definizione del problema di analisi del sentiment. Differenze tra analisi del sentiment e rilevamento delle emozioni.
Approcci basati sul lessico all'analisi dei sentimenti (4 ore)
Indagine sui principali approcci che sfruttano dizionari, ontologie e corpora specializzati per rilevare la polarità del sentimento nei testi.
Approcci di machine learning all'analisi dei sentimenti (4 ore)
Rilevamento del sentimento e della polarità come problema di classificazione. Panoramica e confronto dei principali modelli non supervisionati e supervisionati su un caso di studio.
Panoramica delle architetture di reti neurali per l'analisi del sentiment (2 ore)
Progettazione e realizzazione di un caso di studio basato su una rete neurale per il rilevamento dei sentimenti e la valutazione della polarità.
Rilevazione di affetti ed emozioni (1 ora)
Rilievo e definizione di affetto e rilevazione di emozioni nei testi. Discussione sulle differenze tra i compiti di rilevazione di sentimenti, sentimenti, emozioni e opinioni.
Il linguaggio delle emozioni (4 ore)
Metodi e tecniche per modellare il linguaggio delle emozioni usando reti neurali e modelli linguistici statistici. Applicazione a un caso di studio.
Approcci multimodali al rilevamento delle emozioni (1 ora)
Indagine sullo sfruttamento di dati multimodali (ad es. Linguaggio del viso e del corpo nelle registrazioni video e audio) in combinazione con il testo per rilevare il linguaggio delle emozioni.
Un caso di studio pratico dalla progettazione alla realizzazione (2 ore)
Agli studenti verrà fornito un caso di studio reale sull'analisi dei sentimenti e sul rilevamento delle emozioni. Durante la lezione, il case study sarà studiato dalla fase di progettazione all'implementazione di una soluzione.
Riepilogo e conclusione (1 ora)
Riepilogo degli argomenti principali. Discussione aperta sul lavoro di progetto scelto dagli studenti come compito dell'esame.
Prerequisiti
Conoscenze di base su Machine Learning, Statistical Learning, Deep Learning e Artificial intelligence.
Metodi didattici
L'insegnamento è erogato in forma di lezioni frontali con ampio ricorso a esempi e materiali di supporto in forma di notebook Python. E' previsto l'uso di slide e materiali didattici che saranno progressivamente resi disponibili sul sito web dell'insegnamento in piattaforma Ariel (https://aferraratmsa.ariel.ctu.unimi.it).
La frequenza, per quanto non obbligatoria, è fortemente consigliata.
La frequenza, per quanto non obbligatoria, è fortemente consigliata.
Materiale di riferimento
Materiali forniti dal docente sul sito web dell'insegnamento https://aferraratmsa.ariel.ctu.unimi.it
STRUMENTI
Reference programming language: Python.
Main modules:
NLTK
scikit-learn
spaCy
Gensim
PyTorch
RIFERIMENTI BIBLIOGRAFICI
NLTK Book: https://www.nltk.org/book/
Aggarwal, C. C., & Zhai, C. (Eds.). (2012). Mining text data. Springer Science & Business Media.
Liu, B. (2012). Sentiment analysis and opinion mining. Synthesis lectures on human language technologies, 5(1), 1-167.
Munezero, M. D., Montero, C. S., Sutinen, E., & Pajunen, J. (2014). Are they different? Affect, feeling, emotion, sentiment, and opinion detection in text. IEEE transactions on affective computing, 5(2), 101-111.
Calvo, R. A., & D'Mello, S. (2010). Affect detection: An interdisciplinary review of models, methods, and their applications. IEEE Transactions on affective computing, 1(1), 18-37.
STRUMENTI
Reference programming language: Python.
Main modules:
NLTK
scikit-learn
spaCy
Gensim
PyTorch
RIFERIMENTI BIBLIOGRAFICI
NLTK Book: https://www.nltk.org/book/
Aggarwal, C. C., & Zhai, C. (Eds.). (2012). Mining text data. Springer Science & Business Media.
Liu, B. (2012). Sentiment analysis and opinion mining. Synthesis lectures on human language technologies, 5(1), 1-167.
Munezero, M. D., Montero, C. S., Sutinen, E., & Pajunen, J. (2014). Are they different? Affect, feeling, emotion, sentiment, and opinion detection in text. IEEE transactions on affective computing, 5(2), 101-111.
Calvo, R. A., & D'Mello, S. (2010). Affect detection: An interdisciplinary review of models, methods, and their applications. IEEE Transactions on affective computing, 1(1), 18-37.
Modalità di verifica dell’apprendimento e criteri di valutazione
Gli studenti dovranno discutere un breve articolo e un progetto di loro ideazione sugli argomenti dell'insegnamento. L'argomento specifico dell'articolo e il progetto saranno definiti con il docente.
INF/01 - INFORMATICA - CFU: 3
SECS-S/01 - STATISTICA - CFU: 3
SECS-S/01 - STATISTICA - CFU: 3
Lezioni: 40 ore
Docente:
Ferrara Alfio
Siti didattici
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)