Menselijke vs. geautomatiseerde sentimentsanalyse: 0 - 1

Menselijke vs. geautomatiseerde sentimentsanalyse: 0 - 1
, Adversitement

Bij sentimentanalyse speelt het woord nauwkeurigheid altijd een hoofdrol. En wat blijkt? Geautomatiseerde sentimentanalyse scoort beter dan de menselijke beoordelingscapaciteiten. Maar hoe goed is de mens dan? Vaak wordt ervan uitgegaan dat mensen het sentiment in een tekst in 70% van de gevallen goed beoordelen. Dat getal wordt vaak gebruikt, maar het is lastig te achterhalen. Op Wikipedia wordt die 70% genoemd, maar er is geen citaat vemeld. En daarnaast, hoe representatief is dat getal voor voor tweets? Om die vraag te beantwoorden, organiseerde ik een maand geleden een experiment.

Men neme een drietal goed opgeleide annoteurs en een grote bak tweets. Zes dagen hebben onze drie annoteurs tweets zitten classificeren. Daarbij hadden ze vier keuzes. Bij elke tweet beoordeelden ze eerst of deze objectief of subjectief was. Bij de subjectieve tweets vroegen we hen vervolgens aan te geven of er een positieve, negatieve of neutrale boodschap in de betreffende tweet schuilde. Bij het onderzoek zijn er 5000 tweets door alle drie de testpersonen geclassificeerd.

#drama

Na het classificeren hebben we de oordelen naast elkaar gelegd en gekeken hoe vaak de studenten overeenstemden over de lading van de tweet. In 68% van de gevallen waren twee van de drie studenten het eens over de boodschap. Dat zit dicht tegen de alom gehanteerde 70% aan. Maar hoe vaak kenden de studenten alle drie dezelfde lading toe aan een tweet? Het antwoord: een dramatische 58,8%. Over dik 40% van de tweets zijn de studenten het niet eens. Valt dat even tegen.

Waar is die boodschap

Eerder dit jaar legde ik uit dat goede geautomatiseerde sentimentanalyse een accuraatheid van rond de 70% haalt. Oftewel: hoger dan het menselijk vermogen om de boodschap van een tweet te analyseren. Niettemin is het goed om te zien welke ‘onderdelen’ van een tweet precies de lading geven. Daarom vroegen we de annoteurs ook om voor 1.600 tweets aan te geven welke zinsdelen precies het sentiment aanduidden. Dat leverde 1600 keer 3 patronen op. En van die 1600 stemden de oordelen van onze annoteurs slechts 58 keer overeen. Oftewel: 3,6%. Oei.

Sentiment in scène

De menselijke beoordeling van tweets lijkt dus achter te blijven bij die van sentimentanalyse. Toch moeten we ook niet alle nauwkeurigheidscijfers van sentimentanalyses voor zoete koek slikken. Vaak zitten er nog wel eens addertjes onder het gras. Sommige partijen claimen bijvoorbeeld een accuraatheid van 85% of hoger. Maar vaak is een model dan specifiek ‘getraind’ op één sector of product. Als je hetzelfde model loslaat in een andere wereld, zakt het vaak genadeloos door het ijs.

Een tweede addertje is de selectie van tweets. Neem bijvoorbeeld de situatie waarin we voor de zekerheid nog twintig andere annoteurs dezelfde tweets laten classificeren. Als we dan alleen de tweets pakken waarbij een unanieme interpretatie is gevonden, kunnen we er 100% zeker van zijn dat er geen ruis in ons sentimentmodel zit. Dit lijkt mooi, maar betekent ook direct dat het model geen enkele vorm van nuancering kent en dus alleen de ‘simpele’ gevallen kan detecteren.

De mens voorbij

Op basis van het bovenstaande verhaal moeten er direct alarmbellen gaan rinkelen als iemand claimt een nauwkeurigheid hoger dan 70% te halen bij sentimentanalyse. Maar dat maakt de persoon in kwestie niet per definitie een leugenaar. Een goede, structurele aanpak om geautomatiseerd sentimentanalyse uit te voeren zou namelijk voor elk nieuw domein (denk aan media, telecom, financieel) een specifiek model moeten hebben. Op die manier kan bijvoorbeeld het domeinmodel ‘media’ richting een nauwkeurigheid van 80% gaan, maar slechts een nauwkeurigheid van 60% scoren in de telecomwereld. Dit houdt dan wel in dat je bij het definiëren van een nieuw domein ook een nieuw model moet trainen. Maar ja, voor wat hoort wat.

