Sentiment Analysis: dietro al web c’è un cuore?

2,097 views

Published on

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

Published in: Business

Sentiment Analysis: dietro al web c’è un cuore?

  1. 1. — –Dr. Francesco Colace, Ph.D. – Prof. Massimo De Santo, Ph.D fcolace@unisa.it – desanto@unisa.it Osservatorio SNIF
  2. 2. ˜ E dunque, Snif …˜  http://www.centroict.unisa.it/snif/index Social Case History - Milano
  3. 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. 4. Sempre maggiore diffusione dei social network:•  Generalisti •  Twitter •  Facebook •  Google+•  Specializzati •  Linkedin •  Viadeo Social Case History - Milano
  5. 5. Effetto: massiccia e inedita quantità di dati sulle preferenze esulle 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. 6. -  Soggettività, cioè, l’espressione da parte di qualcuno, attraverso il linguaggio, di: -  opinioni -  sentimenti -  emozioni -  convinzioni -  valutazioni -  speculazioni Social Case History - Milano
  7. 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. 8. Sentiment •  Pensiero, punto di vista o atteggiamento basato principalmente sulle emozioni invece che sulla ragioneSentiment 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. 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. 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
  11. 11. Twitter Political Indexhttps://election.twitter.com/http://www.usatoday.com/news/politics/twitter-election-meter Social Case History - Milano
  12. 12. Twitter Political Indexhttps://election.twitter.com/http://www.usatoday.com/news/politics/twitter-election-meter Social Case History - Milano
  13. 13. Social Case History - Milano
  14. 14. Social Case History - Milano
  15. 15. Social Case History - Milano
  16. 16. •  Colui che genera il sentimento•  L’oggetto (o parte di esso) sul quale l’opinione è espressa•  L’opinione Social Case History - Milano
  17. 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. 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. 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. 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. 21. Descrivendo il “generatore” di opinione:- Task_1: caratterizzare (se possibile) colui che hagenerato l’opinione attraverso le sue principalicaratteristiche- Task_2: tracciandone il comportamento Social Case History - Milano
  22. 22. Attori del mercato: NM Incite (nmincite.com)CaratteristicheTipologia: blog reportingNielsen and McKinsey & Company Social Case History - Milano
  23. 23. Attori del mercato: Radian6 (http://www.radian6.com/)CaratteristicheTipologia: Reputation monitoring Social Case History - Milano
  24. 24. Attori del mercato: Alterian (http://www.alterian.com/)CaratteristicheTipologia: reputation monitoring Social Case History - Milano
  25. 25. Attori del mercato: Social Mention (http://www.socialmention.com/)CaratteristicheTipologia: Search and Analysis Social Case History - Milano
  26. 26. Attori del mercato: Lithium (http://www.lithium.com/)CaratteristicheTipologia: search-specific mentions and sentiment in social media Social Case History - Milano
  27. 27. Attori del mercato: SentiMetrix (http://www.sentimetrix.com/)CaratteristicheTipologia: Sentiment Analysis Tool Social Case History - Milano
  28. 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. 29. Attori del mercato: ViralHeat (https://viralheat.com/)CaratteristicheTipologia: Sentiment Analysis Tool Social Case History - Milano
  30. 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
  31. 31. Post 1   Post 2   Post 3   Post 4   Post 5   Post 6   Post 7   Post 8   Post 9   Post 10     #Pos : 4 #Pos : 3 #Pos : 7 #Pos : 8 #Pos : 8 #Pos : 6 #Pos : 6 #Pos : 9 #Pos : 7 #Pos : 4 #Neg: 6 #Neg: 4 #Neg: 1 #Neg: 2 #Neg: 2 #Neg: 3 #Neg: 4 #Neg: 0 #Neg: 3 #Neg: 5 Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: 71,43% 58,30% 62,90% 71,46% 76,61% 70,76% 68,28% 73,73% 66,80% 80,87% Session 10   Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: 70,43% 65,97% 82,89% 60,00% 69,87% 84,19% 56,49% 0% 71,93% 69,77% Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: 19,32% 20,27% 68,31% 65,30% 62,86% 25,40% 28,90% 100% 36,84% 3,77% #Pos : 29 #Pos : 32 #Pos : 31 #Pos : 34 #Pos : 37 #Pos : 26 #Pos : 29 #Pos : 46 #Pos : 36 #Pos : 29 #Neg: 18 #Neg: 9 #Neg: 15 #Neg: 16 #Neg: 12 #Neg: 21 #Neg: 18 #Neg: 3 #Neg: 11 #Neg: 15 Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: 70,54% 73,59% 71,50% 71,34% 74,89% 78,40% 69,22% 76,97% 71,01% 73,17% Session 50   Avg Prob Neg: Avg ProbNeg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: 71,63% 68,31% 63,99% 69,34% 73,79% 73,69% 63,13% 57,22% 72,42% 71,01% Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: 22,67% 58,59% 39,55% 37,23% 51,56% 13,69% 27,70% 90,75% 52,48% 33,15% #Pos : 62 #Pos : 68 #Pos : 64 #Pos : 47 #Pos : 59 #Pos : 61 #Pos : 61 #Pos : 86 #Pos : 48 #Pos : 58 #Neg: 31 #Neg: 21 #Neg: 31 #Neg: 25 #Neg: 25 #Neg: 35 #Neg: 35 #Neg: 9 #Neg: 17 #Neg: 35 Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: Avg Prob Pos: 73,87% 75,42% 71,72% 70,79% 75,15% 75,45% 68,44% 76,08% 73,22% 74,42%Session 100  Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: Avg Prob Neg: 71,79% 69,20% 68,25% 67,16% 73,80% 73,90% 68,75% 59,55% 74,55% 70,55% Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: Spread: 34,59% 55,84% 36,89% 32,91% 41,23% 28,03% 26,87% 84,85% 46,99% 27,21% Positive dominant Negative dominant mood mood Social Case History - Milano
  32. 32. Post 1 – Session 10:•  #Pos = 4•  #Neg = 6•  AvgProbPos = 0,7143•  AvgProbNeg = 0,7043Steps: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,40334.  Negativity à secondArg : x = weighted sum : 1 àx = secondArg/weighted sum = 0,59665.  Spread = Positivity – Negativity = -0,1933 à Negativity wins! à absolute spread: 19,33% Social Case History - Milano
  33. 33. •  [post: 3/12, comment: 58/100] fromid = 100001585959213; likes = 1; text = Samsung phones are the bestphones Comments mood: positive, Probability: 0.60161744842501•  [post: 4/12, comment: 90/100] fromid = 1740090348; likes = 0; text = My galaxy S2 just died. Samsuck Comments mood: negative, Probability: 0.813345405617903•  [post: 4/12, commento: 83/100] fromid = 100002554492722; likes = 0; text = I luuuuuv samsung Galaxyyyyyyyyy Comments mood: negative, Probability: 0.754766406365881•  [post: 3/12, commento: 55/100] fromid = 100002916285610; likes = 1; text = i Love my GALAXY S2 ! IPHONESUCKS Comments mood: negative, Probability: 0.856065195331185 Social Case History - Milano
  34. 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 dallinglese) Social Case History - Milano
  35. 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. 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. 37. Rappresentazione grafiche dei termini maggiormenteoccorrenti nel testo e delle loro relazioni•  Termini•  Termini Aggregatori•  Legami proporzionali alla loro mutua occorrenzaI Mixed Graph of Terms vengono ottenuti attraversol’applicazione della LDA sui testi Social Case History - Milano
  38. 38. Social Case History - Milano
  39. 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. 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. 41. Dataset selezionato: Samsung Forumn  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. 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. 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. 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

×