Dette indlæg er alene udtryk for skribentens egen holdning.

Om at lære computere at klassificere følelser

Vi har udviklet en maskinlæringsmodel, der kan identificere følelser som glæde, foragt, bekymring m.m. i ytringer på dansk. Den er udviklet i samarbejde med DR med det formål at hjælpe dem med at skabe indsigt i tonen blandt brugere af deres sider på sociale medier. I dette blogindlæg beskriver vi, hvordan modellen er udviklet, og viser nogle af de resultater, der er kommet ud af samarbejdet.
Synspunkt 11. februar kl. 07:12
errorÆldre end 30 dage

Sentiment-analyse er en af de klassiske discipliner inden for NLP. Konceptet er temmelig ligetil. Det handler om at udvikle maskinlærings-modeller, der kan identificere og kvantificere, om sentimentet eller »stemningen« i en ytring er positiv, negativ eller neutral.

Som oftest bruges sentiment-analyse til at undersøge, hvordan brugere skriver om virksomheder, produkter, kampagner med videre på forskellige sociale medier, og med det rette setup kan det give indsigt i kunders og potentielle kunders meninger og holdninger.

Illustration af emojis.
Illustration: Privat. Se større version

Men at identificere positive og negative ytringer er kun én type af signal, der kan hentes ud af social medie-data. Et andet signal er at se på, hvilke følelser der optræder. På engelsk, og andre større sprog, er der flere, der arbejder på netop det, men der findes endnu ikke værktøjer til det på dansk.

Vi har gennem noget tid ledt efter muligheden for at komme i gang på dansk. I løbet af sidste år (2020) talte vi med DR Medieforskning, som ønskede at blive klogere på tonen blandt deres brugere på sociale medier. Sammen kastede vi os derfor ud i at undersøge, hvor godt vi kan identificere og klassificere følelser i opslag og kommentarer på sociale medier.

Hvordan lærer man en computer at klassificere følelser?

Modellen, vi har udviklet, giver mulighed for at klassificere ytringer på baggrund af følgende otte følelser:

  • Glæde 😀
  • Tillid 🤗
  • Overraskelse 😮
  • Forventning 🤔
  • Frygt 😱
  • Sorg 😢
  • Foragt 😤
  • Vrede 😡

Som vi tidligere har skrevet om, er det sværere, end man lige skulle tro, at bygge software, der kan skelne mellem positive og negative ytringer. Og opgaven bliver kun mere vanskelig, når det handler om følelser.

Udover flere mulige udfald, så øges kompleksiteten også af selve emnet — ganske betydeligt endda. For følelser kan optræde klare, tydelige og afgrænsede, men de kan også fremstå flertydige og vage. Bad man en håndfuld personer om at tolke følelser i den samme tekst, vil deres besvarelse sandsynligvis variere, og selv indenfor forskningen er der ikke konsensus om, hvordan vi skal skelne mellem følelser.

Heldigvis, fristes man næsten til at sige, er og var vores mål ikke at lave en perfekt model, men at bygge et værktøj der kan give indblik i, i hvilket omfang forskellige følelser optræder i det farvand af opslag og kommentarer, der flyder på de sociale mediers kanaler. Her er den enkelte kommentar sjældent afgørende. Det er de store linjer, vi er på udkig efter (i første omgang). Hvad dominerer, og hvad gør ikke.

Vores udgangspunkt var med andre ord, at vi i første omgang kunne acceptere en model, der ikke rammer rigtigt i alle tilfælde, så længe vi blot kan se og dokumentere, at modellen har så tilpas høj præcision, at vi kan regne med den, når vi analyserer en større pulje af kommentarer for at få et billede af tonen indenfor eksempelvist et emne eller på en Facebook-side.

Afgørende for det var at finde den rette balance mellem at tilføre modellen en tilpas nuanceret forståelse for følelsers flydende natur, samtidigt med at de forskellige følelser skulle ekspliciteres tilpas klart til, at en computer kunne lære at skelne mellem dem.

En stor del af det indledende arbejde handlede derfor om begrebsdannelse; at få defineret en taksonomi for følelser, der hverken var for simpel eller for kompleks.

Til inspiration kiggede vi indledningsvist på forskellige teoriapparater. Her endte vi med at tage afsæt i psykologen Robert Plutchiks ’Wheel of emotions’.

