En (data)lingvists tanker i maskinlæringens tidsalder

Christinarosted
DaNLP
Published in
8 min readMay 1, 2020

Det kan ikke være gået mange tech-interesseredes ører forbi, at vi i Danmark halter lidt bagud med danske sprogresurser til brug i udviklingen af dansk sprogteknologi. Det er forståeligt i en sammenligning med store sprog som engelsk, fransk og kinesisk - men selv i sammenligningen med de sprog, vi ellers plejer at sammenligne os med, er vi bagud. Hos Alexandra Instituttet arbejder vi målrettet på at ændre på det faktum og har det seneste år haft fokus på at udvikle modeller og resurser til at understøtte udviklingen af dansk NLP (natural language processing). Vi har altid et stort fokus på teknologi, men når det kommer til NLP, så er det afgørende for kvaliteten af teknologien, at vi også inddrager lingvistik i ligningen, når vi udvikler vores modeller. I det her blogindlæg vil jeg, som datalingvist ved Alexandra Instituttet, invitere jer ind i datalingvistens univers.

Først en kort opsummering af sprogteknologi og NLP

Sprogteknologi er et tværfelt mellem datalogi og lingvistik, NLP er en gren af sprogteknologien, der i høj grad er baseret på AI (kunstig intelligens). NLP handler grundlæggende om at få computere til at genkende, forstå og producere naturlige sprog (som f.eks. dansk, engelsk eller kinesisk). Computeres evne til hurtigt og effektivt at overskue og analysere store datamængder er et stærkt redskab i arbejdet med NLP, men kun hvis vi giver computeren de rette sproglige værktøjer at arbejde med. Gode NLP-modeller er således et produkt af et ’samarbejde’ mellem menneske og computer.

Billedet er fra https://pxhere.com/ og illustrerer vores perception som væsentlig for vores forståelser — Forestiller illustrationen en vase eller to silhuetter ? — Det kan være begge dele, alt efter hvordan det anskues.

Sproget som værktøj

Men hvad er sprog egentlig helt præcis for en størrelse? Sproget er allemandseje og vores værktøj til at kommunikere med hinanden. Men når vi skal have computeren til at anvende sproget, så er det essentielt, at vi dykker ned og forstår, hvordan sproget konkret og fundamentalt virker.

Når vi anvender sproget, kan man, lidt groft skitseret sige, at vi opbygger ord (morfologi), sætter ordene sammen til sætninger (syntaks), og afkoder betydningen af disse sætninger (semantik). Men hvordan vi når til forståelsen af en given sætning, er ikke udelukkende summen af morfologi, syntaks og semantik. Inden for sprogvidenskaben opereres der med en distinktion mellem semantik og pragmatik — mellem betydning og mening. Semantikken er den disciplin af sprogvidenskaben, som beskriver betydningen af enhederne i det sproglige system, mens pragmatikken er den del, der bl.a. studerer indholdet, eller meningen, når sproget bliver brugt i den faktiske, mellemmenneskelige kommunikation[1].

Når vi taler, skriver, læser og lytter, så anvender og fortolker vi informationer på utallige planer, ofte helt ubevidst, fordi det er blevet os en vane. Vi er i stand til at zoome ind og fortolke ud fra grammatik og zoome ud og fortolke ud fra kontekst og vores viden om og kategorisering af verden. Vi lægger mening i begreberne, afkoder flertydigheder og markører som ironi, sarkasme, humor og andre implicitte informationer, og således forstår og anvender vi sproget. Og derfor vil NLP-modellerne være udfordrede, idet de ikke tolker ytringer med samme kognitive bevidsthed som vi mennesker. Men hvis vi har opmærksomhed på dette, kan vi, med de rette sproglige værktøjer, arbejde hen imod at overføre denne sproglige intuition til computeren, så den kan udnytte sin kapacitet til at overskue store datamængder og regne på de sproglige data i store målestok.

Maskinlæringens statistike metoder

Inden for moderne NLP anvender man maskinlæring, et studie af algoritmer og statistiske modeller som computersystemer bruger til at udføre en bestemt opgave uden at bruge eksplicitte instruktioner, men i stedet mønstre og inferens, dvs. udleder elementer eller forhold, der ikke fremgår direkte af sammenhængen. Statistiske metoder indeholder som udgangspunkt ingen sproglig information, men tager store mængder af data, f.eks. tekst, som input og skaber en statistisk repræsentation af disse data. Herefter kan man bruge den statistiske repræsentation til at analysere nye tekster.

