SENTIDA: Kvantificering af sprogets emotionelle værdi

Tænk hvis du ikke længere behøvede at læse bøger, artikler eller blogindlæg for at finde frem til de bagvedliggende intentioner. Hvis alt du skulle, blot var at klikke 4 gange på musen – og 1, 2, 3 – så havde du analyseret tusindvis af holdninger.

I kølvandet på internettets udbredelse og en begyndende æra med Big Data i højsædet er nye værktøjer opfundet med henblik på at udnytte disse uanede mængder af ustruktureret data på internettet, heriblandt mange inden for kategorien sentiment analysis. Et sentiment analysis værktøj er et redskab til analyse af tekstdata på et kvantitativt niveau, der typisk består af en stor ordliste, hvori hvert ord har fået tildelt en sentiment score ift., hvor positivt eller negativt ladet ordet er. Når man bruger sentiment analysis matches alle ord i en sætning mod ordlisten, og sætningen får på den måde tildelt en værdi ift., hvor positiv eller negativ den er.

En anden gren af sentiment analysis bygger på machine learning, hvor enkelte ord og sætninger analyseres ud fra deres kontekst og indbyrdes forhold. Disse værktøjer er dog stadig for langsommelige og computationelt ineffektive til for alvor at kunne bruges til analyse af tekster i massevis, hvorfor de bedste internationale modeller er opbygget af ordlister.

Effektiviteten af sentiment analysis gør det til et populært værktøj blandt både  virksomheder og politiske partier, hvor det bl.a. bliver brugt til indirekte kundetilfredshedsundersøgelser og meningsmålinger. Herudover er det i forskningsregi også blevet brugt til eksempelvis at forudsige aktiekonjunkturer baseret på twitter-opdateringer, klargøre politiske bias i aviser og ikke mindst til at forudsige depressioner.

Selvom disse værktøjer det seneste årti har været brugt af forskere og virksomheder internationalt, er Danmark endnu ikke hoppet med på bølgen. Dette skyldes, at der i små sprogområder generelt har været et manglende fokus på udvikling af effektive værktøjer, annoterede ordlister og valideringsredskaber til automatiseret sproganalyse, hvilket har gjort, at vi bl.a. i Danmark har haltet bagefter, når det kommer til sentiment analysis.  

MEN sådan skal det ikke være længere. Vi mener, at forskere, virksomheder, politikere og studerende fortjener lignende analyseredskaber på dansk, da disse vil kunne give os helt nye måder, hvorpå tekstdata nemt kan kvantificeres.

Af denne grund har vi i forbindelse med vores studier på Cognitive Science på Aarhus Universitet udarbejdet et værktøj til sentiment analysis på dansk – Sentida. Sentida er et sofistikeret værktøj, som ikke blot bedømmer en sætnings emotionelle værdi ud fra de enkelte ord, men også tager højde for sproglig kontekst, der kan ændre sætningens overordnede emotionalitet.

Mere konkret har vi udarbejdet og ratet en underbyggende ordliste bestående af 5263 af de mest hyppige danske lemmaer/opslagsord i rodform. Grunden til, at alle disse ord forekommer i deres rodform, skyldes ganske enkelt, at vi på denne måde har kunnet sikre os, at hvert ord matcher på alle dets bøjninger. Det vil sige, at ordlisten ikke blot består af 5263 ord men også inkluderer alle bøjninger af disse ord (det samlede antal ord er ca. 35.000).

I udarbejdelsen af ordlisten tog vi udgangspunkt i Dansk Sprog- og Litteraturselskabs liste over de 10.000 mest brugte danske ord. Alle ord fra denne liste blev vurderet på en valensskala fra -5 til 5 af tre uafhængige annotører, der alle var blevet tildelt samme kodningsskema som referenceramme. Herefter filtrerede vi ordlisten således, at den nu kun bestod af de ord, der baseret på gennemsnittet af de tre individuelle vurderinger havde fået tildelt en sentiment score – dvs. at neutrale ord med en samlet score på 0 blev filtreret ud. Dette gav os en samlet liste på 5263 annoterede ord.

Tre simple heuristiske regler

I vores bestræbelser på at forklare sætningers emotionelle værdi så præcist som muligt, har vi ovenpå den underbyggende ordliste bygget tre simple heuristiske regler, der gør, at vores værktøj også tager højde for sproglig kontekst. Dette sikrer os, at bestemte ord eller tegn ikke har en uhensigtsmæssig effekt på den overordnede emotionelle værdi i en sætning.

De 3 heuristiske regler er som følger:

1) Negationer

Negationer er en udfordring for sentiment analysis, da de vender den emotionelle polaritet af andre ord. Eksempelvis er ladningen af ordet “glad” positiv, hvorimod “ikke glad” er negativ.
Dette tager Sentida højde for i simple konstruktioner med inspiration fra machine-learning metoder.

Eksempel:

      [1] > sentida(“lingvister er ikke glade”)-> -4.333

2) Gradsadverbier

Den anden heuristiske regel tager hensyn til gradsadverbier, da disse er med til enten at formindske eller forstærke den emotionelle værdi af en sætning. Eksempelvis forstærker ordet “meget” den emotionelle værdi af det efterfølgende ord, mens ordet “lidt” mindsker den værdi. I Sentida er en lang liste af gradsadverbier indbygget for at tage højde for dette.

