Multilingual Sentiment Analysis on Social Media

 

Multilingual Sentiment Analysis on Social Media

 

Erik Tromp won in 2012 de Informatie Scriptieprijs. Hij onderzocht de geautomatiseerde sentimentanalyse van meertalige data onttrokken aan sociale media. Daarbij worden meningen gefilterd uit relatief korte berichten in verschillende talen die geplaatst zijn op sociale media. De analyse bestaat uit vier stappen: taalherkenning, part-of-speech tagging, subjectiviteitsherkenning en polariteitsherkenning. Deze sentimentanalyse kan worden gebruikt voor marketingresearch.

Traditioneel marktonderzoek met interviews en enquêtes kost veel tijd en geld. Voor zijn scriptie ontwikkelde Tromp nieuwe methoden (algoritmes) en paste bestaande methoden toe op een nieuw domein: publieke berichten op sociale media. Hierdoor wordt het mogelijk nuttige gegevens, zoals meningen over een bepaald product, af te leiden uit bestaande data. Hij ontwikkelde zelf algoritmes voor taalherkenning en voor de beoordeling van meningen op sociale media. Zo wordt het mogelijk meningen op bijvoorbeeld Twitter niet alleen te herkennen, maar hier ook een positieve of negatieve waarde aan toe te kennen. Tromp experimenteerde uitvoerig met zijn methoden en heeft aangetoond dat ze beter werken dan de huidige state-of-the-art toepassingen.
Het internet en meer specifiek sociale media vertonen enorme groei de laatste jaren. De mate waarin sociale media alle mensen ter wereld via internet samenbrengen, vergemakkelijkt het om ervaringen uit te wisselen en elkaar te beïnvloeden door meningen uit te wisselen. De grote hoeveelheid data die hiermee gemoeid gaat, vraagt om geautomatiseerde methoden om deze snel te analyseren en te interpreteren om zo snel mogelijk inzicht te krijgen in de data en snel te reageren op bepaalde trends.
In de scriptie is geautomatiseerde sentimentanalyse van meertalige data onttrokken aan sociale media onderzocht. Omdat sociale media mensen van over de hele wereld dichter bij elkaar brengen, is er een groeiende belangstelling om meertalige data te analyseren in plaats van data in één bepaalde taal. De geautomatiseerde sentimentanalyse die wordt uitgevoerd, filtert meningen uit relatief korte berichten geplaatst op sociale media en dit in verschillende talen.
 
