De nauwkeurigheid en toekomst van sentimentanalyse

7 juni 2012, 06:00

We kennen het allemaal. Je stuurt iemand een tekstberichtje – een sms, tweet of mailtje – en degene aan wie je het stuurde, begrijpt het verkeerd. Denkt dat je boos bent of dat je op heel iets anders uit bent dan daadwerkelijk het geval is. Het probleem: een verkeerde interpretatie. Dan hebben we het over de menselijke analyse van tekst. Hoe dicht zou automatische sentimentanalyse daarbij in de buurt komen? Kan een computer op basis van patronen en woorden een stukje tekst interpreteren? Hoe verhoudt de nauwkeurigheid zich ten opzichte van interpretatie door een mens? Het zijn intrigerende vragen. Zeker in de context van social media. Op dat vlak heeft zulke sentimentanalyse namelijk de toekomst. Kijk je naar tweets? Dan is een accuraatheid van bijna 70% mogelijk. Hier volgen het waarom en het hoe.

Het waarom

Waarom zou je als organisatie inzetten op sentimentanalyse? Als je het mij vraagt, omdat het een waardevol strategisch instrument gaat worden. Waar veel bedrijven sentimentanalyse nu nog inzetten als een vorm van ‘damage control’ (negatief sentiment signaleren en in de kiem proberen te smoren via webcare) heeft het alle mogelijkheden om ook proactief ingezet te worden. Sentimentanalyse gaat de basis vormen voor interactie in plaats van reactie. Want als je je als bedrijf onderdeel maakt van de emotie (en je soms ook kwetsbaar durft op te stellen) kun je je merkpositie kracht bijzetten en blijven versterken. Maar hoe gaat dat in zijn werk?

Meertalig en generiek

Om het sentiment binnen social media automatisch te analyseren, moet je een nauwkeurige analyse van menselijk taalgebruik kunnen maken. Dat gaat verder dan een bericht naast een woordenlijstje leggen. Je beperkt je dan namelijk al snel tot simpele zinsconstructies en vaak ook tot slechts één taal. We zien dan ook dat het overgrote deel van de methodes voor sentimentanalyse zich toespitst op het Engels. Een generieke methode die taalgrenzen overschrijdt, biedt veel meer perspectief. In mijn master’s thesis Multilingual Sentiment Analysis on Social Media ga ik juist hiernaar op zoek. Ik wilde een methode ontwikkelen die geen voorwaarden stelde of aannames deed. Een methode voor sentimentanalyse in de breedste zin van het woord.

Noot van de redactie:

Met bovengenoemde scriptie won Erik vorig jaar zowel de M&I/partners Informatie Scriptieprijs voor Informatica en Informatiekunde als Berenschots Scriptieprijs 2011.

Vier stappen

Mijn methode onderscheidt vier stappen. De eerste is het herkennen van de taal. Als die vast staat, volgt de zinsontleding. Daarna bepalen we de subjectiviteit en vervolgens de polariteit. Uiteraard maak ik in deze methode ook gebruik van woordenlijsten, maar nog belangrijker zijn patronen. Door zaken als ontkenningen en zinsbouw te herkennen en te analyseren als aanvulling op de lading van een woord, krijg je een veel generiekere en daardoor nauwkeurigere analyse.

Menselijke sentimentanalyse

Hoe verhoudt de nauwkeurigheid van deze methode van automatische sentimentanalyse zich tot die van menselijke sentimentanalyse? In hun paper Recognizing Contextual Polarity in Phrase-Level Sentiment Analysis voeren onderzoekers Wilson, Wiebe & Hoffman een sentimentanalyse uit door meerdere mensen dezelfde grote verzameling van nieuwsartikelen (doorgaans beter opgezet en geargumenteerd dan tweets) te laten lezen en interpreteren. De onderzoekers hebben niet alleen oog voor de juiste interpretatie, maar ook voor menselijke overeenstemming. Hun conclusie is dat twee mensen die dezelfde tekst lezen, het gemiddeld voor 82% eens zijn over de intentie van de tekst.

Sentimentanalyse op social media

Onderzoekers Peng en Park refereren aan de bovenstaande paper in hun eigen onderzoek waarin zij dezelfde analyse uitvoeren, maar nu binnen social media. Het resultaat: de overeenstemming keldert naar 43,68%. Als het dus niet gaat om goed geargumenteerde en langere stukken tekst, maar om korte tekstjes op social media, zijn twee mensen het in nog niet eens de helft van de gevallen eens over de inhoud. Hoe zit het dan met de nauwkeurigheid van automatische sentimentanalyse? Bij onze methode, die gebruikmaakt van de vier eerder beschreven stappen, komen we uit op een accuraatheid van 69,2%. De onderbouwing van dat percentage kun je teruglezen in mijn thesis. Daarbij moeten we wel aanmerken dat dit geldt voor teksten met een grote zekerheid over de juiste boodschap. De ‘randgevallen’, waarbij het sentiment ingepakt wordt door ‘ruis’, zijn hierin niet meegenomen.

Klaar voor de volgende stap