Meer uit sentiment

Wie zichzelf niet in de maling neemt, zal dus tot de conclusie komen dat geautomatiseerde sentimentanalyse zeker meerwaarde heeft. Het brengt het sentiment over een bepaald onderwerp sneller en beter in kaart dan wie dan ook.

Afbeelding: Paul Keller (cc)


Delen

0
0


Er zijn 12 reacties op dit artikel

  • Hoi Erik, mooi onderzoek, mooie post!

    Het roept nog wel een vraag bij me op, vooral de conclusie. Want als automatische sentimentanalyse 70% goed scoort, volgens wie zijn die analyses dan "goed"? Want kennelijk heeft elke persoon die de tweets beoordeelt er weer een andere mening over.

    geplaatst op
  • Dag Erik.

    Dank voor je stuk! Het roept vele vragen op, maar ik zal me beperken tot een vraag over: "Bij elke tweet beoordeelden ze eerst of deze objectief of subjectief was."

    Letterlijk betekent objectiviteit dat een boodschap exact volgens de feiten wordt doorgegeven, zonder dat er een persoonlijke mening in is verwerkt. Subjectiviteit is het persoonlijk oordeel van een individu over een onderwerp.

    Je hebt studenten gevraagd een oordeel te vellen (dat is altijd subjectief) over of een tweet feiten weergeeft of een persoonlijke mening verkondigt. Mijn vraag is: in welke mate waren ze hierover eensgezind? Dus nog even los van de vraag welke sentiment ze vervolgens toekennen aan de persoonlijke meningen.

    En dan toch nog een vraag: klopt het dat je vervolgens de overeenkomsten tussen de beoordelaars voor wat betreft sentiment hebt gebaseerd op de tweets waarvan men unaniem aangeeft dat deze een persoonlijke mening ventileren ("Bij de subjectieve tweets vroegen we hen vervolgens aan te geven of er een positieve, negatieve of neutrale boodschap in de betreffende tweet schuilde.")?

    Wellicht kan je dit nog verduidelijken.

    Dank je wel alvast,

    Ivo

    geplaatst op
  • @Bram (en deels @Ivo): Een zeer terechte en goede vraag.

    Wat je normaliter ziet (zoals Ivo aangeeft) is dat men inderdaad een training set (data om je methoden uit te laten leren) gebruikt waarvan een x aantal mensen unaniem aangeven wat het sentiment is. Zoals gezegd betekent dat echter automatisch dat alle nuances verloren gaan en schrijnende gevallen - waarvoor het vaak juist zeer belangrijk is ze juist te identificeren - wellicht niet goed worden herkend. Daar waar het voor het train proces niet direct een probleem is, is het dat wel voor het valideren waarbij vaak ook een dataset op een zelfde manier wordt gemaakt. Je kunt dan dus alleen 'obvious cases' valideren.

    De enige manier hoe je deze factor uit het validatie proces kunt halen is door de echte waarheid te gebruiken; wat heeft de auteur van het bericht ermee bedoeld, wat was haar/zijn emotie? Valideren kun je dus doen door auteurs van bijvoorbeeld Twitter berichten te vragen wat voor sentiment zij met de tweet wilden uitdrukken. Je haalt hiermee de menselijke interpretatie factor weg.

    @Ivo specifiek:
    De overeenstemming subjectief vs. objectief tussen alle 3 de annoteurs was 77.7% (3963 uit de 5098). De moeilijkheid zit hem dus vooral in het bepalen van de lading van een subjectieve tekst.

    De overeenstemming die ik vermeld zijn gebaseerd op een classificatie in 4 categorieën: positief, negatief, neutraal of objectief.

    geplaatst op
  • Ik vind dit een moeilijke discussie.

    Op zich zijn de resultaten namelijk niet opzienbarend. Ik had de verschillen in interpretatie v.s. een computermodel ook wel verwacht. Je zet toch 3 mensen naast elkaar, en ieder mens heeft een andere mening of interpretatie, terwijl één computer hier natuurlijk geen last van heeft.

    Daarnaast speelt ook training een grote rol. Je stipte het al even aan. Er kan ook getraind worden op het herkennen van sentiment in een uiting of het ontleden van een uiting, hebben de 3 studenten alle drie dezelfde ervaring/training op dit gebied? Daar hoef je ook niets mee uit te sluiten.

    Ik haal trouwens alleen het resultaat qua onderlinge overeenstemming uit de tekst: 58%. Waren alle 58% dan ook correct beoordeeld (d.w.z. het sentiment klopte? Hoe zat dit per student?) dat is namelijk de vergelijking die je moet trekken, aangezien je in je opening stelt dat dit 70% zou moeten zijn. Hebben jullie daar zowel bij de studenten als bij het algoritme een steekproef op gedaan?

    Ook interessant: Hoe scoorden de studenten op uitingen met sarcasme, of ingewikkelde taalconstructies/stijlfiguren t.o.v. het algoritme?

    geplaatst op
  • Herkenbare materie Erik :-) Ik kan me die 70% nog herinneren van onze gesprekken. Eigenlijk een bevestiging van je eerdere thesis / onderzoek bij Multiscope toch?

    We hebben de learnings van toen inmiddels ook geactiveerd in onze social media research tool Momentum. Het sentiment algoritme doet daar goed zijn werk. Zelfs op enorme datasets (miljoenen tweets). Classificeren / beoordelen door mensen is daar al helemaal niet meer mogelijk. Algoritmes werken nu eenmaal een stuk sneller.

    Wat in het werken met die grote datasets overigens verder nog opvalt is dat de meerderheid van de berichten vrij neutraal van aard is. Sentiment is niet de verklaring voor alles, het analyseren op andere variabelen kan zeker zo interessant zijn!


    geplaatst op
  • Even terplekke out of the box denkend: ik denk dat de resultaten van menselijke beoordeling juist altijd goed zijn. Immers, dat is de werkelijkheid! Dat die interpretatie soms flink uiteen kan lopen geeft aan dat dat bij echte mensen die de tweets in hun timeline lezen, ook zo zal kan zijn.
    Automatische sentimentanalyse zit er dus vaak naast, omdat er niet één waarheid bestaat.

    Los daarvan vraag ik me af wat het nut is sentimentmeting op de schaal positief/negatief/neutraal. Ik denk dat een ervaren analist al snel de sfeer rond een bepaald issue (bv. een product launch) zal proeven.
    En het is voor mij belangrijker te weten welke aspecten er precies als positief of negatief wordt bestempeld.

    Ik ben ook wel benieuwd wie sentimentanalyse eigenlijk (serieus!) gebruikt en waarvoor.
    Misschien dat iemand zich geroepen voelt om eens een leuke case te beschrijven in een post op Marketingfacts.

    geplaatst op
  • Inderdaad, het is geen doen om grote datasets handmatig te beoordelen. Automatische sentimentanalyse helpt prima met herkennen van opmerkelijkheden in grote hoeveelheden data (conversaties). Bij mensen die voor het eerst kennismaken met social media research, of beter gezegd het interpreteren van conversatie data uit social merk ik vaak dat zij in eerste instantie sentiment alleen als positief ingedeeld willen zien als dit positief ten opzichte van het onderzochte onderwerp is. Logisch om dit te willen maar helaas niet realistisch. Want dat kost hoe dan ook tijd, en tijd is geld, geld wat je dan wellicht beter kunt steken in kwalitatief onderzoek.

    Ben het eens met John, is sentiment niet de verklaring voor alles. En op zijn zachtst gezegd een onbetrouwbare KPI bij grote datasets. Trek niet te vlug harde conclusies uit sentiment stijgingen of dalingen. Niet dat ik denk jullie dat rücksichtlos zouden doen :)

    geplaatst op
  • Ik sluit mij aan bij bovengenoemde standpunten. Tot niet lang geleden wat het niet (goed) mogelijk om geautomatiseerd sentiment analyse uit te voeren omdat dit niet betrouwbaar genoeg bleek. De huidige technologie stelt ons echter in staat dit wel redelijkerwijs te doen en het grote gewin is dat we redelijkerwijs een arbeidsintensieve menselijke taak nu kunnen automatiseren.

    Dat de voorspellingen niet altijd kloppen, dat is een onoverkoombaar feit. Echter is de strekking van mijn artikel dat dit niet erg is daar een mens niet of nauwelijks beter kan. Sterker nog durf ik te beweren dat wanneer domein experts ingezet worden om de modellen op te bouwen, een automatische analyse toegespitst op een specifiek domein beter kan zijn dan menselijke analyse door een 'leek'. Dit lijkt mij een erg nuttig effect.

    Het bepalen van polariteit is inderdaad pas een eerste stap, maar wel een in de goede richting. De volgende stap is het bepalen van emotie in berichten, een iets uitdagender probleem simpelweg omdat er meer mogelijkheden zijn.

    Tot slot is het ook zo dat geautomatiseerde sentiment analyse niet de heilige graal is, maar wat wel? Het is een concrete aanpak voor een specifiek probleem en dient dus ook toegepast te worden voor dat specifieke probleem. Overigens is wel al aangetoond dat sentiment vaak een indicator is van andere factoren zoals epidemieën, beursgang en zelfs verkiezingsuitslagen. Mijn gevoel is dat dit slechts de top van de ijsberg is :)

    geplaatst op
  • @harro
    *kuch* :) Wij doen dat in bepaalde gevallen wel serieus. Maar alleen in opdracht, en als onze methode überhaupt mogelijk is. We doen dit dan in afgebakende datasets, zoals bijvoorbeeld een campagne. Waarbij het sentiment handmatig toegekend wordt en er vervolgens een (met de klant afgesproken) waarde toegekend wordt aan positieve, negatieve en neutrale berichten. Dit kan een goed instrument zijn om bij b.v. management zaken aan te tonen. Ik zeg niet dat het perfect is, maar een bedrag ergens aan hangen werkt beter dan "er waren 3.052 positieve berichten" oid.

    geplaatst op
  • @jolante:
    Ik twijfel er niet aan dat jullie het serieus aanpakken :-)

    De vraag die ik heb slaat in jouw voorbeeld meer op de opdrachtgever waarvoor je de analyse maakt. Waarvoor gebruikt de opdrachtgever de uitkomsten? Interne borstklopperij van de marketingafdeling richting het management (even negatief gesteld), of worden er acties aan de uitkomsten van sentimentanalyse gekoppeld, bijvoorbeeld verbetering van product, verbetering van communicatie?
    Of misschien zelfs in KPI's om de ROI te onderzoeken?


    geplaatst op
  • @Harro
    Marketing springt eeerlijk gezegd wel als eerste op ja:). Maar het wordt (als de dataset zich er voor leent) ook ingezet bij reputatie issues, problemen met producten of dienstverlening, en dan kan het inderdaad als wakkerschudder dienen om communicatie en interne processen te verbeteren. Helpt bij alle inspanningen om iets aan te kaarten intern. Ik kan niet keihard beweren dat puur het feit dat er een bedrag gekoppeld is in een van die opdrachten ervoor gezorgd heeft dat er een gedrags- of koerswijziging plaatsgevonden heeft. Met één steen kun je de loop van een rivier veranderen schijnt een gezegde te zijn he. Maar meestal heb je gewoon een hele berg zand nodig.

    geplaatst op
  • Wel interessant in het kader van deze discussie:

    "Smartphone kan emotie herkennen aan stem"
    Wetenschappers ontwikkelen software die emotie kan herkennen via stemgeluid.

    De onderzoekers van Universiteit van Rochester in de Verenigde Staten presenteerden hun kunsten deze week op IEEE, een congres over spraaktechnologie.
    De beste emotieherkenningssoftware tot dusver kon iemands humeur met 55 procent zekerheid vaststellen, de nieuwe software lukt dat tot 81 procent. De onderzoekers zien bijvoorbeeld toepassingen in smartphones voor zich.
    De Amerikanen slaagden in het verbeteren van het zekerheidspercentage door de software niet de woorden van de gebruiker te laten analyseren, maar door deze te laten luisteren naar hoe iemand iets zegt.
    Het programma dat ze ontwikkelden analyseerde 12 eigenschappen van spraak, waaronder bijvoorbeeld de hoogte en intonatie van de gesproken tekst. De onderzoekers werkten samen met een team psychologen om de verschillende eigenschappen van emotie in taal te herkennen.

    http://www.nu.nl/gadgets/2974051/smartphone-kan-emotie-herkennen-stem.html

    geplaatst op

Plaats zelf een reactie

Log in zodat je (in het vervolg) nóg sneller kunt reageren

Vul jouw naam in.
Vul jouw e-mailadres in. Vul een geldig e-mailadres in.
Vul jouw reactie in.

Herhaal de tekens die je ziet in de afbeelding hieronder


Let op: je reactie blijft voor altijd staan. We verwijderen deze dus later niet als je op zoek bent naar een nieuwe werkgever (of schoonmoeder). Reacties die beledigend zijn of zelfpromotioneel daarentegen, verwijderen we maar al te graag. Door te reageren ga je akkoord met onze voorwaarden.