Sentiment Analysis: dietro al web c’è un cuore? Sicuramente ci sono delle persone. Prof. Francesco Colace, Ricercatore, Dipartimento di Ingegneria Informatica, Ingegneria Elettrica e Matematica Applicata Università degli Studi di Salerno
Come Tomappo ha aumentato del 400% i download della sua app grazie ad un foto...
Sentiment Analysis: dietro al web c’è un cuore?
1. — –
Dr. Francesco Colace, Ph.D. – Prof. Massimo De Santo, Ph.D
fcolace@unisa.it – desanto@unisa.it
Osservatorio SNIF
2. ˜ E dunque, Snif …
˜ http://www.centroict.unisa.it/snif/index
Social Case History - Milano
3. - Sentiment Analysis: fra mito e leggenda … … c’è
sempre un computer!
- Alla ricerca del Sentiment perduto …
- Come si estrae un sentiment?
- I principali attori sul mercato
- Alcuni risultati ottenuti sul campo
- Una metodologia
- E il futuro …
Social Case History - Milano
4. Sempre maggiore diffusione dei social network:
• Generalisti
• Twitter
• Facebook
• Google+
• Specializzati
• Linkedin
• Viadeo
Social Case History - Milano
5. Effetto: massiccia e inedita quantità di dati sulle preferenze e
sulle opinioni degli utenti
• Disponibili in tempo reale
• Caratterizzati territorialmente
• Caratterizzati per tipologia di utente
È possibile estrarre informazioni sulle opinioni degli utenti?
Soluzione: Sentiment Analysis
Social Case History - Milano
6. - Soggettività, cioè, l’espressione da parte di qualcuno,
attraverso il linguaggio, di:
- opinioni
- sentimenti
- emozioni
- convinzioni
- valutazioni
- speculazioni
Social Case History - Milano
7. Come riconoscere la soggettività in una frase?
- Subjectivity Analysis: classificare
“automaticamente” contenuti in “oggettivi” e
“soggettivi”
- Oggettivo: I bought an iPhone a few days ago.
- Soggettivo: It is such a nice phone.
Social Case History - Milano
8. Sentiment
• Pensiero, punto di vista o atteggiamento basato
principalmente sulle emozioni invece che sulla ragione
Sentiment Analysis (Opinion Mining)
• Tecnica basata su metodologie per il trattamento del
linguaggio naturale (NLP) per automatizzare
l’estrazione o la classificazione di “sentiment” da testi
non strutturati
Social Case History - Milano
9. • Ha l’obiettivo di identificare l’opinione/sentimento
che una persona manifesta verso un oggetto, una
persona o un argomento
• Analisi di maggior dettaglio rispetto alla subjectivity
analysis
Social Case History - Milano
10. - Informazioni sulle opinioni del consumatore
- Product reviews
- Marketing
- Attitudini del consumatore
- Trends
- Politica
- Punto di vista degli elettori su determinati
argomenti
- Punto di vista degli elettori sui candidati
- Social
- Caratterizzare l’orientamento di gruppi di persone
Social Case History - Milano
16. • Colui che genera il sentimento
• L’oggetto (o parte di esso) sul quale l’opinione è
espressa
• L’opinione
Social Case History - Milano
17. A livello di documento:
- Obiettivo: classificazione complessiva del sentiment
contenuto in esso
- Classi di valutazione: positivo, negativo, e neutrale
- Assunzione: ogni documento o review si focalizza su
un singolo oggetto e contiene opinioni da parte di un
singolo “opinion holder”
Social Case History - Milano
18. A livello di singola frase (o post):
- Obiettivo_1: identificare le frasi “soggettive”
contenenti un’opinione
- Classi: frasi oggettive e soggettive “opinionate”
Social Case History - Milano
19. A livello di singola frase (o post):
- Obiettivo_2: classificazione del “sentiment” presente
nelle frasi
- Classi di valutazione: positivo, negativo e neutro
- Assunzione: una frase contiene solo un’opinione.
Social Case History - Milano
20. A livello di “feature”:
- Task_1: Identificare e estrarre “feature” riferite
all’oggetto che è stato commentato
- Task_2: Determinare quali fra le “feature” esprimono
opinioni positive, negative e neutre
- Task_3: Raggruppare le feature simili in modo da
poterle identificare in varie review
Social Case History - Milano
21. Descrivendo il “generatore” di opinione:
- Task_1: caratterizzare (se possibile) colui che ha
generato l’opinione attraverso le sue principali
caratteristiche
- Task_2: tracciandone il comportamento
Social Case History - Milano
22. Attori del mercato: NM Incite (nmincite.com)
Caratteristiche
Tipologia: blog reporting
Nielsen and McKinsey & Company
Social Case History - Milano
23. Attori del mercato: Radian6 (http://www.radian6.com/)
Caratteristiche
Tipologia: Reputation monitoring
Social Case History - Milano
24. Attori del mercato: Alterian (http://www.alterian.com/)
Caratteristiche
Tipologia: reputation monitoring
Social Case History - Milano
25. Attori del mercato: Social Mention (http://www.socialmention.com/)
Caratteristiche
Tipologia: Search and Analysis
Social Case History - Milano
26. Attori del mercato: Lithium (http://www.lithium.com/)
Caratteristiche
Tipologia: search-specific mentions and sentiment in social media
Social Case History - Milano
27. Attori del mercato: SentiMetrix (http://www.sentimetrix.com/)
Caratteristiche
Tipologia: Sentiment Analysis Tool
Social Case History - Milano
28. Blog Reputation Search Brand Sentiment in Social Search and
Reporting
Monitoring
Engine
Reputation
Media
Analysis
NM Incite SI
NO
NO
NO
NO
NO
Radian6 NO
SI
NO
NO
NO
NO
Addict-O-matic NO
NO
SI
NO
NO
NO
Alexa NO
NO
NO
SI
NO
NO
Twitter Analyzer NO
NO
NO
NO
NO
NO
Sentiment140 NO
NO
NO
SI
NO
NO
Topsy NO
NO
NO
SI
NO
NO
tweetfeel NO
NO
NO
NO
SI
SI
twitrratr NO
NO
NO
NO
SI
SI
Technorati SI
NO
NO
NO
NO
NO
Alterian NO
SI
NO
NO
NO
NO
SocialMention NO
NO
NO
NO
NO
SI
SentiMetrix NO
NO
NO
NO
SI
NO
Lithium NO
NO
NO
NO
SI
SI
KissMetrics NO
SI
NO
SI
NO
NO
General Sentiment NO
SI
NO
SI
NO
NO
Amplicate NO
NO
NO
SI
NO
NO
Viralheat NO
NO
NO
NO
SI
SI
MoodMap NO
NO
NO
NO
SI
SI
Social Case History - Milano
29. Attori del mercato: ViralHeat (https://viralheat.com/)
Caratteristiche
Tipologia: Sentiment Analysis Tool
Social Case History - Milano
30. Una prova sul campo …
Pagina: Samsung Mobile (https://graph.facebook.com/
samsungMobile);
Numero di post analizzati: 10;
Tre Sessioni:
Max. 10 commenti per post;
Max. 50 commenti per post;
Max. 100 commenti per post.
Social Case History - Milano
32. Post 1 – Session 10:
• #Pos = 4
• #Neg = 6
• AvgProbPos = 0,7143
• AvgProbNeg = 0,7043
Steps:
1. #Pos to [0-1]: 0,4; #Neg to [0-1]: 0,6;
2. (0,4*AvgProbPos) + (0,6*AvgProbNeg)= firstArg +secondArg = weighted sum =
0,7083;
3. Positivity à firstArg : x = weighted sum : 1 àx = firstArg/weighted sum = 0,4033
4. Negativity à secondArg : x = weighted sum : 1 àx = secondArg/weighted sum =
0,5966
5. Spread = Positivity – Negativity = -0,1933 à Negativity wins! à absolute spread:
19,33%
Social Case History - Milano
33. • [post: 3/12, comment: 58/100]
fromid = 100001585959213; likes = 1; text = Samsung phones are the best
phones
Comment's mood: positive, Probability: 0.60161744842501
• [post: 4/12, comment: 90/100]
fromid = 1740090348; likes = 0; text = My galaxy S2 just died. Samsuck
Comment's mood: negative, Probability: 0.813345405617903
• [post: 4/12, commento: 83/100]
fromid = 100002554492722; likes = 0; text = I luuuuuv samsung Galaxyyyyyyyyy
Comment's mood: negative, Probability: 0.754766406365881
• [post: 3/12, commento: 55/100]
fromid = 100002916285610; likes = 1; text = i Love my GALAXY S2 ! IPHONE
SUCKS
Comment's mood: negative, Probability: 0.856065195331185
Social Case History - Milano
34. • Bassa precisione degli algoritmi di classificazione
• Scarsa scalabilità degli algoritmi
(cento milioni di messaggi solo nei blog personali)
• Spam (recensioni fasulle)
• Multilinguismo (lingue differenti dall'inglese)
Social Case History - Milano
35. • Utilizzo della Latent Dirichlet Allocation (LDA) per
determinare un mixed Graph of Terms (mGT)
– per rappresentare implicitamente il dominio in cui
si collocano le opinioni degli utenti
– per caratterizzare la polarizzazione di insiemi di
documenti etichettati
Social Case History - Milano
36. • Il documento è rappresentato come un insieme di
parole
• Necessità di sviluppare strategie per determinare le
parole caratteristiche
• Utilizzo di dataset molto grandi e incapacità di
caratterizzare semplicemente la tipologia di dominio
in cui il commento si colloca
• Un miglioramento è dato dall’utilizzo di modelli
probabilistici
Social Case History - Milano
37. Rappresentazione grafiche dei termini maggiormente
occorrenti nel testo e delle loro relazioni
• Termini
• Termini Aggregatori
• Legami proporzionali alla loro mutua occorrenza
I Mixed Graph of Terms vengono ottenuti attraverso
l’applicazione della LDA sui testi
Social Case History - Milano
39. Tokenizer Stemming XML
Module Module Builder
Training Set
(positive and negative)
Documenti
in XML format
LDA mGT XML
Builder Builder
Sentiment mGT
(positive and negative)
Social Case History - Milano
40. Tokenizer Stemming XML
Module Module Builder
Post
Documento
in XML format
Comparator Classifier
Sentiment mGT
(positive and negative)
Classificazione del
Sentiment
Social Case History - Milano
41. Dataset selezionato: Samsung Forum
n Per la sperimentazione sono stati costruiti:
• Training Set (piccolo grazie a LDA)
– 50 Commenti positivi
– 50 Commenti negativi
• Test Set
– 400 Commenti positivi
– 400 Commenti negativi
Social Case History - Milano
42. ˜ Training Set: 100 Documenti
˜ Test Set: 800 Documenti
Positive
Negative
Non Total
classificati
Positive Test set
299
96
5
400
Negative Test set
33
341
3
400
Precision Positive
0.842
Precision Negative
0.780
Social Case History - Milano
43. • Ingegnerizzazione del prototipo per sviluppare un
framework da proporre sul mercato per supportare
• Marketing
• Campagne Politiche
• Sondaggi
• Analisi di gruppi sociali
Social Case History - Milano
44. — La “Sentiment Analysis” rappresenta un settore in grande espansione sia dal
punto di vista del mercato che da quello di ricerca
— Il confronto con l’importante mole di dati strutturati e non presenti in rete
permettono di migliorare le tecniche per la Sentiment Analysis che si basano
soprattutto su NLP
— Le tendenze del futuro:
— Sviluppare sistemi che permettono un’annotazione automatica di un
documento in accordo alla sua polarità
— Localizzare gli approcci alle varie lingue
— Far diventare il web davvero semantico
— HP indica uno dei temi di ricerca del futuro il “Multimedia Sentiment
Analysis”
Social Case History - Milano