En grammatisk tagger for bokmål og nynorsk


Taggerprosjektet, som ble påbegynt i april 1996, nærmer seg nå slutten. Dette prosjektet har hatt som mål å lage en automatisk morfosyntaktisk tagger for norsk (bokmål og nynorsk) og har utgjort til sammen syv årsverk. Det har hovedsakelig vært finansiert av Norges forskningsråd (tre årsverk), Dokumentasjonsprosjektet (to årsverk), Tekstlaboratoriet og det finske firmaet Lingsoft. Prosjektet vil bli avsluttet ved utgangen av desember.

Leder for prosjektet er Janne Bondi Johannessen, mens Kristin Hagen og Anders Nøklestad er ansatt som vitenskapelige assistenter. Lars Jørgen Tvedt har utført en god del programmering. Andre som har arbeidet eller arbeider på prosjektet i større og mindre grad, er Helge Hauglin, Kristian Emil Kristoffersen, Arne Martinus Lindstad, Jan Tore Lønning, Christian-Emil Ore og Diana Santos.

Arne Martinus Lindstad, Kristin Hagen og Anders Nøklestad

Arne Martinus Lindstad, Kristin Hagen og Anders Nøklestad


Hva er en automatisk tagger?

En automatisk, disambiguerende tagger er et program som skal kunne ta en hvilken som helst tekst, analysere den, og forsyne hvert eneste ord i teksten med en tagg som angir grammatisk informasjon som ordklasse, undergruppe, morfosyntaktiske trekk o a. Spesielt viktig er det at hvert ord bare får én tagg. Selv om det er mange ord i norsk som i utgangspunktet er flertydige (homonyme), bør altså taggeren klare å finne fram til den ene riktige analysen. Står den på ordet murer, som faktisk kan betegne fire forskjellige grammatiske ord (se nedenfor), skal den klare å velge ett.

"<murer>"
     "mur"   subst mask appell fl ub
     "mure"  subst fem appell fl ub
     "mure"  subst mask appell fl ub
     "mure"  verb pres 
     "murer" subst mask appell ent ub

Taggeren er en regelbasert tagger (i motsetning til en statistisk basert tagger), mer spesielt er den en såkalt føringsbasert (Constraint-Based) tagger. Denne typen har vært utviklet ved Universitetet i Helsinki, Finland, under ledelse av Fred Karlsson. En føringsbasert tagger er en tagger der det er laget lingvistisk baserte regler for hvert eneste disambigueringsvalg. Den bygger på dependensgrammatikk, hvilket i praksis vil si at taggeren ikke bygger opp fraser, men at alle valg gjøres på grunnlag av forholdet mellom enkeltord.


Taggerens enkelte deler

Utgangspunktet for taggingen er en ren tekstfil. Det stilles ingen spesielle krav til utseendet på fila - den kan godt ha overskrifter (av forskjellig format) og andre ting som kan gjøre teksten vanskelig å tolke for en datamaskin. Er teksten SGML-kodet, vil taggeren se bort fra dette. Taggeren består av disse delene:

1) Leksikalsk database og fullformsliste

Den leksikalske databasen består av Bokmålsordboka, Nynorskordboka, IBM-ordlistene for bokmål og nynorsk og lister over forkortelser, faste uttrykk, titler, nye ord og unormerte ord. I tillegg er det argumentstruktur på verbene, lagt til av Norkompleks-prosjektet ved NTNU. Alle ord har grammatiske koder, og på grunnlag av disse genereres fullformsordlister for bokmål og nynorsk. Fullformslistene er altså lister av oppslagsordene fra den leksikalske databasen samt alle deres fulle former når de er bøyd.

2) En preprosessor og multitagger

Preprosessoren skiller ut overskrifter på grunnlag av formkriterier som store bokstaver, blanke linjer på begge sider, antall ord på linja o a. Den gjenkjenner setninger, det vil si at den avgjør om f.eks. punktum er et setningsskilletegn eller en del av en forkortelse. Den gjenkjenner og merker datoer spesielt. Dessuten gjenkjenner den "koordinerte sammensetninger" og merker dem. (Eks: "etter- og videreutdanning"). Til slutt gjenkjenner og merker den faste uttrykk. (Eks: "i ny og ne").

Multitaggeren tar for seg teksten ord for ord. (Faste uttrykk, koordinerte sammensetninger o a regnes nå som enkle ord.) Hvert ord slås opp i en fullformsordlista. Hvert ord gis alle muligheter som fullformsordlista gir, uten at konteksten for ordet undersøkes. I tillegg kommer gjenkjenning og tagging av egennavn, dvs ord med store bokstaver som ikke finnes i fullformslista. Dessuten skjer gjenkjenning og merking av sammensetninger som ikke står i fullformslista. Dette blir gjort av et eget sammensetningsprogram som kort fortalt finner sisteleddet, slår det opp i fullformslista og får tagger herfra.

Her følger et eksempel på multitagget tekst (setningen "Forsvarsindustrien er frustrert over en stadig mistenkeliggjørelse fra politisk hold og i mediene."):

"<*forsvarsindustrien>"
          "forsvarsindustri" subst mask appell ent be
"<er>"
                  "være" verb pres <predik1> <predik2> <auxp>
"<frustrert>"
          "frustrere" adj <perf-part> mask fem ub ent <trans1>
          "frustrere" adj <perf-part> nøyt ub ent <trans1>
          "frustrere" verb perf-part <trans1>