For personer med hang til sprog har vi tidligere skrevet et længere blogindlæg om dette arbejde, men i kort form skelner Plutchik mellem otte grundfølelser: glæde, tillid, overraskelse, forventning, frygt, sorg, foragt og vrede — de samme, som er listet øverst i dette afsnit.

Hver af disse grundfølelser har forskellige intensitetsgrader. Raseri vil for eksempel med Plutchiks øjne skulle klassificeres som en mere intensiv tilstand end vrede, mens irritation skal klassificeres som en mildere. Disse intensitetsgrader er vigtige aspekter af vores følelsesapparat, men er samtidigt også meget komplekst at modellere. Vi vurderede, at et evt. forsøg på dette måtte vente til et senere eksperiment.

Baseret på Plutchiks definitioner udarbejdede vi en beskrivelse af hver af de otte grundfølelser. Beskrivelsen skulle bruges i forbindelse med opmærkning af det data, som modellen senere skulle trænes på (også kaldet annotering af data).

I beskrivelsen af hver følelse noterede vi en række associerede tilstande. For eksempel skulle alle eksempler, hvor følgende tilstande optræder, mærkes med kategorien »Glæde«: begejstretgodt, tilpashåbefuldlykkeligmunteropløftetoptimistisktilfreds og lettet.

For »Frygt« var det: angstængstelsebangechokeretpaniskskræmtbetænkelighed.

Med taksonomi og guidelines på plads gik vi igennem lidt mere end 5.000 tilfældigt udvalgte opslag og kommentarer fra DR’s Facebook-sider. Hvert opslag/kommentar blev manuelt ‘tagget’ med den af de otte følelseskategorier, der var mest fremtrædende.

Disse opslag og kommentarer med påførte tags brugte vi så efterfølgende til at træne modellen. Til selve træningen benyttede vi Transformers fra HuggingFace, samt en pretrænet dansk BERT model, der er trænet af BotXO.

Efter endt træning evaluerede vi modellen på en delmængde af det taggede datasæt. Her rammer modellen rigtigt 65 procent af gangene. Lidt højere for nogle følelser, lidt lavere for andre.

Umiddelbart kan det lyde lavt, men hvis man sammenligner med vilkårligt gætteri — at man for eksempel slår med en ottesidet terning — vil man kun ramme rigtigt 12,5 procent af gangene. En anden »dummy baseline« kunne være at vælge den klasse af følelser, som hyppigst er observeret i det datasæt, der er brugt til at træne modellen, som her er »forventning«. En sådan tilgang vil i denne sammenhæng give en nøjagtighedsscore på ca. 20 procent.

Analyse af tonen på DR Ramasjang og DR Debatten

Som mange andre store organisationer varetager DR en del forskellige sider på Facebook. Her promoveres, præsenteres og diskuteres DR’s indhold og programmer. Der laves opslag med små klip, som følgere og andre besøgende deler, kommenterer og debatterer.

Illustration af Facebooks og DR's logo.
Illustration: Privat. Se større version

På mange af siderne er der et stort engagement. Opslag på de mest benyttede sider modtager ofte +100 kommentarer/underkommentarer og i mange tilfælde over det dobbelte. Med flere opslag om dagen bliver det meget hurtigt en umulig opgave at følge med i, hvad der bliver skrevet om, og hvordan tonen er brugerne imellem — i hvert fald hvis man skal gøre det manuelt.

Sammen med DR har vi derfor eksperimenteret med at bruge modellen til at analysere hvilke følelser, der dominerer i forskellige sammenhænge. Ideen er at bruge følelser som et signal til at sige noget om, hvad der foregår mellem brugerne. Spores der eksempelvis meget foragt på en side, kunne det måske være et tegn på, at der er stor uenighed.

Denne indsigt kan så bruges til at evaluere, om der er et godt fit mellem det indhold, der præsenteres, og det, der rent faktisk udspiller sig i kommentarsporet, og om der eventuelt skal foretages justeringer.

Screendumps af DR Ramasjangs & DR Debattens facebook-sider.
Screendumps af DR Ramasjangs & DR Debattens facebook-sider. Illustration: Privat. Se større version

