Post on 04-Jun-2018
transcript
Gastvortrag Datamining: Twitter Sentiment Analysis
Nils Haldenwang, M.Sc.
Arbeitsgruppe Medieninformatik
DatenbanksystemeSommersemester 2015
DataminingArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Datamining
Extraktion von nützlichen Informationen aus Daten
Folgen Timeline
• Microblogging (180 Zeichen)• 300 Millionen Nutzer• > 500 Millionen Nachrichten/Tag• Soziales Netzwerk
www.twitter.com
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Anatomie von Tweets
Hashtag Link
Retweet
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
SoSe 2015
= Electronic Word of Mouth
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Sentiment Analysis
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Anwendungen
Politik
Informationen
Finanzmarkt
Marktforschung Krisenerkennung
SoSe 2015
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Google IO 2013
SoSe 2015
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170623355796078486155587666611457838213801461226957789368786794601550754540
900
901,429
902,857
904,286
905,714
907,143
908,571
910
0102030405060708090100110120130140150160170
3930 610 0 0,731278 908,870415 4540 0,55278217464205 870 0 0,657143 908,953015 5075 0,61792280534802 1213 0 0,596675 909,11821 6015 0,73237550235785 1009 0 0,702973 908,847611 6794 0,82722513095780 1098 0 0,680721 908,778984 6878 0,83745281876296 1597 0 0,595338 908,118635 7893 0,96103737985575 1382 0 0,602702 906,188833 6957 0,84707171564931 1191 0 0,610911 906,348473 6122 0,74540362846574 1440 0 0,640629 906,564207 8014 0,97577012056787 1426 0 0,652746 906,569533 8213 14846 937 0 0,675947 906,697476 5783 0,70412760265141 973 0 0,681714 905,853362 6114 0,74442956296360 1306 0 0,659275 905,924861 7666 0,9333982714551 1007 0 0,637639 905,779235 5558 0,67673201023958 903 0 0,628472 903,368881 4861 0,5918665534984 1094 0 0,640013 903,829653 6078 0,74004626814538 1041 0 0,626815 902,71065 5579 0,67928893224916 1317 0 0,577411 902,982236 6233 0,7589187873
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
Zeit
Vorfreude
#Tweets
Android Studio Fehlgeschlagene Demo
Aktienkurs
3.4. Anwendungen
3.4.1 Auswertung von Ereignissen großer Technologiefirmen
Für das Anwendungsszenario dieses Abschnitts könnte man sich vorstellen, dass ein Unterneh-men daran interessiert ist, herauszufinden wie Kunden die eigene Marke, neue Produkte undAnkündigungen aufnehmen. Dies kann man natürlich permanent beobachten, indem das Un-ternehmen Tweets mit bestimmten Schlüsselworten sammelt und auswertet. Im Rahmen dieserArbeit wurde ein Spezialfall betrachtet, nämlich der, dass ein Unternehmen eine Pressekonferenzabhält, um neue Dienstleistungen und Produkte vorzustellen. Gewählt wurden die Technologiefir-men Microsoft, Google, Apple und Sony, da eine große Schnittmenge mit den technologie-affinenNutzern von Twitter und den Nutzern der Produkte dieser Firmen anzunehmen ist. Jede der fol-genden Veranstaltungen fand im Jahr 2013 statt, wobei eine recht ausführliche Berichterstattungauf vielen Kanälen erfolgte. Die Nachrichten auf Twitter wurde mit Hilfe vom Autor gewählterSchlüsselworte über die Streaming-API verfolgt und schließlich ausgewertet.
Bei der Auswertung der Stimmung kam das Verfahren zum Einsatz, das sich in den vorhe-rigen Abschnitten als das mit der besten Klassifikationsgenauigkeit herausgestellt hat: EineSupport-Vektor-Maschine mit Unigrammen, Bigrammen und Negations-Annotationen als Featu-res. Um die Veränderung der Stimmung über die Zeit zu beobachten, wurden jeweils 10 Minuten-Abschnitte der Veranstaltungen zusammengefasst und die Tweets dieses Zeitraums analysiert.Die Stimmungskurven sind jeweils auf die Anzahl der Tweets normiert, der Stimmungsscore er-gibt sich also als N(positive_tweets)�N(negative_tweets)
N(positive_tweets)+N(negative_tweets)
. Die absolute Anzahl der Tweets ist separatangegeben, allerdings war der Zugriff auf die Twitter-API ja nicht unbeschränkt, so dass sowie-so nicht alle geposteten Nachrichten verarbeitet werden konnten, sondern nur eine von Twitterbestimmte (zufällige) Stichprobe. Inwiefern die absolute Anzahl an so gesammelten Tweets aus-sagekräftig ist bleibt also unklar. Für die Auswertung der Aktienkurse wurden die Einzel-Kursedes Unternehmens im entsprechenden Zeitabschnitt ebenfalls zusammengefasst und ein Durch-schnittswert ermittelt43.
Würde man eine Software erstellen oder anbieten, die solche Auswertungsfunktionalität hat,würde man sich in einer Art explorativen Datenanalyse-Szenario befinden. Die Kurven sind zwaran sich nett anzusehen, aber der Mehrwert eines Unternehmens entsteht ja nun, wenn analy-siert wird, in welchen Zeitabschnitten sich die Stimmung besonders in eine bestimmte Rich-tung verschoben hat. Für die ausgewählten Events ist dies teilweise durchgeführt worden undim Fließtext interpretiert. Interessant ist es auch herauszufinden, welche Begriffe besonders oftin negativem oder positivem Kontext erwähnt wurden. So könnte man etwa herausfinden obbestimmte Funktionalität vorgestellter Produkte oder Produktmerkmale gut oder schlecht beipotentiellen Käufern ankommen. Hierzu wurde erneut die �2-Statistik bemüht. Jeder Tweet wirdja anhand des Klassifikators mit einem Klassenlabel versehen. Für jedes der im Tweet vorkom-menden Features, also Uni- oder Bigramme, kann dann im Nachhinein gemessen werden, wiehäufig dieses in welchem Kontext vorkam – ganz unabhängig davon, ob das Wort im eigentlichenKlassifikator positiv oder negativ vorbelegt oder überhaupt bekannt (was ja gerade bei neuenProduktnamen nicht der Fall sein kann) ist. Die vorkommenden Worte lassen sich dann nach
43Die Aktienkurs-Informationen wurden freundlicherweise von der Firma Lenz+Partner AG zur Verfügunggestellt, denen der Autor für diese Kooperation herzlich danken möchte.
207
Stimmungs-Score Neubauer, Nicolas. Semantik und Sentiment: Konzepte, Verfahren und Anwendungen von Text-Mining. Diss. 2014.
3D Stimmung
SoSe 2015
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Masterarbeit Florian Dölker
Superbowl 2015
SoSe 2015
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Superbowl 2015
SoSe 2015
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Touchdown!
Twitter Sentiment Analysis als Klassifikationsproblem
Arbeitsgruppe Medieninformatik
SoSe 2015
Klassifikation Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
KlassifikationEinordnung von Objekten in gegebene
Klassen anhand der Objekteigenschaften.
NegativePositive
Classifier
Dynamische Sprache
“I think I can agree to that my lady. This adolescent surely is a casanova! Hilarious!”
TwitterArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
=
KlassifikationArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
KlassifikationsverfahrenHändisch erstelle Classifier
z.B. nachschlagen von Begriffen in einem Sentiment-Lexikon, Erstellung einer Menge von Regeln
Machine Learning Lernen ein Modell zur Klassifikation aus gegebenenDaten
SoSe 2015
Klassifikation Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Supervised LearningLerne aus Trainingsdaten mit bekannten Kategorien
Positive
Negative
Machine Learning
Algorithmus
Classifier
Trainingsdaten
KlassifikationArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Lerndaten
Standardverfahren: Händisch erstellte Labels
Idee: Emoticons als Noisy Labels
“Schönes Wetter heute! :-)”
“Hausaufgaben machen. :-(”
Text zu Vektor
Arbeitsgruppe Medieninformatik
Text zu VektorArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Bag-of-Words"Hello World!"
Hello0 1
Worldn 1
1 tomorrow0
n - 1…
yolo0
Dimension n: Größe des Wortschatzes
SoSe 2015
Preprocessing
loveloooveloooooove
looveloove
lol laughing out loud
wasamhave been
bebebe
Text zu VektorArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Lemmatization
Spelling Correction
Acronym Expansion
Stop Word Removalthis is hot stuff
hot stuff
Negation Annotationthis is not cool
this is not !cool
Ziel: Informationsgehalt erhöhen und Dimension reduzieren
SoSe 2015
N-Gram Features “What did the fox say?"
what did
did the
the fox
fox say
Text zu VektorArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
n=1:whatdidthefoxsay
n=2: n=3:what did the
did the fox
the fox say
Vorteil:Erfasst
Struktur
Nachteil:Erhöht
Dimension6 Mio. 35 Mio. 80 Mio.
SoSe 2015
Handcrafted Features
number of upper case letters0 81 number of exclamation marks1
Dimension: Anzahl Features
n…42 text length
Text zu VektorArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
SoSe 2015
Word EmbeddingsDimension: 50-200, reelle Zahlen
man
womanwm = woman - man
kingwm
king + wm =
queenking - man + woman =
Text zu VektorArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
[1] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013. [2] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean. Distributed Representations of Words and Phrases and their Compositionality. In Proceedings of NIPS, 2013. [3] Tomas Mikolov, Wen-tau Yih, and Geoffrey Zweig. Linguistic Regularities in Continuous Space Word Representations. In Proceedings of NAACL HLT, 2013. [4] https://code.google.com/p/word2vec/
queen
Machine Learning Algorithmen
Arbeitsgruppe Medieninformatik
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Naive Bayes Classifier
p(C|F1, . . . , Fn) =1
Zp(C)
nY
i=1
p(Fi|C)
p(C|F1, . . . , Fn) =1
Zp(C)
nY
i=1
p(Fi|C)
Klasse Features
Annahme: Die Features sind unabhängig voneinander und normalverteilt
Konstanten
probabilistic classifier
SoSe 2015
p(Fi
|C) =f
ic
fitotal
Maximum-Likelihood-Estimation:
Vorkommen in C
Vorkommengesamt
Naive Bayes Classifier
classify(f1, . . . , fn
) = argmax
c
nY
i=1
✓f
ic
fitotal
◆fi
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
SoSe 2015
Naive Bayes Classifier
“Das Leben ist schön!”
p’(positiv | das, leben, ist, schön) =
p’(negativ | das, leben, ist, schön) = 0.5 * 0.24 * 0.5 * 0.05 = 0.003
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
0.5 * 0.76 * 0.5 * 0.95 = 0.1805
SoSe 2015
Support Vector Machinesnon-probabilistic binary linear classifier
H1 H2
H3Trenne
Klassen durch Hyperebene
Klassifikation unbekannten Datums: Seite
der Ebene
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
SoSe 2015
Zum weiterlesen
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
2. Teil bietet Übersicht über Twitter Sentiment Analysis,erhältlich in der Bibliothek
als PDF
SoSe 2015
Demo
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Naive Bayes Classifier1-Gram (UniGram) Features
kein Preprocessingca. 12 Millionen Trainingstweets
Reliable Twitter SentimentAnalysis
Arbeitsgruppe Medieninformatik
Projektgruppe DataminingReliable TSA Arbeitsgruppe
Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Ereigniserkennung
iPhone 6
AspektextraktionStimmungs-analyse
Display Akku
iPhone 6
Display
iPhone 6
AkkuDarstellung im Web
SoSe 2015
Mehr als nur positive/negative
Reliable TSAArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
John Doe @whoami, June 30You know when you been waiting for someone to say something to you , and you got all the shit you gonna say to them prepared. Lol
Jane Doe @soundso, June 30I made $58.08 this week by taking 11 surveys! They only took 15 mins each :) Look here http://t.co/ejNRrtsQ
uncertain
spam
SoSe 2015
Der Public Twitter Stream
Reliable TSAArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Num
ber o
f Tw
eets
0
1.500
3.000
4.500
6.000
Label
positive negative uncertain spam
1.422
5.138
1.620
1.176
13%17%
55%
15%
Reliable TSA Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Lösungsansatz 1
DistinctPolarityDetector
No Spam
SpamFilter Spam
positivenegative
uncertain
SentimentDetector
positive
negative
Reliable TSA Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Lösungsansatz II
SpamFilter
SentimentDetector
No Spam
Spam
positive negative uncertain
Erlauben:”Ich weiß es nicht!"
SoSe 2015
NBC: "Ich weiß nicht!”
ML AlgorithmenArbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
3.3. Analyse verschiedener Techniken zur Sentiment-Klassifikation
Wahrscheinlichkeitswert. Normalerweise würde dann ja einfach die Klasse verwendet, die diegrößere Wahrscheinlichkeit erzeugt hat, gewählt werden. Als Konfidenz-Maß wird nun einfach
confidence(Ppos
, Pneg
) =
����P
pos
� Pneg
Ppos
+ Pneg
����
gewählt. Je nach Problem und Klassifikationsalgorithmus ist nun zunächst gar nicht klar, obdie ermittelten Konfidenz-Werte überhaupt irgendeine Korrelation mit der tatsächlichen Wahr-scheinlichkeit eines korrekten Klassifikationsergebnisses haben. Aus diesem Grund ermittelt mannun eine so genannte Accuracy-Rejection Curve (vgl. etwa (Nadeem et al., 2010)), also einenPlot von erreichter Genauigkeit gegen prozentual von der Klassifikation zurückgewiesene (re-jected) Testfälle. Besteht ein Zusammenhang zwischen Konfidenz-Wert und Wahrscheinlichkeitkorrekter Klassifikation erreicht man eine steigende Genauigkeit bei steigender Anzahl zurück-gewiesener Testfälle.
Reject Accuracy0 0,8007149240,063449508 0,8196564890,116175156 0,8372093020,163985702 0,8492784610,221626452 0,8599311140,272117962 0,8692449360,324396783 0,8842592590,372207328 0,8975088970,415549598 0,9051987770,462466488 0,9110556940,504468275 0,9188458070,546470063 0,9231527090,589365505 0,9303590860,634941912 0,940024480,67336908 0,9466484270,702859696 0,9458646620,737712243 0,9574105620,764968722 0,9562737640,785522788 0,9520833330,805630027 0,9494252870,822609473 0,9471032750,838248436 0,9530386740,858355675 0,946372240,873547811 0,9469964660,886505809 0,9488188980,895889187 0,9484978540,910187668 0,9552238810,920464701 0,955056180,927613941 0,9567901230,935656836 0,9513888890,941465594 0,9465648850,948168007 0,9396551720,955317248 0,940,957104558 0,93750,962913315 0,9277108430,966487936 0,920,971849866 0,9206349210,974084004 0,9137931030,977211796 0,9215686270,979445934 0,9130434780,981680071 0,9024390240,983914209 0,8888888890,985701519 0,8750,988829312 0,880,990169794 0,9090909090,99285076 0,8750,993744415 0,9285714290,994191242 10,994191242 10,994191242 0,9230769230,99463807 10,99463807 0,9166666670,995084897 0,9090909090,995531725 10,995531725 0,90,995978552 0,8888888890,996872207 0,8571428570,997319035 10,997319035 10,997319035 10,997319035 0,8333333330,997765862 10,997765862 0,80,99821269 10,99821269 10,99821269 10,99821269 10,99821269 10,99821269 10,99821269 0,750,998659517 10,998659517 0,6666666670,999106345 10,999106345 10,999106345 10,999106345 0,50,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 10,999553172 0
0,75
0,8
0,85
0,9
0,95
1
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
0
0,25
0,5
0,75
1
Ohne Titel 1 Ohne Titel 28 Ohne Titel 55 Ohne Titel 82
Diagramm 3
Reject Accuracy
Abbildung 3.13: Accuracy-Rejection-Kurve bei den Unigrammen mit Naive-Bayes-Klassifikation. Aufder x-Achse ist der Anteil der Tweets des Testsets dargestellt, die wegen zu niedriger Konfidenz zurück-gewiesen werden, auf der y-Achse, die erreichte Klassifikationsgenauigkeit auf den übrigen Tweets.
In Abbildung 3.13 ist diese Kurve für die Nutzung von Unigrammen als Feature-Extraktions-Strategie aufgetragen. Offenbar besteht hier tatsächlich ein Zusammenhang. Die Klassifikations-genauigkeit steigt fast linear von der Baseline von etwa 80% bis zum Maximum bei etwa 95,6%,ein extrem guter Wert, der jedoch nur zum Preis einer Ablehnungsrate von etwa 75% der Tweetserreicht wird. Das klingt zwar enorm viel und gerade wenn man wieder die Analogie zur me-dizinischen Klassifikation anführt, bringt es sicherlich wenig, wenn man bei Dreiviertel seiner
201
Betrachte Unterschied der Wahrscheinlichkeitenfür die beiden Klassen
Reliable TSA Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
SVM: "Ich weiß es nicht!"
Reliable TSA Arbeitsgruppe Medieninformatik
Nils Haldenwang, M.Sc., Prof. Dr. Oliver Vornberger
Güte von Lösungen messen
müssen händisch erstellt werden
Notwendig: Valide Testdaten