"<over>"
          "over" prep
"<en>"
          "en" adv
          "en" det kvant mask ent
          "en" pron pers ent hum
          "ene" verb imp <trans1>
"<stadig>"
          "stadig" adj pos mask fem ub ent
          "stadig" adj pos nøyt ub ent
"<mistenkeliggjørelse>"
          "mistenkeliggjørelse" subst mask appell ent ub
	"<fra>"
	"fra" prep
"<politisk>"
          "politisk" adj pos mask fem ub ent
          "politisk" adj pos nøyt ub ent
"<hold>"
          "hold" subst nøyt appell ent ub
          "hold" subst nøyt appell fl ub
          "holde" verb imp <trans1> <trans11/på>
"<og>"
          "og" CLB konj
          "og" adv
          "og" konj
"<i>"
          "i" prep
"<mediene>"
          "medium" subst nøyt appell fl be
"<$.>"
          "$." CLB <PUNKT>

3) Morfologisk disambiguator

Den morfologiske disambiguatoren bruker regler (føringer) til å plukke ut den eller de korrekte lesningene, eller taggene, for hvert ord i teksten. Vi har benyttet et taggsett som vi har utviklet selv, men vi har forsøkt å holde oss til de kategorier som Norsk Referansegrammatikk (red: Jan Terje Faarlund, Svein Lie og Kjell Ivar Vannebo, 1997) anbefaler. Etter automatisk disambiguering ser setningen slik ut:

"<*forsvarsindustrien>"
          "forsvarsindustri" subst mask appell ent be
"<er>"
          "være" verb pres <predik1> <predik2> <auxp>
"<frustrert>" 
          "frustrere" verb perf-part <trans1>
"<over>"
          "over" prep
"<en>" 
          "en" det kvant mask ent
"<stadig>" 
          "stadig" adj pos mask fem ub ent
"<mistenkeliggjørelse>"
          "mistenkeliggjørelse" subst mask appell ent ub
"<fra>"
          "fra" prep
"<politisk>" 
          "politisk" adj pos nøyt ub ent
"<hold>" 
          "hold" subst nøyt appell ent ub
"<og>" 
          "og" konj
"<i>"
          "i" prep
"<mediene>"
          "medium" subst nøyt appell fl be
"<$.>"
          "$." CLB <PUNKT>

4) Morfosyntaktisk mapping

Alle lesninger som står igjen etter den morfologiske disamgigueringen i pkt 3, blir her gitt et sett av mulige syntaktiske tagger.

5) Syntaktisk disambiguator

Den syntaktiske funksjonen til hver gjenstående lesning av hvert enkelt ord blir disambiguert vha et nytt sett av regler. I motsetning til reglene som blir brukt i pkt 3, kan disse reglene disambiguere også på bakgrunn av syntaktisk, og ikke bare morfologisk, kontekst. Resultatet av syntaktisk disambiguering blir slik (den morfologiske informasjonen, som har blitt disambiguert før dette stadiet, er utelatt for å gi et mer oversiktlig format.):

"<*forsvarsindustrien>" @SUBJ 
"<er>"                  @FV
"<frustrert>"           @IV 
"<over>"                @ADV
"<en>"                  @DET> 
"<stadig>"              @ADJ> 
"<mistenkeliggjørelse>"	@<P-UTFYLL 
"<fra>"                 @ADV 
"<politisk>"            @ADJ> 
"<hold>"                @<P-UTFYLL 
"<og>"                  @KON 
"<i>"                   @ADV 
"<mediene>"             @<P-UTFYLL 


Statistikk/evaluering

Taggerens prestasjonsnivå kan måles vha den leksikalske funnraten ("recall"), som er et mål på hvor stor prosentandel av alle riktige lesninger som står igjen etter disambiguering, og presisjonen, som måler hvor mange av de lesningene som står igjen som er riktige.

Bokmålstaggeren har hittil oppnådd en leksikalsk funnrate på 99,2% og en presisjon på 94,8%. Nynorsktaggeren har for øyeblikket en funnrate på 98,8% og en presisjon på 92,7%.


Institusjoner som er involvert i arbeidet

Den leksikalske databasen og multitaggeren er resultatet av et samarbeid mellom Tekstlaboratoriet og Dokumentasjonsprosjektet. Den disambiguerende taggeren er Tekstlaboratoriets arbeid.


Tilgang og bruk

Taggeren er utviklet vha programvare fra det finske firmaet Lingsoft. Dette firmaet vil ha de kommersielle rettighetene til taggeren. Men Tekstlaboratoriet/Universitetet i Oslo har anledning til å la taggeren brukes fritt til forskningsformål over hele landet. Vi har allerede begynt tagging av våre egne tekster, og lager også et grensesnitt for enkel bruk av dem.


Elektroniske adresser

Man kan selv prøve sammensetningsanalysatoren ved å logge seg inn på http://dina.uio.no/cgi-bin/tagger/fuge. Multitaggeren kan testes ved gå til http://dina.uio.no/cgi-bin/tagger/www_mtag og skrive inn noen setninger eller sende en liten tekstfil.

Kristin Hagen, Janne Bondi Johannessen og Anders Nøklestad


[Neste | Innhold | Tekstlab]


16. desember 1998, AN, <anders.noklestad@ilf.uio.no>