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

Preview:

Citation preview

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

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

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

Scenario

• Si vuole analizzare l’opinione pubblica sulle

elezioni politiche europee 2014:

TweetMonitor 4

Demo

TweetMonitor 5

Piattaforma

TweetMonitor 6

Componenti

TweetMonitor 7

Componenti

TweetMonitor 8

X X X X Input

tweets estratti da

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

Componenti

TweetMonitor 10

X X X X Semantic Taggers

Elaborazione dei

contenuti ed

individuazione dei

concetti più rilevanti

menzionati nel testo

Semantic Annotation

• Per poter determinare i principali concetti

all’interno dei tweet, abbiamo analizzato i

seguenti servizi di tagging esterni:

TweetMonitor 11

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

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

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

Componenti

TweetMonitor 15

X X X X SASA

(Semantic-Aware

Sentiment Analysis)

Individuazione della

polarità presente

nei contenuti

ricercati

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

Problema di ricerca

e soluzioni

TweetMonitor 17

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

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

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

• 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

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

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

Approcci

• Baseline;

• Normalizzato;

• Solo aggettivi e verbi;

• Enfasi;

• Lexicon Based.

TweetMonitor 24

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Classificatori

• Per quanto riguarda la scelta dell'algoritmo di

Data Mining verranno confrontati:

– NaiveBayes

– Random Forest

TweetMonitor 39

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

Sperimentazione

TweetMonitor 41

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

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 %

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

Lessicale vs Classificatore

TweetMonitor 45

52

54

56

58

60

62

64

66

Random forest Enfasi (175%)

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

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

Grazie per l’attenzione

TweetMonitor 48