Du er her: Forside Temaer Sprogteknologi Stavekontrol

Stavekontrol

Du kan takke sprogteknologien for at der kommer røde og grønne streger frem under dine stavefejl i Word.

Du kan takke sprogteknologien for at der kommer røde (og grønne eller blå) streger frem under dine stavefejl i Word.

Af Philip Diderichsen

Hvordan foregår det?

Avancerede stavekontroller virker typisk ved at ændre på ordene i en tekst og derefter at regne på om nogle af disse ændrede ordformer skulle være korrekte i konteksten i modsætning til de oprindelige ord.

Egentlig burde computeren bare kunne slå alle ordene op i en stor ordliste og sætte en rød streg hvis ordet ikke findes i listen. Men det er ikke tilstrækkeligt. På den måde ville man kun finde de stavefejl der ikke samtidig er korrekte i andre sammenhænge. Men stavefejl er netop ofte korrekte i andre sammenhænge.

Tag fx præsens-r’et i slutningen af ord hvor det ikke kan høres – et af de absolut hyppigste staveproblemer i dansk. I sætningen Han ændre sig aldrig er ændre en stavefejl, men ikke i sætningen Han vil aldrig ændre sig (hvor infinitivformen ændre er korrekt).

Derfor hjælper det ikke at se om ordet skulle mangle i en ordliste med korrekte former. Der skal lidt mere til.

En ordliste er ikke nok

Stavekontrollen er nødt til at lave og vurdere alternative ordformer for hvert eneste ord i en sætning – den kan jo netop ikke vide på forhånd hvilke korrekte staveformer der tilfældigvis er stavefejl i den givne sammenhæng.

De alternativer der dannes, er nødt til at ligge relativt tæt på ordet selv, for ellers bliver der hurtigt så mange alternativer at computeren får svært ved at følge med og i værste fald simpelthen går ned.

Ordalternativerne laves typisk ved at ændre det oprindelige ord på fire forskellige måder: ved tilføjelse af et bogstav (fx ændre til ændrer), sletning af et bogstav (fx ændre til ændr), udskiftning af et bogstav med et andet (fx ændre til andre) eller ombytning af to bogstaver (fx ændre til ænder).

Selv moderne stavekontroller kan kun lave et begrænset antal af disse ændringer pr. ord – hver af ændringerne skal jo i princippet laves for hvert bogstav i ordet med hvert bogstav i alfabetet, så antallet af nye former kan hurtigt eksplodere.

Hver resulterende form skal tjekkes i systemets ordliste over korrekte ordformer.

For hver af de resulterende former der er korrekte, må stavekontrollen nu beregne en sandsynlighed for at kunne levere en liste med de mest sandsynlige – og først da kan den afgøre om det oprindelige ord har nogen stor sandsynlighed for at være stavet forkert.

Hvis det oprindelige ord selv er blandt de mest sandsynlige staveformer i konteksten, vil stavekontrollen ikke sætte nogen rød streg.

Beregningen af ords sandsynlighed

Selve beregningen af det mest sandsynlige ord på et givet ords plads foregår typisk som følger. Nedenfor ses en illustration af de mange muligheder stavekontrollen skal bedømme.

Øverste række er de oprindelige ord i sætningen (find én fejl!), rækkerne under indeholder alternative former – hver af dem kun én ændring væk fra den oprindelige.

Hanændresigaldrig
Ha ændrer sige aldring
Hans ændr si
Hun andre syg
Hin ænder sag

...

...

...

Da stavekontrollen ikke bare kan slå ordene op i en liste (de er alle hver for sig korrekte former), må den bruge ordenes kontekst.

I denne sammenhæng betyder det konkret at den opererer med sekvenser af de forskellige ordalternativer, ikke bare enkeltordene. Og i stedet for egentlig at slå op beregner den sandsynligheden for forskellige sekvenser.

I forhold til det ovenstående eksempel vil der altså fx blive regnet på følgende sekvenser:

  • Han ændre sig aldrig (dvs. den oprindelige sætning)
  • Han ændrer sig aldrig
  • Han andre sig aldrig
  • Ha ændre sig aldrig
  • Hin ændre sig aldrig
  • Han ændre sag aldrig
  • Han ændre sig aldring
  • ...

Bemærk at der i de ovenstående eksempler højst ændres ét ord i forhold til den oprindelige sætning. Det er en måde at begrænse antallet af ordsekvenser på, som nogle stavekontroller benytter sig af.