Til et af eksperimenterne udvalgte vi Facebook-siderne DR Ramasjang og DR Debatten. De to blev valgt, da de begge har klart definerede profiler. DR Ramasjang er et børneunivers, hvor der er fokus på sjov, leg og læring, mens DR Debatten er et intensivt debatprogram, hvor modsatte holdninger som oftest sættes over for hinanden. Vi havde derfor en forventning om, at kommentarer på begge sider ville indeholde en del følelser, men af forskellig art.

Rent praktisk har vi anvendt modellen på den måde, at der først laves et tilfældigt udtræk på 1.500 kommentarer fra den data, der skal analyseres. I den her sammenhæng kommentarer fra de pågældende to sider. Derefter analyserer modellen først, om der optræder følelser eller ej.

To cirkeldiagrammer.
Illustration: Privat. Se større version

Som det kan læses af cirkeldiagrammet for DR Ramasjang (til venstre) indeholder 928 kommentarer, svarende til 61,9 procent, følelser, mens 571 kommentarer, svarende til 38,1 procent, ikke gør.

I cirkeldiagrammet for DR Debatten (til højre) kan man se, at 1179 kommentarer, svarende til 78,6 procent, indeholder følelser, mens 321, svarende til 21,4 procent, ikke gør.

Selvom analysen af hvor mange kommentarer der indeholder følelser, måske er mindre interessant, må forskellen på knap 17 procentpoint siges at være markant. Det kunne måske underbygge en hypotese om, at Debatten vitterligt er et program, der vækker følelser (blandt brugerne af programmets Facebook-side).

Hvis vi går videre og ser på omfanget af de forskellige følelser, der kommer til udtryk på de to sider, ser fordelingen således ud:

Søjlediagrammer.
Illustration: Privat. Se større version

Hvis vi igen starter med DR Ramasjang (de blå søjler), kan man af plottet læse, at »forventning«, »glæde« og »tillid« er de tre dominerende følelser. Generelt er det de positive følelser, der dominerer billedet. Det stemmer godt med kanalens fokus, og hvad der appelleres til på siden. At det er »forventning«, der er den mest dominerede følelse, stemmer også fint overens med, at der på Facebook-siden DR Ramasjang ofte »varmes op« til større begivenheder og programmer.

Som det kan læses af plottet for analysen af DR Debatten (de gulgrønne søjler), er »foragt« den mest dominerende følelse og tegner sig for knap 40 procent af alle kommentarer (hvori der optræder følelser). Herefter følger »tillid«, mens »forventning«, »overraskelse« og »vrede« kæmper om tredjepladsen.

At »foragt« fylder så forholdsmæssigt meget styrker kun hypotesen om, at Debatten er et program, der ja… vækker debat. I klassen »tillid« ligger også accept eller det at forlige sig med nogen eller noget. At »tillid« fremgår i knap hver femte kommentar (17 procent) kunne derfor indikere, at der faktisk også er nogle brugere af siden, der kommer hinanden i møde.

Next step?

Analyserne ovenfor er hovedsageligt foretaget som en del af at demonstrere, hvad modellen kan bruges til. De er derfor også vores bedste — hurtige — bud på, hvad modellen blandt andet kan anvendes til.

Vi har også lavet andre analyser sammen med DR, hvor vi er blevet klogere på, hvad indsigt i følelser kan sige noget om og bruges til. Ud af det er kommet nye ideer til andre og mere detaljerede analyser, man kan lave ved hjælp af modellen. Når vi er klar til at præsentere dem, kommer der et ny indlæg.

Indtil da ligger modellen, samt yderligere teknisk dokumentation, tilgængelig på vores GitHub.

Denne blog er oprindeligt udgivet på Medium.

DANLP

Hvis man vil vide mere om Alexandra Instituttets NLP-ressourcer, kan man starte på hjemmesiden danlp.alexandra.dk.

Organisationen har også startet en blog, der løbende skriver om udviklingen af sprogteknologierne.

Og endelig kan man holde øje med Github, hvor modeller lægges ud til fri afbenyttelse.

Ingen kommentarer endnu.  Start debatten
Debatten
Du har ikke tilladelse til at deltage i debatten. Kontakt support@ing.dk hvis du mener at dette er en fejl.
Forsiden