Aanpak
De scriptie presenteert een vierstappenaanpak om sentimentanalyse uit te voeren. De aanpak omvat taalherkenning als eerste stap, part-of-speech tagging als tweede stap, subjectiviteitsherkenning als derde stap en tot slot polariteitsherkenning. Voor taalherkenning introduceert de scriptie een algoritme genaamd LIGA (Language
Identification through a Graph-based Approach) dat naast voorkomens van tekens ook de grammatica van een taal probeert vast te leggen. Voor part-of-speech tagging is de TreeTagger gebruikt, een bestaand algoritme ontwikkeld aan de Universiteit van Stuttgart. AdaBoost wordt toegepast op subjectiviteitsherkenning. Boosting, waar AdaBoost deel van uitmaakt, wordt al geregeld op andere problemen toegepast, maar niet op subjectiviteitsherkenning. Voor polariteitsherkenning introduceert de scriptie een algoritme genaamd RBEM (Rule-Based Emission Model) dat heuristieke regels gebruikt om zo een emission model te creëren gebaseerd op patroonherkenning.
Bij taalherkenning is het doel om de taal van een tekst te bepalen zonder enige voorkennis. Taalherkenning wordt dus gedaan met het LIGA-algoritme. Dit algoritme construeert een graaf op basis van data waarvan bekend is wat de taal is. Het algoritme hakt teksten op in reeksen van drie leeskarakters, N-grams genaamd, of in dit geval trigrams . Vervolgens wordt voor elke trigram een knoop gemaakt in de graaf en tussen elke opeenvolgende trigrams wordt een kant gemaakt.
Zo construeer je een graaf waarbij niet alleen de voorkomens van trigrams ondervangen worden, maar ook de volgorde ervan. Een tekst waarvan de taal onbekend is, wordt vergeleken met de geconstrueerde graaf en de taal van de tekst wordt bepaald aan de hand van de taal die de meeste gelijkenis vertoont met de tekst in de graaf. Part-of-speech tagging is het beste te vergelijken met zinsontleding. Het doel is om aan elk woord dat voorkomt in een tekst, een grammaticale woordgroep te hangen, bijvoorbeeld ‘zelfstandig naamwoord’ of ‘lidwoord’. Hiervoor waren er al enkele bestaande oplossingen en gekozen is voor die van de Universiteit van Stuttgart, de TreeTagger. Deze methode gebruikt beslissingsbomen in combinatie met probabilistische methoden om deze zinsontleding te realiseren.
De derde stap is subjectiviteitsherkenning. Het doel van deze stap is te bepalen of een bepaalde tekst een mening bevat of niet, ofwel of een mening subjectief is of niet. Dit is gedaan met AdaBoost. Dit algoritme heeft bewezen een goede accuraatheid te behalen op tekstclassificatieproblemen, waarvan sentimentanalyse er ook een is. Het algoritme gebruikt een groot aantal zwakke (slechte) modellen die tezamen een sterker (beter) model vormen. De zwakke modellen die gebruikt zijn, zijn beslissingsbomen met slechts één beslissing (hoogte één). Deze beslissing is genomen op basis van de part-of-speech tags die voorkomen (de part-of-speech tags hebben we in de vorige stap bepaald). Dit omdat bepaalde zinsdelen vaak meningen uitdrukken en andere zinsdelen vaak objectiviteit uitdrukken.
De laatste en belangrijkste stap is het bepalen van de polariteit. Bij polariteitsherkenning willen we bepalen of een tekst positief of negatief is. Dit heeft alleen zin bij teksten waarvan we weten dat ze een mening bevatten. Deze laatste stap vindt dus alleen plaats bij die teksten die in de vorige stap geïdentificeerd zijn als zijnde subjectief. Voor deze laatste stap is het RBEM-algoritme bedacht. Het basisprincipe van het algoritme is dat elk deel van een tekst een bepaalde polariteit uitzendt, dus positiviteit (getal boven nul) of negativiteit (getal onder nul). Een deel van een tekst is in dit geval een combinatie van een woord met de bijbehorende part-of-speech tag.
Om dit te doen wordt het algoritme bepaalde patronen geleerd die tot een bepaald soort patroongroep behoren. Het algoritme onderscheidt acht patroongroepen:
• Positieve patronen zijn positief wanneer er geen context bekend is. Voorbeelden hiervan zijn goed, leuk .
• Negatieve patronen zijn negatief wanneer er geen context bekend is. Voorbeelden hiervan zijn slecht, verschrikkelijk .
• Versterkende patronen vergroten de polariteit, positief dan wel negatief. Voorbeelden hiervan zijn heel erg, een heleboel .
• Verzwakkende patronen verkleinen de polariteit, positief dan wel negatief. Voorbeelden hiervan zijn een beetje, klein .
• Rechtszijdige omkeerpatronen keren de polariteit rechts van zich. Positief wordt dus negatief en vice versa. Voorbeelden hiervan zijn niet, geen .
• Linkszijdige omkeerpatronen keren de polariteit links van zich. Positief wordt dus negatief en vice versa. Voorbeelden hiervan zijn maar, doch .
• Verlengende patronen verlengen de uitstoot van polariteit. Voorbeelden hiervan zijn en ook, alsook .
• Stoppatronen interrumperen de uitstoot van polariteit. Stoppatronen zijn vaak punctuatietekens zoals een punt of een uitroepteken. Deze patronen drukken de algemene regel uit dat polariteit niet over meerdere zinnen gespreid wordt.
 
Als het algoritme de polariteit van een tekst moet bepalen, wordt gekeken welke patronen in de tekst aanwezig zijn en van welke patroongroep deze zijn. Op basis van heuristieke regels, één voor elk van de patroongroepen, wordt incrementeel voor elk deel (combinatie van een woord en de bijbehorende part-of-speech tag) van de tekst een uitstootscore ( emission score ) berekend. Als alle regels zijn toegepast, worden de scores van elk deel bij elkaar opgeteld. Als dit tot een positief getal leidt, is de tekst positief, en als dit tot een negatief getal leidt, is de tekst negatief. Het kan zijn dat de score precies nul is. Dit betekent dat de tekst geen mening bevat (en de vorige stap dus fout is gegaan), dat de tekst een mening bevat waarvan het bijbehorende patroon niet bekend is bij het algoritme of dat er precies evenveel positieve meningen als negatieve meningen in staan die tevens even sterk meewegen.
 