Lidt ligesom da der blev lavet ordalternativer, bliver der altså her lavet en mængde sætningsalternativer. Hver af disse tekststrenge skal der findes en sandsynlighed for, så de kan blive rangeret og den mest sandsynlige valgt.

Beregning af sætningers sandsynlighed

Sandsynligheden for et givet sætningsalternativ beregnes vha. en teknik der er gennemgående i statistisk baseret sprogteknologi. I det ovenstående eksempel ville man således finde sandsynligheden for sætningen Han ændre sig aldrig ved at finde sandsynligheden for hver af rækkerne i følgende skema:

<start> Han ændre
Han ændre sig
ændre sig aldrig
sig aldrig <slut>

Altså de individuelle sandsynligheder for <start> Han ændre osv. (<start> og <slut> markerer sætningsgrænserne).

Hver af disse sandsynligheder ganges til sidst med hinanden for at komme frem til én samlet sandsynlighed for hele sætningen. Man kombinerer på denne måde sandsynligheden af alle ordene i sætningen i deres umiddelbare kontekst.

En sprogmodel

De enkelte sandsynligheder slår man op i en liste der er lavet ved at tælle hver treordssekvens i et stort tekstkorpus. Sådan en liste kalder man en sprogmodel – en central komponent i statistisk sprogteknologi, der går igen i andre sprogteknologiske værktøjer.

Når stavekontrollen på denne måde har fundet sandsynligheden af hver alternativ sætningskandidat, sorterer den sætningerne efter sandsynlighed og ser om der er nogen af dem der har en markant højere sandsynlighed end de andre.

I dette tilfælde kunne det meget vel være Han ændrer sig aldrig, og stavekontrollen kan så markere forskellen på denne alternativsætning og den oprindelige med en rød streg og foreslå den korrekte form plus evt. nogle af de næstmest sandsynlige i en "mente du"-funktion.

Er sandsynligheden for en af alternativsætningerne ekstra høj, kan stavekontrollen evt. også straks sætte den korrekte form ind vha. en autokorrekturfunktion.

Grammatisk analyse

Nogle stavekontroller udnytter udover de nævnte teknikker også avancerede grammatiske analyser i jagten på stave- og grammatikfejl.

Fx blev der for nogle år siden udviklet en dansk stave- og grammatikkontrol til ordblinde (et tilføjelsesprogram til Word kaldet OrdRet), der var overlegen i forhold til Words egen.

Den fungerede ved at slå ordene op og give dem ordklasser, hvorefter hvert ord blev tjekket mod grammatiske retteregler såsom "hvis det aktuelle ord kan være et verbum i præsens (fx hører) og der er et hjælpeverbum i præsens eller præteritum (fx kan) til venstre for det i sætningen, så foreslå infinitiv som alternativ form" – som i sætningen Han kan ikke hører.

OrdRet er dog ikke længere på markedet. Afløseren, Retmig.dk, fungerer ved at man kopierer sin tekst ind på hjemmesiden og får hjælp til at få den rettet.

Gymnasieelevers brug af stavekontrolNutidens gymnasieelever, som til forskel fra tidligere er vokset op med computere, tekstbehandlingsprogrammer og stavekontrol, læser især korrektur for de fejltyper som stavekontrollen fanger. De læser i mindre grad korrektur for de fejltyper som stavekontrollen ikke kan fange. Det viser Mie Bligaard Christoffersen i sin ph.d.-afhandling.

Blandt kommercielle stave- og grammatikkontroller for dansk er den der findes i Microsoft Word, den mest brugte i dag.

Der findes dog andre udbydere, fx det svenske firma Oribi, og til stavekontrollen i OpenOffice-pakken (et open source-alternativ til Microsofts Officepakke) har Foreningen for Frit Tilgængelige Sprogværktøjer leveret programudvidelsen Stavekontrolden for dansk.

Teksten er en redigeret version af artiklen "Stavekontrol" af Philip Diderichsen, bragt i Nyt fra Sprognævnet 2015/1.
NB! Sprogteknologi udvikler sig hurtigtLigesom al anden teknologi udvikler sprogteknologien sig i en rasende fart, så når denne artikel læses, har nye generationer af teknologien allerede set dagens lys. Redaktionen og forfatterne tager derfor forbehold for at oplysningerne i dette tema kan være forældede. Temaet er redigeret og offentliggjort i maj 2018.