Social Media 2011
3 oktober 2011
Mededelingen
Social Media 2011
Schrijf je in voor het tentamen Social Media van 31 oktober! De begeleide computerpractica zijn vervallen: er is geen belangstelling meer voor
Erik Tjong Kim Sang 3 oktober 2011
Vragen kan je altijd nog stellen via e-mail (
[email protected]), telefonisch (050 363 5882) of op facebook.com/so11rug
1
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Deze week
Vorige week
Thema: meningen op social media
• blogs
• internetforums
• spreken met (jouw doelgroep op) social media
• zoeken naar trends • automatische bepaling van sentiment
2
3
Social Media 2011
3 oktober 2011
Wat zijn forums? Internetforums zijn websites die de mogelijkheid aanbieden om te ¨ discussieren over een bepaald onderwerp via tekstberichten
INTERNETFORUMS
Deelnemers starten een topic waarop anderen kunnen reageren Tussen het schrijven van een bericht en het lezen kan een behoorlijke tijd zitten (anders dan bij chatrooms) Computerforums bestaan sinds 1973 (bulletin boards); de bekende voorloper Usenet ontstond in 1980
Safko, blz. 120
Social Media 2011
3 oktober 2011
5
Social Media 2011
3 oktober 2011
Typen gebruikers op forums
Structuur van een forum De structuur van een internetforum is niet gebaseerd op de deelnemers, zoals bij sociale netwerken, maar op de onderwerpen
• geregistreerde gebruiker: mag lezen en schrijven op het forum
Een eenvoudig forum bestaat uit een lijst van onderwerpen met onder elk onderwerp een lijst of boom van posts (berichten)
• gast (niet geregistreerd): mag alleen lezen (lurken)
Een bericht met de bijbehorende reacties wordt thread genoemd
• moderator: mag onderwerpen samenvoegen en verwijderen, mag berichten verwijderen en gebruikers verwijderen
Reacties kunnen chronologisch zijn gesorteerd of relatie tot andere reacties (threaded)
• admin: verzorgt de technische kant van het forum
6
Safko, blz. 120-124,127
7
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Voorbeelden van internetforums
Communicatietechnieken op forums
Usenet is een wereldwijd gedistribueerd internetforum, gestart in 1980
• smileys: gebruikt voor het opvangen van het gebrek aan lichaamstaal in de communicatie
¨ Het bevat duizenden nieuwsgroepen verdeeld over negen categorieen: alt, comp, humanities, misc, news, rec, sci, soc en talk
• spammen: verspreiden van ongewenste reclame
Usenetberichten zijn vergelijkbaar met e-mail, alleen zijn ze voor iedereen leesbaar
• trollen: plaatsen van berichten met impopulaire standpunten om discussie uit te lokken
Gaia Online is een internetforum met 25 miljoen gebruikers
• flamen: geven van boze reacties (kan leiden tot flame war)
Deze hebben al bijna 2 miljard berichten gepost
• netiquette: gedragscode voor deelname aan forumdiscussies
Gaia Online gebruikt de gratis forumsoftware phpBB
Safko, blz. 125-127
8
Wikipedia(en)
9
Social Media 2011
3 oktober 2011
Wat zijn trends op social media? Een trend is een gespreksonderwerp dat populairder is dan op basis van de geschiedenis kon worden verwacht
ZOEKEN NAAR TRENDS
Zo’n trend bestaat uit 1 woord of een reeks opeenvolgende woorden Onderwerpen die aanleiding geven voor trends zijn nieuws, populaire evenementen, tv-programma’s, films, retweets, ... Voorbeelden van recente trends (Twitter, september 2011): GTST, Ajax, Pechtold, HNTM, TVOH, Damschreeuwer, Troonrede, Tyton, aardbeving
11
Social Media 2011
3 oktober 2011
Hoe herkent een computer automatisch een trend?
Social Media 2011
3 oktober 2011
Plan voor het automatisch herkennen van trends
1. kijk naar de meest-frequente woorden (of Twitterhashtags)
1. kies een tijdsperiode
maar je moet dan wel de stopwoorden verwijderen
2. bepaal de hoogste en de laagste frequentie (percentage) van een woord gedurende deze tijdsperiode
2. zoek naar de sterkste stijgers per tijdseenheid
maar welke frequentiestijging is dan het belangrijkst: van 1 naar 5, van 100 naar 104, van 100 naar 500 of van 1000 naar 1400?
3. bereken trendscore = maximum gedeeld door minimum 4. bewaar trendscore indien het maximum hoog genoeg is
3. kies van de frequente woorden de sterkste stijgers
5. herhaal stappen 1-4 voor alle woorden
deze combinatie werkt vaak het beste
6. sorteer woorden aflopend op trendscore
Opmerking: we houden het eenvoudig en kijken alleen naar losse woorden. Dus ”Den Haag” herkennen we als twee aparte woorden
Probleem: hoe ga je om met minimum = 0? 12
Social Media 2011
3 oktober 2011
13
Social Media 2011
3 oktober 2011
Resultaat van de trendanalyse voor 28-09-2011
Smoothing
score 144 143 120 55 54 52 47 43 41 39
Rekenmodellen die gebruik maken van deling of vermenigvuldiging hebben een probleem met meetwaarde nul: • een getal gedeeld door nul is ongedefinieerd
• een getal vermenigvuldigd met nul is altijd nul ongeacht de waarde van het getal (informatieverlies) Oplossing: we vervangen alle nulfrequenties door 0.10 Dit is de meest eenvoudige variant van de techniek ”smoothing” 14
min 0.18% 0.10% 0.14% 0.10% 0.10% 0.10% 0.14% 0.10% 0.10% 0.26%
max 26.0% 14.3% 16.7% 5.4% 5.3% 5.2% 6.6% 4.3% 4.0% 10.2%
woord wakker gtst slapen zoon trouwt kalou vroeg bed ): eten
min en max zijn percentages tweets met het bewuste woord
15
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Analyse van het probleem
Case-study: herkennen van burgernieuws op Twitter Anno 2011 kan iedereen via mobiel internet rapporteren wat er in zijn of haar omgeving gebeurt
De grote piek in de grafiek rechtsonder geeft aan wanneer de media berichtten over de aanslag (na 8:00 uur)
Op deze manier komt nieuws de wereld in voordat de traditionele radio/tv/krant dit oppikken
Vanaf dat moment werd het nieuws van de aanslag algemeen bekend
Voorbeeld: de mortieraanval op de rechtbank in Amsterdam werd vier uur voor de media al gemeld op Twitter Kunnen we zulke meldingen automatisch herkennen?
We willen zo’n nieuwsfeit nog voor dat moment ontdekken We willen dus de kleine piek tussen 02:30 en 04:00 herkennen
17
16
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Plan van aanpak
Moeilijkheid van dit probleem Alle woordfrequenties zijn op Twitter continu aan het schommelen
1. verzamel interessante tweets van burgerjournalisten (handmatig)
Grote schommelingen zijn redelijk gemakkelijk te detecteren (trends)
2. leid daaruit een lijst met interessante woorden om te volgen
Kleine schommelingen kan je ook herkennen maar er zijn er wel ontzettend veel van (Wet van Zipf)
3. verzamel andere tweets met deze woorden
De beste manier om nieuwswaardige tweets op te pikken is door nieuwswaardige woorden te gaan volgen
4. laat een computerprogramma het verschil leren tussen de twee dataverzamelingen
Bijvoorbeeld: ongeluk, brand, politie, ziekenauto, brandweer, ontploffing, aanslag, aanrijding, ...
Geschikte lerende software: TiMBL, Weka en SVMLight 18
19
Social Media 2011
3 oktober 2011
Wat is sentiment op social media? Sentiment is een positieve of negatieve mening over een bepaald onderwerp of een bepaalde gebeurtenis:
BEPALEN VAN SENTIMENT
Deze avond en nacht ben ik van plan weer eens goed te feesten :D Los gaan met @Artento Divini in de Escape Studio in Amsterdam. Woeij! ⇒ + Flink hoor #Heineken, net zolang concurrentje #Olm pesten tot aan het faillissement... Steek je tijd en geld eens in ECHT lekker 0% bier! ⇒ –
We willen sentiment in tweets automatisch herkennen (en eigenlijk ook de bijbehorende onderwerpen) 21
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Leren van voorbeelden
Hoe herken je sentiment in tweets?
Hier is een alternatieve aanpak voor het automatisch herkennen van tweetsentiment:
Sentiment in tweets herken je aan de gebruikte: • smileys: :) (positief); :( (negatief)
1. verzamel tweets
• hashtags: #zinin (positief); #fail (negatief)
2. label ze als positief of negatief (of neutraal)
• woorden: geweldig (positief); haat (negatief)
3. gebruik de voorbeelden om een computerprogramma te trainen om de verschillen te herkennen
Maar een woordenlijst voor deze taak krijgen we nooit compleet. Daarnaast hebben sommige woorden een sterker sentiment dan andere
Geschikte lerende programma’s zijn weer: TiMBL, Weka en SVMLight 22
23
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Voorbeeld
Hoe werkt dit in de praktijk?
We zien een nieuwe tweet: ”We hebben weer gewonnen!” Is deze tweet positief, negatief of neutraal?
We markeren tweets als positief, negatief of neutraal (klassen) en delen ze op in woorden en leestekens Het leerprogramma kijkt vervolgens voor alle tweetwoorden (de features) of ze vaker voorkomen bij de klasse positief, negatief of neutraal
we hebben weer gewonnen ! totaal
Op basis hiervan bouwt het programma dat aan elke combinatie van klasse en feature een kans toekent
+ 20% 1% 38% 0% 44% 103
= 60% 98% 12% 0% 24% 194
– 20% 1% 50% 0% 32% 103
onbekend woord: negeer som van alle percentages
Volgens de som van de percentages in het model is dit een neutrale tweet (vaak worden percentages vermenigvuldigd)
Met dit model bepaalt het de kans dat een onbekende tweet hoort bij een van de drie klassen 24
Social Media 2011
3 oktober 2011
25
Social Media 2011
3 oktober 2011
Voorbeeld
Evaluatie van de resultaten Lerende programma’s maken twee typen fouten: foutpositieven (herkende klassen die dat niet zijn) en foutnegatieven (nietherkende klassen die dat wel zijn). Evaluatiescores worden als volgt berekend:
Een dataverzameling bevat drie tweets, een positieve, een negatieve en een neutrale. Maar volgens het lerend programma zijn ze allemaal positief
• Precisie: aantal correct voorspelde van een klasse gedeeld door het aantal voorspelde van deze klasse • Recall: aantal correct voorspelde van een klasse gedeeld door het daadwerkelijke aantal van deze klasse in de data
Voor de klasse positief geldt dan: • Precisie = correct / totaal gevonden = 1/3 = 33% • Recall = correct / totaal aanwezig = 1/1 = 100%
• F-score: het harmonisch gemiddelde van deze twee getallen: F-score = 2*Precisie*Recall/(Precisie+Recall)
• F-score = 2*P*R/(P+R) = 2*(1/3)*1/((1/3)+1) = 2/4 = 1/2 26
Social Media 2011
3 oktober 2011
27
Social Media 2011
3 oktober 2011
Percentages tweets per politieke partij
Casestudy: voorspellen verkiezingen Eerste Kamer
Partij VVD PvdA CDA PVV SP D66 GL CU PvdD SGP 50+
Op woensdag 2 maart 2011 waren de verkiezingen voor de Provinciale Staten, en indirect de Eerste Kamer Kunnen we de uitslag van deze verkiezingen voorspellen door een analyse van Nederlandstalige Twitterberichten? Tumasjan et al. (2010): de volumes Duitse tweets per partij waren vergelijkbaar met de stemaantallen bij de Duitse verkiezingen Zou dit ook werken met Nederlandse Twitterdata?
Zetels Eerste Kamer 16 22% 14 19% 11 15% 10 13% 8 11% 5 7% 5 7% 2 3% 1 1% 1 1% 1 1%
% tweets 20110301 4103 16% 2687 10% 3624 14% 7171 28% 1834 7% 2473 10% 2522 10% 367 1% 325 1% 611 2% 325 1%
groen: correct voorspeld; rood: afwijking van 2 of meer 28
Social Media 2011
3 oktober 2011
29
Social Media 2011
3 oktober 2011
Plan van aanpak
Een verklaring voor de afwijkingen
Twee personen hebben elk meer dan 2000 politieke tweets geannoteerd op sentiment: negatief vs positief/neutraal
Niet elke vermelding voor een partij is positief: @czwanenburg dankje daarom stem ik ook pvv ⇒ +
Vervolgens hebben we aangenomen dat de geobserveerde percentages negatieve tweets per partij in de toekomst niet zouden veranderen
PVV heeft gewoon geen programma voor FRL! En de lijsttrekker heeft een strafblad! Nou lekker is dat! ⇒ –
Zo konden de aantallen toekomstige tweets corrigeren voor negatieve sentimenten
We hebben dus een betrouwbaar sentimentanalyseprogramma nodig Maar in de beschikbare 2 weken konden we dit niet ontwikkelen
30
31
Social Media 2011
3 oktober 2011
Social Media 2011
3 oktober 2011
Methode
Percentages niet-negatieve tweets per partij Percentage 95% 88% 82% 80% 80% 78% 69% 68% 67% 64% 47%
Partij 50+ D66 SP PvdD SGP GL PvdA CU VVD CDA PVV
Voor de voorspelling zijn alle beschikbare Nederlandstalige tweets van woensdag 23 februari 2011 tot en met dinsdag 1 maart gebruikt Per computer (ip-adres) is maximaal 1 tweet per partij per dag gebruikt De percentages tweets per partij over de periode zijn gecorrigeerd met behulp van de sentimenttabel op de vorige slide De aantallen zijn daarna omgerekend naar EersteKamerzetels
33
32
Social Media 2011
3 oktober 2011
Social Media 2011
Resultaat Partij VVD PvdA CDA PVV SP D66 GL CU SGP PvdD 50Plus overige afwijking
Uitslag 16 14 11 10 8 5 5 2 1 1 1 1 -
Pol.Bar 14 12 9 11 9 7 4 3 2 1 2 1 14
De Hond 16 11 9 12 9 5 4 3 2 2 2 0 14
3 oktober 2011
Conclusie van deze casestudy Twitter 14 10 10 14 7 8 6 2 1 2 0 1 18
De Twittervoorspelling had het zetelaantal van drie partijen precies goed; de andere voorspellers hadden maar twee partijen exact goed De voorspellingen Politieke Barometer en Maurice de Hond hadden wel een kleiner zetelaantal afwijking dan Twitter: 14 – 18 De Twittervoorspelling kan worden verbeterd met demografische informatie over de Twittergebruikers maar die is (nog) niet beschikbaar Bij de volgende verkiezing kan de verzamelde data van 2011 worden gebruikt om de nieuwe Twittervoorspelling beter te maken
34
35
Social Media 2011
3 oktober 2011
Weekopdracht
WEEKOPDRACHT
Maak een dataverzameling met positieve, negatieve en neutrale tweets (minstens 10 van elk) en gebruik deze als trainingsmateriaal voor een systeem voor automatische sentimentanalyse Schrijf over dit experiment een blogpost van minstens 400 woorden Zie: http://www.let.rug.nl/erikt/so11rug/sentiment.html Opmerking: Een tweet kan worden geannoteerd als positief als de tweet in zijn geheel positief is of als de tweets iets positiefs zegt over een bepaald onderwerp (idem voor negatief)
http://ifarm.nl/so11rug/ex05.html
37
Social Media 2011
3 oktober 2011
Vragen bij dit hoorcollege
TEN SLOTTE
• Wat zijn internetforums? • Wat is het belangrijkste verschil tussen een forum en een sociaal netwerk? • Noem drie typen gebruiker van een internetforum • Noem drie communicatietechnieken gebruikt op internetforums • Wat wordt bedoeld met een trend op social media? • Leg uit hoe automatisch een trend kan worden herkend • Wat wordt bedoeld met een sentiment op social media? • Wat is het verschil tussen precisie en recall? 39
Social Media 2011
3 oktober 2011
Literatuur
3 oktober 2011
Websitevoorbeelden http://forum.fok.nl/topic/1715064 http://science.slashdot.org/story/11/09/27/2215208/
• Lon Safko, The Social Media Bible. John Wiley & Sons, Inc., 2010. In het bijzonder hoofdstuk 6.
http://groups.google.com/group/soc.culture.netherlands/topics
• Andranik Tumasjan, Timm O. Sprenger, Philipp G. Sandner, Isabell M. Welpe, Predicting Elections with Twitter: What 140 Characters Reveal about Political Sentiment. In Proceedings of the Fourth International AAAI Conference on Weblogs and Social Media, Washington DC, 2010.
40
EINDE
Social Media 2011
http://www.gaiaonline.com/forum/ http://urd.let.rug.nl/erikt/bin/twitter?SEARCH= rechtbank&DAY=20110921 http://www.analyzewords.com/ http://ifarm.nl/twitter/ps2011uitleg.html
41