Conclusie
Met de vierstappenoplossing is uitvoerig geëxperimenteerd op twee niveaus. Zo is elke stap apart bekeken, maar ook het gehele vierstappenproces. De experimenten waarbij elke stap afzonderlijk bekeken wordt, maken duidelijk dat de voorgestelde oplossingen beter presteren dan concurrerende oplossingen en baselines. Er is vergeleken met oplossingen die typisch in gerelateerd werk als state-of-the-art aangetoond worden, en baselines die ofwel generieke machinelearningaanpakken ofwel specifieke aanpakken voor sentimentanalyse omvatten, zoals een prior polarity classifier. De experimenten die betrekking hebben op het gehele vierstappenproces, laten zien dat elke stap waarde toevoegt aan het accuraat oplossen van het sentimentanalyseprobleem. De accuraatheid van het gehele proces is 69,2 procent. Het is verrassend dat eerder is aangetoond dat wanneer twee mensen gevraagd wordt te bepalen welke emotie in een bepaalde tekst wordt uitgedrukt, zij het gemiddeld in slechts 70 procent van de gevallen met elkaar eens zullen zijn. Er is aangetoond dat wanneer een van de stappen niet gebruikt wordt, er minder goede resultaten behaald worden. Het effect dat additionele fouten hebben op het gehele proces, is expliciet gekwantificeerd om aan te tonen waar verbetering het gemakkelijkst te behalen valt en wat voor consequenties dit zou hebben. Een foutmarge tot 20 procent geeft nog altijd betere resultaten dan generiekere baselines.
Sentimentanalyse kan gebruikt worden als geautomatiseerde methode om marketingresearch uit te voeren. Tegenwoordig bestaat marketingresearch voornamelijk uit traditionele enquêtes die expliciet vragen naar een mening. Er is geprobeerd de resultaten van de geautomatiseerde sentimentanalyse te projecteren op resultaten van een traditionele enquête. Bij deze projectie doen zich problemen voor die van nature voorkomen. Het grootste probleem is bijvoorbeeld dat mensen in enquêtes gedwongen worden een (vaak voorgedefinieerde) mening te vormen over een bepaalde stelling, terwijl men op social media vrijwillig meningen deelt in eigen bewoordingen. Deze problemen worden aan het licht gesteld en er is onderzocht of een vergelijking gemaakt kan worden tussen het gebruik van menselijke taal in sociale media enerzijds en in traditionele enquêtes anderzijds. Dit is ook gedaan voor menselijke taal in sociale media enerzijds en op scores gebaseerde resultaten in traditionele enquêtes anderzijds.
Tot slot demonstreert de scriptie een aantal toepassingen van sentimentanalyse en geeft aanwijzingen voor mogelijk toekomstig werk. Er worden voorbeelden uitgewerkt van visualisaties die gebruikt kunnen worden om inzicht te krijgen in het sentiment dat uitgedrukt wordt op sociale media en geeft aan wat verbeterd of uitgebreid zou kunnen worden in toekomstig onderzoek. Tevens is een uitbreidbaar framework geïmplementeerd dat de theorie in de scriptie omzet in een systeem dat in de praktijk bruikbaar is. De scriptie beschrijft hoe dit framework kan worden gebruikt, aangepast en uitgebreid om de potentiële verbeteringen die voorgesteld zijn te verwerken in toekomstig werk. Het werk demonstreert ook mogelijke toepassingen waarin het framework inzichten in data kan geven om marketingvragen te beantwoorden door middel van heldere visualisaties.
 
Ir. Erik Tromp studeerde Business Information Systems aan de TU/e en is thans werkzaam als analist bij Accenture. E-mail: e.tromp@student. tue.nl.


Niet gevonden? Vraag het de redactie!

Heeft u het antwoord op uw vraag niet gevonden, of bent u op zoek naar specifieke informatie? Laat het ons weten! Dan zorgen we ervoor dat deze content zo snel mogelijk wordt toegevoegd, of persoonlijk aan u wordt geleverd!

Stel uw vraag