Når en sprogmodel skal trænes, anvender maskinlærings-specialisterne mange forskellige metoder og værktøjer, og en stor del af de nyeste værktøjer er flersprogede og kan anvendes på kryds og tværs af mange forskellige sprog. Det gælder bl.a. Googles Multilingual BERT. En af fordelene ved disse modeller er den store datamængde, der ligger bag. Adgang til store datamængder er essentiel i udviklingen af sprogteknologi. Både Googles Multilingual BERT og den danske BERT er bl.a. brugt til træning af Alexandra Instituttets danske NER-model (NER står for Named Entity Recognition, og er identifikation af person, organisation og lokation), med gode resultater.

Men mange NLP-modeller kræver også danske sprogdata for at give de mest præcise resultater. I følgende tre sætninger ’ich bin froh’, ’je suis heureux’ og ’jeg er glad’ er det ligetil at sætte lighedstegn imellem, fordi sprogene har mange fællesstræk, herunder har de bl.a. alle tre ordinddeling og ordstillingen i sætningerne er den samme. Men sproget kan ikke i alle tilfælde oversættes i 1:1-forhold. Og det er langt fra altid tilfældet, at vi i vores sprogbrug kommunikerer så enkelt og utvetydigt. Vores sprogbrug er som oftest langt mere nuanceret, varieret og til tider kompliceret og subtilt, og ofte også sammenkoblet med det samfund og den kultur, sproget har sit virke i. I en dansk kontekst har mange f.eks. en tendens til sprogligt at pakke ytringer lidt ind med forskellige sproglige virkemidler, så budskaber ikke leveres så kontant. Vi kan godt, som de sprogbrugere og sprogmagere vi er i sprogsamfundene, afkode hinandens sprog, men det gør det potentielt sværere for maskinen. Der skal i hvert fald ses tilpas mange eksempler på sprogbrugen, for at maskinen kan afkode det, og det bliver kun sværere, jo mere kompliceret og varieret sprogbrugen er.

Behov for autentiske data — og i store mængder

Der kæves således autentiske sprogdata — i massevis — for at lave gode NLP-modeller, og ikke kun tænkte og måske lidt forsimplede eksempler, for sådan skriver vi sjældent. Som forarbejde til modelarbejdet skal et udpluk af disse sprogdata analyseres og opmærkes med metadata i foruddefinerede kategorier, alt efter modellens mission, så modellen kan trænes til at genkende og selv lave kategoriopdelingen på ikke, af modellen, set sprogdata. Det kan f.eks. være opmærkning af ordklasser (POS), syntaks (Dependency Treebank), egennavne (Named Entity), domæne, emneord, følelser eller positive, neutrale eller negative ytringer. Ifølge rapporten SPROGTEK2018 mangler der sprogteknologer med ekspertviden om det danske sprog[2], og forståelse for både nuancerne i sproglige ytringer og konsekvenserne af de sproglige analyser i forhold til modellerne. Således at de sproglige analyser, der indlæres i NLP-modellerne, bliver eksakte og konsistente, for ikke at modellerne forvirres af modsatrettede instrukser.

For at en model skal kunne anvendes på et sprogdomæne, skal den først se tilstrækkeligt mange eksempler på sprogbrugen inden for det domæne. Hvis vi f.eks. vil have en model til at genkende, når vi udtaler os hhv. positivt eller negativt om noget, skal modellen se et tilpas stort antal eksempler, med en tilpas variation og nuancering, for at kunne anvendes på, og lykkes med, sprogdata, som den ikke før er stødt på.

Data er ikke bare data

Der stilles store krav til de datasæt, som de statistiske metoder trænes på, da modellerne typisk vil genspejle datasættets indhold. Statistiske systemer er i høj grad bundet til den teksttype og det emneområde, som de er trænet på. Det kan således være vanskeligt at opnå et godt resultat, hvis man f.eks. anvender et system, som er trænet på sprogdata fra sociale medier, til at analysere sprogdata fra avisartikler. Og er der bias i datasættet — dvs. uhensigtsmæssige skævheder der kan være diskriminerende — vil disse bias kunne risikere at blive overført til modellen. Hvis en bestemt nationalitet konsekvent omtales negativt i datasættet, vil modellen risikere ikke at kunne skelne, om det er p.g.a. den konkrete nationalitet eller blot de ord der nævnes i forbindelse med den, der er årsagen til den negative tolkning.