Eksempel:

      [2] > sentida(“Sentida gør lingvister glade”)-> 4.333

      [3] > sentida(“Sentida gør lingvister meget glade”)-> 5.2

      [4] > sentida(“Sentida gør lingvister lidt glade”)-> 3.467

3) Udråbstegn

Den sidste heuristiske regel, som er blevet inkorporeret i Sentida, relaterer sig til den forstærkende effekt, som udråbstegn har på sætningsniveau. Mere konkret ganges sætningens emotionelle værdi med en konstant, hver gang et udråbstegn forekommer.

Eksempel:

      [5] > sentida(“Sentida gør lingvister meget glade!”)-> 6.708

Værktøjet kan indtil videre downloades til statistikprogrammet R, og vi modtager med glæde feedback fra brugere af pakken. Udførlig beskrivelse og guide til værktøjet findes her.

Udfordringer

Når man arbejder med tekstanalyse ved at kigge på de enkelte ord uden sammenhæng, kaldes det bag-of-words-teknik. Med andre ord tages der ikke højde for kontekst, hvilket blandt andet har den konsekvens, at fænomener som ironi, ordsprog og homonymer ignoreres. Dette er en stor udfordring for både Sentida og sentiment analysis værktøjer generelt, da det reducerer sensitiviteten. Endvidere, vil problemet sandsynligvis mindskes i takt med, at machine-learning modeller bliver bedre og bedre.

En naturlig følge af at basere et værktøj på denne teknik er også, at mængden af annoterede ord bliver altafgørende. Ifølge Dansk Sprog- og Litteraturselskabs liste over alle danske ord er der ~810.000 ord i det danske sprog, hvilket vil sige at Sentida kun rammer ca. 4%. Derfor vil en naturlig udvidelse af Sentida bestå af at få annoteret flere ord for på den måde at repræsentere det danske sprog på en mere fyldestgørende måde. Når det er sagt, bør det dog nævnes at mange danske ord kan betragtes som neutrale og af denne grund ikke vil kunne bruges i en sentiment ordliste.

Samtidigt er ordlisten kun annoteret af os selv – tre drenge i starten af tyverne, som går på den samme uddannelse. Det giver en usikkerhed ift. robustheden af ordlisten, da annotørerne på ingen måde repræsenterer den danske befolkning. Derudover har de bedste engelske værktøjer til sentiment analysis op mod 20 annotører for hvert enkelt ord, hvorfor det nuværende antal af annotører for Sentida også må betrages som værende problematisk.

Brugen af sentiment analysis

Et praktisk eksempel på, hvad sentiment analysis kan bruges til, ses i nedenstående tabel, hvor vi har lavet analyser af boganmeldelserne på Lingoblog. På Lingoblog bliver der ikke givet stjerner, hvilket gør, at brugeren selv må læse anmeldelsen for at finde ud af, om bogen er anbefalelsesværdig. Finder man dette for tidskrævende, kan man i stedet bruge Sentida til hurtigt at finde frem til hvilken anmeldelse, der har det mest positive sprogbrug, og på den måde hurtigt og effektivt vælge, hvilken bog man skal kaste sig over.

53761145 159315961641053 3673695290176569344 n

Et andet eksempel på brugen af Sentida kunne være i sammenhæng med litteraturanalyse, hvor værktøjet bl.a. ville kunne bruges til at følge den sproglige emotionelle udvikling i et værk. Herunder er to grafer, der viser den akkumulerede sproglige emotionelle værdi i henholdsvis “Den grimme ælling” og “Den lille pige med svovlstikkerne” fra første til sidste ord. Således kan man lave en kvantitativ beskrivelse af det umiddelbare følelsesmæssige handlingsforløb i historierne.

54220387 265572124375845 7887606726415876096 n

Mulighederne for sentiment analysis på dansk er mange, og det er på tide, at vi udnytter dem.

Vi håber, at dette værktøj kan bidrage til en ny bølge af dansk sproganalyse, og at det vil kunne hjælpe forskere såvel som virksomheder. Sentiment analysis skal facilitere en effektiv og fyldestgørende måde at analysere store mængder tekstdata.

Vores hidtidige tests af Sentida viser, at værktøjet præsterer på niveau med de bedste engelske sentiment analysis værktøjer, hvorfor det – trods mangler – må betragtes som et værktøj, der allerede nu kan tages i brug.

Vi er meget nysgerrige på hvilke muligheder og begrænsninger sprogforskere og studerende ser ift. sentiment analysis på dansk, og vi vil meget gerne høre jeres forslag til forbedringer af selve værktøjer eller til evt. forskningsprojekter med udgangspunkt i sentiment analysis.

 

Lars Kjartan Bacher Svendsen, Jacob Aarup Dalsgaard og Gustav Aarup Lauridsen er 2. semester bachelorstuderende på Kognitionsvidenskab ved Aarhus Universitet og assisterer fremadrettet Riccardo Fusaroli og Kristian Tylén, lektorer ved Aarhus Universitet, med henblik på at udvikle sentiment analysis på dansk.

6 kommentarer til “SENTIDA: Kvantificering af sprogets emotionelle værdi”

  1. “Sentida gør lingvister meget glade!”

    Utroligt værdifuldt stykke arbejde!
    Kh,
    Alexandra

    Svar

Skriv et svar til Peter Bakker Annuller svar