48
TweetMonitor ANTONINO Francesco IONIO Luigiantonio Università degli Studi di Bari “A.Moro” Master I livello: ASK-Health Tecnici specialisti nella gestione dei sistemi informativi basati sulla manipolazione semantica dell'informazione

TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Embed Size (px)

Citation preview

Page 1: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

TweetMonitor

ANTONINO Francesco

IONIO Luigiantonio

Università degli Studi di Bari “A.Moro” Master I livello: ASK-Health

Tecnici specialisti nella gestione dei sistemi informativi basati sulla manipolazione semantica dell'informazione

Page 2: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Sommario

• Introduzione e obiettivi

• Piattaforma

– Architettura

– TweetMonitor

– Semantic annotation

– Topic modeling

– Sentiment analysis

• Problema di ricerca e Soluzioni

– Approccio lessicale

– Approccio Machine Learning

• Sperimentazione

• Conclusioni e Sviluppi futuri

TweetMonitor 2

Page 3: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Introduzione e Obiettivi

• Con l’evoluzione dei social network, cresce la necessità di “fare

ordine” nel mare di informazioni attualmente disponibili sulla rete.

• L’obiettivo è quello di estrarre interessanti dati aggregati,

unendo, mescolando e combinando le informazioni “grezze”

presenti sui social network.

• TweetMonitor è una piattaforma per il monitoraggio dei contenuti

pubblicati dagli utenti sul social network Twitter, analizzando una

serie di Tweet raccolti in base a determinati criteri di ricerca e

comprendendone le tematiche principali, indicandone la polarità.

TweetMonitor 3

Page 4: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Scenario

• Si vuole analizzare l’opinione pubblica sulle

elezioni politiche europee 2014:

TweetMonitor 4

Page 5: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Demo

TweetMonitor 5

Page 6: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Piattaforma

TweetMonitor 6

Page 7: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Componenti

TweetMonitor 7

Page 8: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Componenti

TweetMonitor 8

X X X X Input

tweets estratti da

Page 9: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Componenti

TweetMonitor 9

X X X X Social Extractors

Individuazione ed

estrazione dei contenuti da

Twitter tramite apposite API

Criteri di ricerca:

• Contenuto

• Utente

• Posizione Geografica

• Contenuto + Posizione

Geografica

Page 10: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Componenti

TweetMonitor 10

X X X X Semantic Taggers

Elaborazione dei

contenuti ed

individuazione dei

concetti più rilevanti

menzionati nel testo

Page 11: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Semantic Annotation

• Per poter determinare i principali concetti

all’interno dei tweet, abbiamo analizzato i

seguenti servizi di tagging esterni:

TweetMonitor 11

Page 12: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Analisi Critica

• E’ necessario adottare una rappresentazione semantica basata sull’utilizzo di annotatori che permettano di eliminare il rumore facendo emergere soltanto i concetti realmente rilevanti.

• Wikify è stato scartato.

Esempio:

“Stop with this April's joke and bring back Famke Janssen!!”

Risultati:

– Zemanta:

• Framke Janssen, confidenza: 0,875349

– TagMe:

• Framke Janssen, confidenza: 0,5

– OpenCalais:

• Framke Janssen, confidenza: 0,857

– WikipediaMiner:

• Framke Janssen, confidenza: 0,8567111

– Wikify:

• April

• Joke

• Framke Janssen

TweetMonitor 12

Page 13: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Topic Modeling (1/2)

• In letteratura sono presenti diverse tecniche per

effettuare il Topic Modeling (LDA, modello Autore-

Topic, …).

• Considerando la struttura dei tweet, non è possibile

trattarli come un corpus utilizzabile, motivando

l’utilizzo di conoscenza esterna: Wikipedia.

• Wikipedia fornisce una conoscenza enciclopedica

circa le entità di cui si vuole disambiguare il testo,

ottenendone un’organizzazione gerarchica per

categorie.

TweetMonitor 13

Page 14: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Topic Modeling (2/2)

• Tramite Wikipedia, otteniamo la categoria e il corrispettivo padre per ogni tag restituito dagli annotatori.

• Tweet con topic comuni, saranno raggruppati nella stessa categoria.

Esempio:

“Stop with this April's joke and bring back Famke Janssen!!”

Categorie:

– “1964 births”, padri: “1960s births”, “1964”