Sproglige tolkninger hvor maskinen kan komme til kort

Og kan man overhovedet sætte sig helt fri af egne bias? Som lingvist er jeg meget bevidst om at forholde mig så objektivt som muligt i mine sproglige analyser. Men til tider kan det være svært at foretage objektive analyser og distancere sig fra samfundsmæssige og kulturelle normer. Men i annoteringsprocessen er det vigtigt at holde hovedet koldt, og egne holdninger ude, især f.eks. i træningen af en sentimentanalyse-model, der skal genkende positive, negative (eller neutrale) ytringer, herunder også subjektivitet eller objektivitet. Er følgende twitterpost positivt ladet?

“@spisekammeret var vært, da @JakobEllemann og erhvervslivets top her til aften underskrev en erklæring, der bl.a. handler om at sætte fokus på fremtidens bæredygtige materialer og produkter.”

Jeg tror de fleste ville være tilbøjelige til at vurdere posten positiv, i hvert fald alle der går ind for bæredygtighed, men konkret sprogligt, er der ikke noget, der indikerer, at der er tale om en positiv ytring. Det er vores tolkning og holdning, der får os til at tolke ytringen som positiv — med mindre man er bæredygtighedsmodstander, og så kan det være den tolkes som det modsatte. Men ytringen er altså helt neutral — og objektiv — afsenderens egen holdning afsløres ikke i ytringen. I visse tilfælde melder behovet sig altså for at tænke aspekt ind, for nogen vil en ytring være positiv, for andre negativ. Sådan forholder det sig også i følgende ytring:

“DF havde stor fremgang ved sidste valg.”

Positivt for DF, negativt for f.eks. Enhedslisten. Men essensen er, at det ikke tydeliggøres i ytringen, hvad afsenders vinkel er, hvorfor den må tolkes som en objektiv, og dermed i denne sammenhæng, neutral ytring.

Derimod forholder det sig anderledes i følgende eksempel, hvor afsender (diskret) markerer sin holding:

“Kan vi sammen arbejde på, at al strøm leveres fra vindkraft, og at vores servere kører på bæredygtig energi? #fremtidenergrøn”

Her angiver formuleringen “kan vi sammen arbejde på”, at der er tale om en positiv ytring, også selv om der ikke er nogen direkte positive ord til stede. Det er ønsket om at nå et mål sammen, der indikerer, at der ligger en positiv holding bag afsenderens ytring. Ytringen skal dermed tolkes som positiv og subjektiv, idet afsender viser sin holdning.

I det sidste eksempel kan et ellers umiddelbart positivt adjektiv snyde lidt:

“Hvornår er man egentlig nedslidt? Det er et godt spørgsmål i disse tider. @aeldresagen har her en artikel der kommer ind på emnet #dkpol #fv19”

Adjektivet godt, der ellers normalt indikerer at noget skal tolkes positivt, optræder her i tæt forbindelse med ordet spørgsmål — et godt spørgsmål er ikke det samme som et vidunderligt spørgsmål, men derimod det samme som et relevant spørgsmål. Ytringen skal derfor tolkes som neutral, men også subjektiv, idet det er afsenders vurdering at spørgsmålet er relevant.

Der er ingen garanti for, at alle disse nuancer ved sproget endnu fanges af modellerne, men ved at føde alle disse retvisende eksempler til modellerne, og derigennem vise dem sprogets anvendelse og mening igen og igen, i forskellige situationer, danner vi baggrund for at de med statistikker og alogritmer lærer sproget, og dets anvendelse og mening at kende. Som med kunstig intelligens i andre sammenhænge, skal kunstig intelligens i NLP også ses som en støtte til den menneskelige analyse. Og hvis en del af analyserne kan automatiseres, frigives kapacitet til at vi kan foretage yderligere analyser. Og det gode tværfaglige samarbejde mellem dataloger, specialister i maskinlæring og lingvister er essentiel i denne udvikling.

Kig forbi vores github(https://github.com/alexandrainst/danlp), for at se de modeller vi har stillet til rådighed.

Tak fordi du læste med!

[1] Dansk Grammatik, Christensen og Christensen 2019, side 284–285

[2] SPROGTEK2018, side 10

--

--