Niettemin hebben we goed bewijs dat goed opgezette automatische sentimentanalyse een reële graadmeter is voor de algemene stemming op social media. Zeker nu we onze methode alsmaar blijven verbeteren, waardoor we steeds meer ‘randgevallen’ ook op de juiste manier kunnen interpreteren. De conclusie dat automatische sentimentanalyse een grotere accuratesse heeft dan menselijke sentimentanalyse is wat kort door de bocht, maar bevat wel een kern van waarheid. Het geeft aan dat we sentimentanalyse kunnen gaan inzetten zoals het bedoeld is. Dat we verder kunnen gaan dan alleen het temperen van negatieve geluiden, maar dat we de automatische peiling van het sentiment binnen social media kunnen gaan inzetten als de basis van onze onlinemarketingstrategie.

Erik Tromp
Data Scientist bij Adversitement

Categorie
Tags

6 Reacties

    Bart van der Kooi

    Ik ben het met je eens dat sentimentmeting erg belangrijk gaat worden of kán gaan worden. Ik durf zelfs te zeggen dat het een managementtool is; werkt ons beleid? werkt onze campagne? wat is de mening van bepaalde doelgroepen over onze strategie. Zoals je al meldt, het blijft lastig om goed sentimenten te beoordelen, 70% betekent namelijk dat 3 op de 10 niet goed beoordeeld wordt. Dat is helaas toch nog erg veel voor een betrouwbare analyse van de resultaten.


    7 juni 2012 om 09:41
    ErikTromp

    @Bart van der Kooi: Zoals gezegd is 70% verre van wat je ideaal zou willen voor een geautomatiseerd proces – 3 van de 10 gevallen gaan inderdaad fout. War daar wel bij gezegd dient te worden is dat die 70% gehaald is op zowel Engelse en Nederlandse teksten, door elkaar – er is dus geen aanname gemaakt op welke taal er bekeken wordt. Voor een groot aantal toepassingen is men echter vaak geïnteresseerd in slechts één taal – dus ofwel Engels ofwel Nederlands. In zo’n geval gaat de accuraatheid wel wat omhoog (niet drastisch, richting de 75-80%, afhankelijk van de complexiteit van de taal).

    Een andere noot is dat wij mensen het zelf nauwelijks beter kunnen zoals het artikel al zegt. Als het voor een menselijk persoon al enorm lastig is om een korte tekst zonder context te beoordelen, hoe zou een computer dit dan wel moeten kunnen? De grote winst in een geautomatiseerd systeem is dat je ‘mens-waardige’ analyses kunt uitvoeren op grote aantallen en zonder veel menselijke inspanningen.


    7 juni 2012 om 10:02
    Rob Boeyink

    Wij hebben de afgelopen jaren veel kennis opgedaan met het automatisch classificeren van toen nog e-mailberichten. In eerste instantie om emailberichten te routeren naar de juiste persoon of afdeling. In tweede instantie zijn we toen gaan herkennen of een bericht een klacht of koopsignaal bevat.

    Gemiddeld genomen zaten we na een aantal maanden tussen de 80-90% accuraatheid.

    Begin van dit jaar zijn we begonnen met het testen van classificatie van tweets.

    In het begin merkten we dat door het maximaal aantal woorden van een tweet het leren wat langzamer ging maar uiteindelijk zitten we daar ook gemiddeld tussen de 80-90% accuraatheid.

    Samengevat is deze methode uitstekend in te zetten voor o.a. sentimentanalyse. En dat het niet 100% goed gaat….ach…een mens maat ook fouten 😉


    8 juni 2012 om 05:55
    Erna

    En zo hebben we weer iets bijgeleerd,en inderdaad er wordt niet altijd begrepen wat er gelezen wordt 🙂


    8 juni 2012 om 06:15
    ErikTromp

    @Rob Boeyink: Mag ik vragen hoe lang jullie erover gedaan hebben tot die percentages te komen? Mijn resultaten waren behaald op basis van 2 dagen lang modellen construeren en ik vraag mij af hoe veel meer tijd er nodig is om dichter bij die 100% te komen.

    Tevens ben ik benieuwd hoe jullie de accuraatheid hebben vastgesteld.


    8 juni 2012 om 06:41
    Rob Boeyink (IQNOMY)

    @Erik Ten eerste was het classificatieproces geïntegreerd in een emailafhandeling platform. Dit betekent dat wanneer een mailtje niet bij de juiste persoon terecht kwam deze persoon het mailtje kon routeren naar de juiste afdeling. Het platform leerde hier continu van en werd steeds beter.

    De tijd die nodig was om gemiddeld rond de 90% accuraatheid te komen was afhankelijk van het aantal berichten in combinatie met het topic. Er waren topics bij die direct rond de 90% zaten terwijl andere topics in het begin slechts 45% haalden en waarbij we een aantal maanden nodig hadden op niveau te komen.

    In het begin kun je grote stappen zetten maar die stapjes worden steeds kleiner.

    Het platform wordt nu al een jaar over 7 gebruikt bij zowel Interpolis als Achmea rechtsbijstand.


    8 juni 2012 om 07:37

Marketingfacts. Elke dag vers. Mis niks!