– “20th-centory actresses”, padri: “20th-century actors”, “20th-century people by occupation”, “20th-century women”, “actresses by century”

– …

– “AIDS activists”, padri: “AIDS activism”, “Healthacrivists”, “People associated with HIV/AIDS”

– …

TweetMonitor 14

Page 15: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Componenti

TweetMonitor 15

X X X X SASA

(Semantic-Aware

Sentiment Analysis)

Individuazione della

polarità presente

nei contenuti

ricercati

Page 16: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Sentiment Analysis

Nota anche come Opinion Mining, fa riferimento

all’utilizzo di tecniche di elaborazione del

linguaggio naturale, text analysis e linguistica

computazionale per identificare ed estrarre

informazioni soggettive da una sorgente .

TweetMonitor 16

Page 17: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Problema di ricerca

e soluzioni

TweetMonitor 17

Page 18: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Problema

• E’ possibile individuare automaticamente la

polarità di un testo?

• Quali sono i possibili approcci?

• Quale approccio è più adatto a risolvere tale

problema?

TweetMonitor 18

Page 19: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Approcci

• Approcci disponibili per implementare algoritmi di

Sentiment Analysis:

– Approccio lessicale: utilizzo di un dizionario con

informazioni riguardanti la positività/negatività di parole

o frasi. La polarità di un testo viene determinata in base

alla polarità dei termini che compongono il testo

– Machine learning: partendo da esempi pre-etichettati, si

addestra un classificatore in grado di predire la polarità

di un testo precedentemente non noto.

TweetMonitor 19

Page 20: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Approccio lessicale

• Dizionari:

– SentiWordNet per determinare per ogni parola il

relativo score sentimentale

– MultiWordNet per l’italiano

• Pertanto dato un tweet, il suo score è ottenuto

combinando lo score di ogni parola di cui è

composto.

TweetMonitor 20

Page 21: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

