Upload
luigiantonio-ionio
View
183
Download
1
Embed Size (px)
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