Foredrag på MONS 8, Tromsø, 20. november 1999.
Publisert i:
Westvik, O.J. (ed.) Nordlyd: Tromsø University working papers of
language and linguistics No 28, 214-228.
Automatisk korrekturlesning er et komplisert foretakende, i likhet med andre former for maskinell skrivestøtte, jf. vår artikkel 'Datamaskinell skrivestøtte' (De Smedt og Rosén 1999a). Noen av vanskelighetene som er involvert, illustreres av (1).
(1) *Er korrekturlesningsevnen di god?
En menneskelig korrekturleser ville nok anta at en bokstav sannsynligvis er utelatt her, altså at di er en skrivefeil for din. Dagens maskinelle systemer vil derimot ikke reagere på di, siden det er et eksisterende ord. De er heller ikke i stand til å akseptere korrekturlesningsevnen med mindre hele denne sammensetningen finnes i systemets ordliste. Ved å tilføre lingvistisk kunnskap har SCARRIE-prosjektet prøvd å la maskinen reagere litt mer intelligent.
Utelatelse av en bokstav og andre vanlige skrivefeil fører i noen tilfeller til ikke-eksisterende ord, som når frydefullt staves frydefult; når slike feil forekommer, vil et automatisk korrekturlesningsprogram prøve å foreslå et ord som ligner på det feilstavede ordet som korreksjon. I andre tilfeller kan utelatelse av en bokstav føre til at et ord blir erstattet med et annet ord. Alle ord i (1) er korrekt skrevne som enkeltord betraktet, men det er likevel en feil i setningen. Denne typen feil er imidlertid mye vanskeligere å håndtere automatisk, for dette krever en grammatisk analyse av setningen.
En spesiell utfordring når det gjelder norsk er at den offisielle rettskrivningen tillater en stor grad av variasjon. Selv om systemet er i stand til å identifisere mangelen på kongruens som problemet i (1), er det ikke opplagt hvordan korreksjonen bør skje. Både korrekturlesningsevnen din og korrekturlesningsevna di er mulige korreksjoner. For at systemet skal kunne velge riktig mellom disse alternativene, bør det i tillegg til grammatisk informasjon ha informasjon om ulike stilverdier, slik at en korreksjon i tråd med forfatterens stil kan velges.
I norsk, som i de fleste germanske språk, er sammensetning svært produktiv. Som allerede nevnt er det et problem for automatiske systemer at nye sammensetninger som korrekturlesningsevne ikke finnes som oppslag i leksika. Skal et program greie å gjenkjenne slike produktive sammensetninger, må det ha en velutviklet komponent for sammensetningsanalyse.
I det følgende presenterer vi hvordan vi har prøvd å takle disse utfordringene i SCARRIE. I avsnitt 2 vil vi ta opp variasjon i bokmål og hvorfor det skaper problemer for automatisk korrekturlesning. I avsnitt 3 rapporterer vi om det omfattende arbeidet med leksikonet. Avsnitt 4 er særlig konsentrert om hvordan lingvistiske kunnskaper kan forbedre systemer for automatisk korrekturlesning. Vi diskuterer tre områder der slike kunnskaper kan bidra: morfologisk analyse, fonologisk analyse og syntaktisk analyse. Resultatene av testene som ble utført på SCARRIE ved prosjektslutt presenteres i avsnitt 5.
| (2) | enten | eller |
| annerledes | annleis | |
| melk | mjølk | |
| gress | gras | |
| løv | lauv | |
| fløte | fløyte |
Denne variasjonen gjelder ikke bare stammer, men også bøyningsendelser,
altså:
| (3) | enten | eller |
| melken | melka | |
| mjølken | mjølka | |
| skapene | skapa | |
| joiket | joika | |
| skjøv | skauv |
De fleste er klar over at det er en del valgmuligheter, men de færreste
er kanskje klar over hvor mange valgmuligheter det er. Det er ikke alltid
slik at det er bare to varianter å velge mellom. Særlig når
det gjelder bøyde former av sammensetninger, kan det bli svært
mange former, for eksempel:
| (4) | fløtemelken |
| fløtemelka | |
| fløytemelken | |
| fløytemelka | |
| fløtemjølken | |
| fløtemjølka | |
| fløytemjølken | |
| fløytemjølka |
Mange mener at denne variasjonsrikdommen er positiv. For noen kan det sikkert oppleves slik. Men for automatiske systemer betyr variasjonen en stor utfordring. Se for eksempel på følgende setning:
(5) De lavtlønte sykehjemsansatte ble helt utmattet og slukket tørsten med den surnete fløtemelken.
Denne setningen har hele 165.888 mulige stavemåter på bokmål. Ikke alle disse kombinasjoner av godkjente ordformer vil imidlertid utgjøre naturlige norske setninger. For eksempel er det lite sannsynlig at noen bokmålsforfattere vil velge kombinasjoner av former som i (6) og (7):
(6) De lavlønna sjukehjemsansatte blei heilt utmattet og slukka tørsten med den surnede fløtemjølken.
(7) De lågtlønnede sykeheimsansatte vart helt utmatta og sløkket tørsten med den surna fløytemelka.
I disse setningene er radikale og konservative ordformer kombinert hulter til bulter på en måte som ingen bokmålsbrukere vil finne naturlig. Men det er ikke bare sammenstillingen av ordformer som virker rart. Også noen av ordformene i seg selv vil de fleste reagere på, f.eks. lågtlønnede, der den radikale roten låg kombineres med den konservative endelsen -ede. Dette ordet har faktisk seksten korrekte skrivemåter i bokmål.
Hvordan skal et automatisk system kunne velge en korreksjon for et feilstavet ord når det kan være så mange riktige stavemåter? At bokmålsbrukere intuitivt velger former som passer sammen, må skyldes regler som er uskrevne men likevel akseptert i språksamfunnet. For at et automatisk system ikke skal velge former som passer dårlig til den stilen forfatteren bruker, er det derfor nødvendig å synliggjøre stilverdien til alle ord som har mer enn én godkjent skrivemåte. Når det er varianter av en ordform i bokmål, vil det nemlig nesten uten unntak være slik at variantene har ulik stilverdi på en skala fra radikalt til konservativt. SCARRIEs koding av ordformer er basert på fem grunnleggende stiler som forfatteren kan velge mellom:
For en mer utførlig beskrivelse av stilene i SCARRIE se De Smedt og Rosén (1999a). Vi er stor takk skyldig til Helge Dyvik, Jon Erik Hagen og Helge Sandøy for deres råd i forbindelse med stildefinisjonene. Vi vil også gjerne gjøre oppmerksom på at alle som har vært med på koding av stilene har norsk som morsmål.
| ordform | frekvens | stiltype | sammensetningskoder | erstatning | grammatisk kode |
| bok | 0 | N | N,sg,indef | N_f_sg_indef | |
| boka | 0 | C2 | N,sg | boken | N_f_sg_def |
| boken | 0 | C3 | N,sg | boka | N_fm_sg_def |
| bøkene | 0 | N | N,pl | N_f_pl_def | |
| bøker | 0 | N | N,pl,indef | N_f_pl_indef |
I dette eksemplet er det bare bøyningsendelsene i bestemt form entall som må ha erstatninger. Formen boka passer dårlig i konservativ stil, og boken passer dårlig i radikal stil. Begge formene går imidlertid bra i nøytral stil og i læreboknormalen, og de vil aldri erstattes der.
Vi kan også se på et eksempel der det er stammen som må
erstattes. Formen kvit er ganske radikal, og erstattes i både
konservativ og nøytral stil, som vist i tabell 2.
| kvit | 0 | C12 | Adj,pos,indef,sg | hvit | Adj_mf_pos_indef_sg |
| kvite | 0 | C12 | Adj,pos | hvite | Adj_mfn_pos_e |
| kvitere | 0 | C12 | Adj,sgpl | hvitere | Adj_mfn_comp_defindef_sgpl |
| kvitest | 0 | C12 | Adj,indef,sg | hvitest | Adj_mfn_sup_indef_sg |
| kviteste | 0 | C12 | Adj,sgpl | hviteste | Adj_mfn_sup_def_sgpl |
| kvitt | 0 | C12 | Adj,pos,indef,sg | hvitt | Adj_n_pos_indef_sg |
| kvitbok | 0 | C12 | N,sg,indef | hvitbok | N_f_sg_indef |
| kvitboka | 0 | C2 | N,sg | hvitboken | N_f_sg_def |
| kvitboka | 0 | C1 | N,sg | hvitboka | N_f_sg_def |
| kvitboken | 0 | C3 | N,sg | kvitboka | N_fm_sg_def |
| kvitboken | 0 | C12 | N,sg | hvitboken | N_fm_sg_def |
| kvitbøkene | 0 | C12 | N,pl | hvitbøkene | N_f_pl_def |
| kvitbøker | 0 | C12 | N,pl,indef | hvitbøker | N_f_pl_indef |
| botnskrap | 0 | C12 | V,pres,imp | bunnskrap | V_pres_imp_active_main_trans |
| botnskrapa | 0 | C2 | Adj,pos,part | bunnskrapede | Adj_mfn_pos_e |
| botnskrapa | 0 | C1 | Adj,pos,part | bunnskrapete | Adj_mfn_pos_e |
| botnskrapa | 0 | C12 | Adj,pos,indef,sg,part | bunnskrapet | Adj_mfn_pos_indef_sg |
| botnskrapa | 0 | C12 | V | bunnskrapet | V_pastpart_indic_passive_main_intrans |
| botnskrapa | 0 | C12 | V | bunnskrapet | V_pastpart_indic_active_main_trans |
| botnskrapa | 0 | C12 | V,pret | bunnskrapet | V_pret_indic_active_main_trans |
| botnskrape | 0 | C12 | V,inf | bunnskrape | V_inf_indic_active_main_trans |
| botnskrapede | 0 | C3 | Adj,pos,part | botnskrapa | Adj_mfn_pos_e |
| botnskrapede | 0 | C12 | Adj,pos,part | bunnskrapede | Adj_mfn_pos_e |
| botnskrapende | 0 | C12 | endepart | bunnskrapende | endepart_main_trans |
| botnskraper | 0 | C12 | V,pres | bunnskraper | V_pres_indic_active_main_trans |
| botnskrapes | 0 | C12 | V | bunnskrapes | V_infpres_indic_passive_main_intrans |
| botnskrapet | 0 | C3 | Adj,pos,indef,sg,part | botnskrapa | Adj_mfn_pos_indef_sg |
| botnskrapet | 0 | C3 | V | botnskrapa | V_pastpart_indic_passive_main_intrans |
| botnskrapet | 0 | C3 | V | botnskrapa | V_pastpart_indic_active_main_trans |
| botnskrapet | 0 | C3 | V,pret | botnskrapa | V_pret_indic_active_main_trans |
| botnskrapet | 0 | C12 | Adj,pos,indef,sg,part | bunnskrapet | Adj_mfn_pos_indef_sg |
| botnskrapet | 0 | C12 | V | bunnskrapet | V_pastpart_indic_passive_main_intrans |
| botnskrapet | 0 | C12 | V | bunnskrapet | V_pastpart_indic_active_main_trans |
| botnskrapet | 0 | C12 | V,pret | bunnskrapet | V_pret_indic_active_main_trans |
| botnskrapete | 0 | C3 | Adj,pos,part | botnskrapa | Adj_mfn_pos_e |
| botnskrapete | 0 | C2 | Adj,pos,part | bunnskrapede | Adj_mfn_pos_e |
| botnskrapete | 0 | C1 | Adj,pos,part | bunnskrapete | Adj_mfn_pos_e |
| botnskrapt | 0 | C3 | Adj,pos,indef,sg,part | botnskrapa | Adj_mfn_pos_indef_sg |
| botnskrapt | 0 | C3 | V | botnskrapa | V_pastpart_indic_passive_main_intrans |
| botnskrapt | 0 | C3 | V | botnskrapa | V_pastpart_indic_active_main_trans |
| botnskrapt | 0 | C12 | Adj,pos,indef,sg,part | bunnskrapt | Adj_mfn_pos_indef_sg |
| botnskrapt | 0 | C12 | V | bunnskrapt | V_pastpart_indic_passive_main_intrans |
| botnskrapt | 0 | C12 | V | bunnskrapt | V_pastpart_indic_active_main_trans |
| botnskrapte | 0 | C3 | Adj,pos,part | botnskrapa | Adj_mfn_pos_e |
| botnskrapte | 0 | C3 | V,pret | botnskrapa | V_pret_indic_active_main_trans |
| botnskrapte | 0 | C12 | Adj,pos,part | bunnskrapte | Adj_mfn_pos_e |
| botnskrapte | 0 | C12 | V,pret | bunnskrapte | V_pret_indic_active_main_trans |
(8) de av, fra, i lat. uttr som de jure, de facto og i fr uttr som eau de cologne
(9) et (lat.) i lat. uttr: og, &
Det gjør ikke så mye at disse oppslagene finnes i papirutgaven av boken, selv om det er vanskelig å argumentere for at disse er norske ord; de forekommer jo bare i flerordsuttrykk og har dermed aldri de kategoriene de står oppført med i norsk. Men at slik informasjon overføres til en elektronisk versjon av ordlisten er svært uheldig. Dette vil for eksempel føre til at en parser alltid vil prøve å analysere en frase som begynner med determinativen de som en preposisjonsfrase.
(10) idé, ideen, ideer, ideene.
(11) idé, idéen, idéer, idéene.
Denne rettskrivningsregel virker svært lite kjent, for det forekommer sjelden at forfattere utelater aksentene i disse ordene. Siden også de beste forfatterne skriver ordene slik, kan man diskutere om et stavekontrollprogram bør rette denne skrivemåten. Men offisiell rettskrivning må i alle fall tillates, og det er bare mulig hvis den offiselle rettskrivningen er representert i ordlisten.
| (12) |
|
Siden denne kombinasjon av kategorier og trekk tilfredsstiller en av sammensetningsreglene, analyseres hele ordet som en sammensetning, og den blir ikke markert av SCARRIE som et ukjent ord på tross av at den ikke finnes i ordlisten.
Det er imidlertid ikke til å unngå at en del stave- og skrivefeil blir analysert som sammensetninger. For eksempel er bildekomposisjonener en skrivefeil, men blir analysert som en sammensetning av SCARRIE: bilde+komposisjon+ener, altså som tre substantivstammer etter hverandre. Siden dette faktisk er en lovlig sammensetning, er det ikke mulig å forhindre denne analysen. Imidlertid produserer SCARRIE en liste av alle ord den har analysert som sammensetninger slik at brukeren kan sjekke denne listen for å se om noen skrivefeil har havnet her.
| (13) | cirka [864]
dirka [751] kirka [751] lirka [751] pirka [751] virka [751] |
Tallene etter ordene er mål på likhet med strengen sirka. Helt like strenger får 1000. I (13) ser vi at cirka har en klart høyere skåre enn de andre ordene. Dette er fordi sirka og cirka har samme transkripsjon. For en mer utførlig beskrivelse av mekanismen bak denne type korreksjon, henviser vi til vårt innlegg på MONS 7, 'SCARRIE: Automatisk korrekturlesning for skandinaviske språk' (Rosén og de Smedt 1998).
(14) Disse gutten ler.
Her kan man anta at forfatteren mente å skrive guttene.
Men alle ordene i setningen er riktige i isolasjon, så den eneste
måten å oppdage slike feil på er å foreta en syntaktisk
analyse av setningen. I SCARRIE har vi skrevet en grammatikk som gjør
det mulig å oppdage og automatisk korrigere slike feil i enkle setninger.
Her er noen eksempler på korreksjoner SCARRIE foreslår, tatt
fra testene som SCARRIE ble prøvet mot:
| (15) | Feil | Korreksjonsforslag |
| De nye prosjekter våre er interessante. | De nye prosjektene våre er interessante. | |
| Jeg vil gjerne administrerer testen. | Jeg vil gjerne administrere testen. | |
| Jeg har administrere testen. | Jeg har administrert testen. |
Når det gjelder stilerstatninger, er disse nært forbundet
med grammatisk korreksjon. Erstatning av en form med en annen stilvariant
kan nemlig forandre et ords grammatiske trekk. Dermed må SCARRIE
ikke bare foreta de erstatninger som er spesifisert i ordlisten, men også
sjekke om det erstattede ordet kongruerer med andre ord i setningen. Det
følgende eksemplet blir korrigert på forskjellige måter
i forskjellige stiler.
| (16) | Feil | Korreksjonsforslag | |
| Tilpassingsevna din er dårlig. | Tilpasningsevna di er dårlig. | i stil 1 | |
| Tilpasningsevnen din er dårlig. | i stil 2 | ||
| Tilpassingsevna di er dårlig. | i stil 3 og 4 |
I alle stilene blir altså kongruensfeilen korrigert. For en mer utførlig presentasjon av dette spesielle aspektet av prosjektet, se vårt innlegg ved NODALIDA 99 i Trondheim, 'Automatic proofreading for Norwegian: The challenges of lexical and grammatical variation' (De Smedt og Rosén 1999b).
Både SCARRIE og stavekontrollen til Microsoft Word 98 ble kjørt på en tekst på ca. 4000 ord tatt fra en lærebok i psykologi. Resultatene er oppsummert i figur 1.
Vi må gjøre oppmerksom på at særlig antall feil som ikke er funnet (altså kolonnene til høyre i figur 1) er noe misvisende. Vi har automatisk sammenlignet begge programmene med resultatet av profesjonell korrekturlesning utført av et menneske. I denne testen er det slik at alle forandringer som foretas av den profesjonelle korrekturleseren betraktes som rettelser, og alle forandringer som korrekturleseren ikke har gjort betraktes som feil. Etterpå gjorde vi en manuell analyse av den menneskelige korrekturleserens forandringer og fant ut at de fleste av dem ikke var av den typen som kan korrigeres automatisk. Bare 13 av korrekturleserens 114 forandringer gjaldt rettelse av ortografiske og typografiske feil. Hele 65% av disse forandringene var av en type som er vanskelige eller umulige å korrigere automatisk, f.eks. stilistiske forandringer og tegnsettingsfeil. På den andre siden er det også slik at den menneskelige korrekturleseren rett og slett gjorde en del feil. Dette gjør at resultatene ser litt verre ut enn de faktisk er, både for SCARRIE og for Word.
Det at SCARRIE fungerer mye bedre enn Word når det gjelder gjenkjenning
av korrekte ord er viktig. Det er irriterende for brukeren når stavekontrollprogrammet
stopper opp på riktig skrevne ord som det ikke kjenner igjen. En
av de viktigste grunnene til at SCARRIE fungerer bedre her, er at vi har
en såpass god analyse av sammensetninger. Noen eksempler av sammensetninger
fra teksten som Word ikke kjenner igjen, men som blir korrekt analysert
av SCARRIE er gjengitt i (17).
| (17) |
|
Når det gjelder å ikke bare finne feil, men også å rette dem, har vi fått resultatene som vises i figur 2.
Målet om å kunne finne og rette feil som krever grammatisk
analyse, er ambisiøst. Her kan vi ikke sammenligne med Word siden
Word ikke har denne funksjonen. Vi har kjørt SCARRIE på spesielt
konstruerte tekster og resultatene er presentert i tabell 5.
|
|
|
|
|
| NP-kongruens |
|
|
|
| VP-relaterte feil |
|
|
|
| stilbrudd |
|
|
|
De Smedt, Koenraad og Victoria Rosén. 1999b. 'Automatic proofreading for Norwegian: The challenges of lexical and grammatical variation'. Foredrag holdt ved NODALIDA99 i Trondheim, desember 1999.
Landrø, Marit Ingebjørg og Boye Wangensteen. 1993. Bokmålsordboka (2. utg.). Universitetsforlaget, Oslo.
Rosén, Victoria og Koenraad De Smedt. 1998. 'SCARRIE: Automatisk korrekturlesning for skandinaviske språk'. I: Jan Terje Faarlund, Brit Mæhlum, og Torbjørn Nordgård (red.), Mons 7: Utvalde artiklar frå det 7. Møtet Om Norsk Språk i Trondheim 1997, s. 197-210, Novus, Oslo.
NorKompLeks, hjemmeside: http://benoni.hf.ntnu.no/nkl/
SCARRIE, hjemmeside: http://ling.uib.no/~desmedt/scarrie/
Tekstlaboratoriet ved Universitetet i Oslo, hjemmeside: http://www.hf.uio.no/tekstlab/
Victoria Rosén
Seksjon for lingvistiske fag
Institutt for lingvistikk og litteraturvitenskap
Sydnesplassen 7, 5007 Bergen
victoria@uib.no
Koenraad de Smedt
Seksjon for lingvistiske fag
Institutt for lingvistikk og litteraturvitenskap
Sydnesplassen 7, 5007 Bergen
desmedt@uib.no