• SentiWordNet (http://sentiwordnet.isti.cnr.it/) è una

risorsa lessicale per l’opinion mining che assegna

ad ogni synset di WordNet tre score sentimentali:

positività, negatività, oggettività.

TweetMonitor 21

Page 22: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Data Processing

• Prima di sottoporre un tweet ad una specifica

elaborazione, è necessario trattarne il testo per

rimuovere eventuale rumore:

– Rimozione di URL;

– Rimozione di indirizzi email;

– Rimozione del riferimento ad un utente (@nomeutente);

– Rimozione del cancelletto (#), utilizzato per identificare un

hashtag;

– Rimozione della stringa che identifica un retweet («RT»).

TweetMonitor 22

Page 23: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Approccio lessicale

• Il tweet viene splittato in base alle congiunzioni

ottenendo una lista di frasi.

• Per ogni frase viene determinato il POS

utilizzando il PosTagger di Stanford per l’inglese

ed il TreeTagger per l’italiano in modo da

disambiguare ogni termine.

• Lo score di ogni frase è calcolato secondo uno

specifico approccio.

TweetMonitor 23

Page 24: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Approcci

• Baseline;

• Normalizzato;

• Solo aggettivi e verbi;

• Enfasi;

• Lexicon Based.

TweetMonitor 24

Page 25: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Baseline

• Lo score di ogni microfrase è calcolato

sommando gli score di ciascun termine,

invertendo il segno in presenza di negazione.

• Lo score di ogni tweet è determinato sommando

lo score di ogni microfrase e dividendo per il

numero totale di termini.

TweetMonitor 25

Page 26: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Baseline - Esempio

“Americans celebrate Pi Day on March 14th, we celebrate ALMOST Pi Day, today! happy almost Pi day!”

• Microfrase: Americans celebrate Pi Day on March 14th

– Score microfrase: 0.0328

• Microfrase: we celebrate ALMOST Pi Day

– Score microfrase: 0.0328

• Microfrase: today

– Score microfrase: 0.0681

• Microfrase: happy almost Pi day

– Score microfrase: 0.4980

Score Tweet: 0.0789 Polarità: Positivo

TweetMonitor 26

Page 27: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Normalizzato

• Estensione dell’approccio base.

• Lo score viene normalizzato in base al numero di

microfrasi presenti nel testo.

• L’obiettivo è rendere lo score indipendente dal

numero di parole che compongono il testo.

TweetMonitor 27

Page 28: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Normalizzato - Esempio

“Americans celebrate Pi Day on March 14th, we celebrate ALMOST Pi Day, today! happy almost Pi day!”

• Microfrase: Americans celebrate Pi Day on March 14th

– Score microfrase: 0.0164

• Microfrase: we celebrate ALMOST Pi Day

– Score microfrase: 0.0164

• Microfrase: today

– Score microfrase: 0.0681

• Microfrase: happy almost Pi day

– Score microfrase: 0.1660

Score Tweet: 0.0667 Polarità: Positivo

TweetMonitor 28

Page 29: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Solo aggettivi e verbi

• Lo score di ogni microfrase è calcolato

considerando solo aggettivi e verbi.

• L’obiettivo è quello di eliminare eventuale rumore

rappresentato da termini poco indicativi da un

punto di vista sentimentale.

TweetMonitor 29

Page 30: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Solo aggettivi e verbi - Esempio

“Americans celebrate Pi Day on March 14th, we celebrate ALMOST Pi Day, today! happy almost Pi day!”

• Microfrase: Americans celebrate Pi Day on March 14th

– Score microfrase: 0.0328

• Microfrase: we celebrate ALMOST Pi Day

– Score microfrase: 0.0328

• Microfrase: today

– Score microfrase: 0

• Microfrase: happy almost Pi day

– Score microfrase: 0.4809

Score Tweet: 0.1366 Polarità: Positivo

TweetMonitor 30

Page 31: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Enfasi

• Lo score degli aggettivi e avverbi viene

incrementato rispetto agli altri termini.

• A differenza dell’approccio che considera solo

aggettivi ed verbi, qui vengono comunque

considerati nomi, pronomi, verbi, ecc. ma in

maniera ridotta.

• Le percentuali di enfasi sono: 80%, 120%, 133%,

150%, 175%, 200%.

TweetMonitor 31

Page 32: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Enfasi (150%) - Esempio

“Americans celebrate Pi Day on March 14th, we celebrate ALMOST Pi Day, today! happy almost Pi day!”

• Microfrase: Americans celebrate Pi Day on March 14th

– Score microfrase: 0.0328

• Microfrase: we celebrate ALMOST Pi Day

– Score microfrase: 0.0328

• Microfrase: today

– Score microfrase: 0.0681

• Microfrase: happy almost Pi day

– Score microfrase: 0.7384

Score Tweet: 0.1090 Polarità: Positivo

TweetMonitor 32

Page 33: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Approccio Lexicon-Based

• Approccio presente in letteratura.

• Per ogni termine presente in un dizionario, viene

estrapolato il relativo score sentimentale e

modificato, considerando uno specifico range di

termini, a seconda della presenza di

intensificatori, diminuitori, negazioni, emoticon.

• La polarità di un testo è determinata in base alla

predominanza di termini positivi o negativi.

TweetMonitor 33

Page 34: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Lexicon Based - Esempio

“Americans celebrate Pi Day on March 14th, we

celebrate ALMOST Pi Day, today! happy almost Pi

day!”

• Parola: 14th score: 0

• Parola: happy score: 7

Polarità: Positivo

TweetMonitor 34

Page 35: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Classificatore

• Approccio Machine Learning per determinare la

polarità di un testo.

• Utilizzo del tool:

• Obiettivi:

– Individuare la combinazione delle tecniche di

preprocessing e di features per la costruzione di un

modello performante;

– stabilire se un approccio con classificatore

garantisce un’accuratezza maggiore rispetto

all’approccio lessicale.

TweetMonitor 35

Page 36: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Features

• Unigrammi;

• Bigrammi;

• Unigrammi/bigrammi taggati con un POSTagger;

• Hashtag (#): numero di occorrenze;

• Emoticons: numero di occorrenze;

• URL: presenza di URL (feature binaria);

• Target (@): presenza di target (feature binaria);

• Simboli speciali: presenza del carattere "!" (feature binaria);

• Retweet: feature binaria.

TweetMonitor 36

Page 37: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Preprocessing

• Rimozione di caratteri speciali, cioè tutti quei caratteri che non

sono ASCII;

• Rimozione dei target, cioè quei link ad altri utenti di Twitter (@);

• Rimozione degli hashtag (#);

• Rimozione degli URL;

• Rimozione delle emoticon;

• Rimozione delle stopword;

• Scartare quei tweet che presentano sia emoticon positive che negative;

• Presenza della negazione.

TweetMonitor 37

Page 38: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Feature Selection

• Term frequency: per ogni classe vengono scelte quelle feature con

frequenza maggiore ad una certa soglia;

• Mutual information: è uno score che indica, per ogni classe C e ogni

feature F, quanto F potrebbe contribuire a effettuare una decisione

corretta sulla classe C. Dopo aver calcolato lo score MI, si selezionano

le prime k feature con lo score più alto;

• Χ2 feature selection: è uno score che indica, per ogni feature e per

ogni classe, se la feature e la classe sono indipendenti l'una dall'altra.

• Information Gain: guadagno in termini di entropia considerando uno

specifico test su un attributo;

• Salienza: simile all'entropia, ha un valore che varia tra 0 e 1. Verranno

scelte le feature con un valore superiore ad una certa soglia.

TweetMonitor 38

Page 39: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Classificatori

• Per quanto riguarda la scelta dell'algoritmo di

Data Mining verranno confrontati:

– NaiveBayes

– Random Forest

TweetMonitor 39

Page 40: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Creazione del modello

• Per la scelta della combinazione ottimale di

tecniche di preprocessing e features abbiamo

utilizzato un approccio incrementale partendo

dalle singole features per poi testarne le

combinazioni più promettenti.

• Tra i vari test eseguiti su combinazioni diverse,

sono state scelte quelle che massimizzavano

l’accuratezza sul testset.

TweetMonitor 40

Page 41: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Sperimentazione

TweetMonitor 41

Page 42: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Dataset

• Semeval 2013: Task 2 Sentiment Analysis in Twitter

– Estrazione tramite Twitter API di milioni di tweets da

Gennaio 2012 a Gennaio 2013

– Campionamento dei tweet tra tematiche

maggiormente discusse.

– Training set e Test set trattano tematiche differenti in

tempistiche differenti

TweetMonitor 42

Corpus Positivi Negativi Neutri

Training Set 3.662 1.466 4.600

Test Set 1.573 601 1.640

Page 43: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Risultati lessicale

Dataset SEMEVAL2013 TweetMonitor 43

Approccio Accuratezza

Baseline 57.20 %

Normalizzato 57,36 %

Solo agg e verb 53,98 %

enfasi (80%) 57,30 %

enfasi (120%) 57,20 %

enfasi (133%) 56,90 %

enfasi (150%) 57,45 %

enfasi (175%) 57,63 %

enfasi (200%) 56,87 %

Lexicon Based 46,08 %

Page 44: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Risultati Classificatore

• Combinazioni ottimali:

– NaiveBayes: 61.4747%

• Preprocessing: eliminazione stopword e negazione

• Features: emoticon, URL, retweet, simboli speciali, target

utente, unigrammi, unigrammi taggati, bigrammi taggati

– Random Forest (3500 alberi): 65.1306%

• Preprocessing: negazione

• Features: URL, unigrammi, unigrammi taggati

TweetMonitor 44

Page 45: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Lessicale vs Classificatore

TweetMonitor 45

52

54

56

58

60

62

64

66

Random forest Enfasi (175%)

Page 46: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Conclusioni

• L’approccio basato su classificatori:

Più performante rispetto all’approccio lessicale;

Dipendente dal dominio del trainingset;

Necessita di un trainingset “sufficientemente” corposo etichettato manualmente;

Lunghi tempi per la costruzione del modello.

• L’approccio lessicale:

Non vincolato al dominio;

Possibilità di definire un lessico specifico per un dominio;

Vincolato dalla consistenza del lessico;

Mancanza di lessici con polarità;

Ambiguità del linguaggio naturale.

TweetMonitor 46

Page 47: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

TweetMonitor

• Sviluppi futuri:

• Utilizzare diversi dataset;

• Aggiungere nuove tipologie di feature basate su ontologie

• Testare su altri algoritmi di Data Mining.;

• Introdurre l’oggettività di un termine;

• Approccio ibrido.

TweetMonitor 47

Page 48: TweetMonitor: approcci Machine Learning e lessicali per la Sentiment Analysis in Twitter

Grazie per l’attenzione

TweetMonitor 48