Presentazione

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

Transcript of Presentazione

TweetMonitor

ANTONINO FrancescoIONIO 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

2

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

TweetMonitor 3

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 4

Scenario

• Si vuole analizzare l’opinione pubblica sulle elezioni politiche europee 2014:

TweetMonitor 5

Demo

TweetMonitor 6

Piattaforma

TweetMonitor 7

Componenti

TweetMonitor 8

Componenti

XXX X Input

tweets estratti da

TweetMonitor 9

Componenti

XXX X Social Extractors

Individuazione ed estrazione dei contenuti da

Twitter tramite apposite API

Criteri di ricerca:• Contenuto• Utente• Posizione Geografica• Contenuto + Posizione Geografica

TweetMonitor 10

Componenti

XXX X Semantic Taggers

Elaborazione dei contenuti

ed individuazione dei concetti più

rilevanti menzionati nel

testo

TweetMonitor 11

Semantic Annotation

• Per poter determinare i principali concetti all’interno dei tweet, abbiamo analizzato i seguenti servizi di tagging esterni:

TweetMonitor 12

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 13

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 14

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 15

Componenti

XXX X SASA(Semantic-

Aware Sentiment Analysis)

Individuazione della polarità

presente nei contenuti ricercati

TweetMonitor 16

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 17

Problema di ricercae soluzioni

TweetMonitor 18

Problema

• E’ possibile individuare automaticamente la polarità di un testo?

• Quali sono i possibili approcci?• Quale approccio è più adatto a

risolvere tale problema?

TweetMonitor 19

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 20

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 21

• 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 22

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 23

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 24

Approcci

• Baseline;• Normalizzato;• Solo aggettivi e verbi;• Enfasi;• Lexicon Based.

TweetMonitor 25

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 26

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 27

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 28

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 29

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 30

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 31

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 32

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 33

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 34

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 35

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 36

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 37

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 38

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 39

Classificatori

• Per quanto riguarda la scelta dell'algoritmo di Data Mining verranno confrontati:

– NaiveBayes– Random Forest

TweetMonitor 40

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 41

Sperimentazione

TweetMonitor 42

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 differentiCorpus Positivi Negativi Neutri

Training Set 3.662 1.466 4.600

Test Set 1.573 601 1.640

TweetMonitor 43

Risultati lessicale

Dataset SEMEVAL2013

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 %

TweetMonitor 44

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 45

Lessicale vs Classificatore

Random forest Enfasi (175%)52

54

56

58

60

62

64

66

TweetMonitor 46

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 47

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 48

Grazie per l’attenzione