[Pycon] [new paper] "Mirko Mazzoleni" - Sentiment analysis di emozioni con word embeddings: dall'analisi dei dati alla visualizzazione

info a pycon.it info a pycon.it
Dom 7 Gen 2018 19:07:26 CET


Title: Sentiment analysis di emozioni con word embeddings: dall'analisi dei dati alla visualizzazione
Duration: 60 (includes Q&A)
Q&A Session: 0
Language: it
Type: Talk

Abstract: 
## Livello audience

Il livello richiesto del pubblico è **introduttivo**. Il talk sarà concentrato maggiormente sul flusso logico dell'analisi dati e sulle intuizioni riguardanti gli algoritmi e le metodologie utilizzate. Specifica conoscenza del codice python non è richiesta. Conoscenze premilinari di algebra lineare, machine learning e database NoSQL come MongoDB costituiscono un background utile per la piena comprensione del contesto.

## Abstract

Questo talk presenta un nuovo approccio non supervisionato per il riconoscimento di emozioni (Rabbia, Disgusto, Tristezza, Felicità, Paura, Sorpresa) da dati testuali. Il metodo presentato, basato sull'uso di word embeddings (algoritmo word2vec), verrà testato su una collezione di tweets e sul SemEval 2007 news headlines dataset. Dopo una prima introduzione al campo della Natural Language Processing (NLP) e all'importanza dell'analisi del sentiment, una semplice applicazione Django verrà introdotta, al fine di collezionare messaggi da Twitter. I dati collezionati verranno salvati in un database MongoDB. Le frasi saranno quindi processate utilizzando librerie come *gensim*, *nltk*, *pyenchant*, *scikit-learn*, in modo da assegnare ad ogni frase una percentuale di ogni emozione sopra definita. Infine, dopo un'introduzione ai principi fondamentali di visualizzazione dei dati, i risultati ottenutui saranno rappresentati in una pagina web tramite librerie come *node.js*, *d3.js*, *dc.js* and *crossfilter.js*. La presentazione verterà su tutti i passi del viaggio dall'idea di ricerca, alla collezione dei dati, al loro processing e sviluppo dell'algoritmo, fino alla visualizzazione dei risultati, mostrando i tool principali per l'implementazione.

## Descrizione

Il talk sarà suddiviso in 3 parti principali. In ognuna delle parti, saranno mostrate delle parti di codice. Data la mole di codice presente nell'intera applicazione, non sarà possibile re-implementare online tutta la metodologia. L'obiettivo è quindi quello di dare tutti gli strumenti per rendere l'analisi riproducibile.

- **Introduzione (20 minuti)**: In questa parte verranno introdotte le basi teoriche del talk. In particolare, saranno riviste le motivazioni del presente esperimento, descrivendo i differenti obiettivi del Natural Language Processing e della Sentiment Analysis, introducendo, per quest'ultima, gli approcci standard. Verranno inoltre descritti i concetti di machine learning supervisionato e non supervisionato, assieme alla rappresentazione dei dati di testo tramine word embeddings.


- **Sviluppo dell'applicazione (15 minuti)**: Nella seconda parte di questo talk, verrà descritto il flusso delle operazioni che compongono l'algoritmo di sentiment analysis. La prima sotto-sezione riguarderà lo sviluppo di una semplice applicazione in Django, al fine di effettuare il download dei tweets associati ad una parola chiave. Si discuterà l'utilizzo del database MongoDB per lo storage dei dati scaricati. La seconda sotto-sezione di questa parte descriverà il cuore dell'algoritmo di sentiment, ovvero tutti gli step di pre-processing necessari per poter associare ad ogni frase la percentuale di ognuna delle sei emozioni definite. Tali step riguardano la rimozione delle parole ridondanti, la gestione delle emoticon ed il processo di stemming delle parole. Infine, nella terza sotto-sezione, dopo che le frasi grezze sono state elaborate e rappresentate tramite word embeddings, vi sarà la presentazione dei risultati, prima utilizzando un dataset di tweets custom, e in secondo luogo utilizzando il dataset di headline news SemEval 2007 (categoria "Affective text"). Questa competizione si basava sulla classificazione delle emozioni presenti nei titoli di notizie estratte da siti web. Questo tipo di dataset è adatto allo scopo della presentazione in quanto i titoli sono creati in modo da esprimere emozioni, al fine di attrarre l'attenzione del lettore.

- **Visualizzazione dei dati interattiva (15 minuti)**: nell'ultima parte verranno ripresi i principi fondamentali della visualizzazione dei dati, prendendo ispirazione dai lavori di Tufte e Cleveland. Riferimenti a libri e ricercatori odierni verranno presentati. I risultati della sentiment analysis del passo precendente saranno visualizzati in una pagina web con l'utilizzo di librerie javascript. 

- **Domande (10 minuti)**: gli ultimi minuti sono dedicati a domande da parte del pubblico ed alla preparazione del talk successivo.




Tags: [u'machine-learning', u'sentiment-analysis', u'data-visualization', u'nlp', u'word_embedding']


Maggiori informazioni sulla lista Pycon