CST logo Center for Sprogteknologi
Centre for Language Technology

This page in english

Træning og brug af Brill-taggeren på danske tekster

ONTOQUERY, Januar 2000. Teknisk Rapport af Dorte Haltrup Hansen (stud. mag. CST) dorteh@hum.ku.dk

Bilag til rapporten

 

1 INTRODUKTION

Træningen af Brill-taggeren er foretaget som en del af OntoQuery-projektet. OntoQuery er et tværfagligt forskningsprojekt med deltagere fra RUC, DTU, CST, HHK og SDU. Det har til formål at udvikle teorier og metoder til indholds- baseret informationssøgning, og i den forbindelse er taggingen en præproces i den sproglige analyse.

Denne rapport indeholder beskrivelser af :

1) principperne bag Brill-taggeren, 2) PAROLE-korpuset som taggeren er trænet på, 3) træningsprocessen, 4) resultater fra test af taggeren samt 5) en brugervejledning.

 

  • BRILL-TAGGEREN1
  • POS-tagging (part of speech tagging) i traditionel forstand vil sige at tildele morfosyntaktiske kategorier til ord i en tekst.

    Brill-taggeren er en regel-baseret tagger der bliver trænet på et allerede tagget korpus,- fx et manuelt tagget korpus eller et semiautomatisk tagget korpus. Træningen foregår ved at taggeren automatisk lærer sig selv nogle regler hvorefter den er i stand til at tagge en ny og ukendt tekst.

    Under træningen arbejdes med to versioner af samme korpus: den oprindelige taggede version samt en version hvor alle taggene er fjernet. Først tildeles ordene i det "nøgne" korpus et tilfældigt tag. Derefter ændres taggene vha. transformationer på en måde så den transformationsregel der får det "nøgne" korpus til at nærme sig det oprindelige, får en højere vægtning; mens de regler der får korpus til at fjerne sig fra det oprindelige, bliver smidt væk. På den måde opbygges lister af ordnede regler,- leksikalske regler og kontekstuelle regler. De leksikalske regler bruges til at analysere ukendte ord, mens de kontekstuelle regler bruges til at fjerne syntaktisk flertydighed.

    Leksikalske regler kan se således ud:

    s deletesuf 1 N_GEN 378.125989593482 N det fgoodright ADJ 292.581302071428 ede hassuf 3 V_PAST 277.815201465202 N t fdeletesuf 1 V_PARTC_PAST 253.34276092672 N 1 fchar NUM 246.966666666667 r deletesuf 1 V_PRES 223.077780170032 ige hassuf 3 ADJ 214 N ig fhassuf 2 ADJ 194.875

    Den første regel betyder:

    "Hvis fjernelse af suffikset –s resulterer i et eksisterende ord, så ændr tagget (hvad det end er) til N_GEN".

    Anden regel siger:

    " Ændr N til ADJ når det aktuelle ord (med tagget N) optræder umiddelbart til højre for ordet det".

    Tallene efter reglerne er en form for vægtning af reglerne.

    Kontekstuelle regler kan se således ud:

    UNIK UKONJ PREV1OR2WD , PRON_PERS PRON_DEMO NEXTTAG ADJ PRON_DEMO PRON_PERS NEXTTAG V_PRES PRÆP ADV NEXTTAG PRÆP N V_INF PREVBIGRAM PRÆP UNIK

    Første regel betyder:

    " Ændr UNIK til UKONJ hvis et af de sidste to ord er et , (komma) ".

    Næste regel betyder:

    " Ændr PRON_PERS til PRON_DEMO hvis det næste tag er ADJ".

     

  • PAROLE
  • Brill-taggeren er trænet på en delmængde af PAROLE-korpuset. Dette (fremover kaldet PAROLE) er et morfosyntaktisk annoteret korpus. Det indeholder 250.209 løbende ord fordelt på 16062 sætninger fra 1553 tekstuddrag. Teksterne, der ligger i SGML-format, stammer fra DSL og Den Danske Ordbog.

    PAROLE er et EU-projekt der involverer 14 europæiske sprog. I projektet er der inden for hvert sprog opbygget korpora der følger en harmoniseret PAROLE-standard.

    I den danske del af PAROLE er korpuset analyseret morfologisk med DAN-TWOL-algoritmen. Den giver en eller flere alternative analyser til hvert ord, hvorefter den korrekte analyse manuelt er markeret <correct!>. Fx:

    "<*samtlige>" "samtlige" <*> A POS UK UT UB NOM <correct!> "<partier>" "parti" N INT PL UBEST NOM <correct!> "<i>" "i" U <adv> "i" U <prep> <correct!> "i" U <adv> "i" U <prep> "i" NUM <roman> "<*folketinget>" "folke#ting" <*> N INT SG BEST NOM <correct!>

    DAN-TWOLs tagsæt består af 338 forskellige analyser. I det endelige PAROLE-korpus er tagsættet transformeret til 151 tags der følger PAROLE-standarden. Samme tekstbid som ovenfor ser i PAROLE-formatet ud på flg. måde:

     

    <W lemma="samtlige" msd="ANP[CN][SP]U=[DI]U">Samtlige</W> <W lemma="parti" msd="NCNPU==I">partier</W> <W lemma="i" msd="SP">i</W> <W lemma="folketing" msd="NCNSU==D">Folketinget</W>

    ,- hvor ordet efter lemma er tekstordets lemma, bogstaver og tegn efter msd er tekstordets tag og selve tekstordet står sidst før </W>.

     

    BEARBEJDNING AF PAROLE-KORPUSET

    For at kunne træne taggeren på korpuset, har det været nødvendigt at bearbejde det. Først er tagsættet reduceret fra 151 til 43 tags efter Britt Kesons anvisning, da et mindre tagsæt giver bedre resultater. De nye tags består hovedsagelig af ordklassebetegnelser. For verbernes vedkommende indeholder tagget dog også tempus og modus. Det eneste ekstra træk jeg har valgt at taget med (ud over dem Keson har anvist), er genitiv (_GEN). Det er gjort med NP-genkendelse og NP-parsing i baghovedet. Jeg formoder at information af denne art kan afhjælpe flertydighed i afgrænsning af NP'er.

    Dernæst har jeg trukket ordform og kategori(tag) ud af PAROLE-korpuset og omformet korpus til det inputformat der kræves af taggeren. Dvs. en (hel-)sætning på hver linie, space omkring interpunktionstegn og tagget knyttet til ordet vha. /. Fx:

    Samtlige/ADJ partier/N i/PRÆP Folketinget/N … ./TEGN

    Også "ikke-sætninger" (dvs. størrelser der ikke er afsluttet af et punktum) er sat på separate linier. Det er fx:

    Overskrifter: AFSLØRET/V_PARTC_PAST TILFÆLDIGT/ADJ

    STØJSVAG/ADJ VENTILATOR/N

    Signaturer osv.: Af/PRÆP Vibeke/EGEN Scheibel/EGEN

    JP/EGEN

    Tekst/N :/TEGN Torsten/EGEN Cilleborg/EGEN

    Foto/N :/TEGN Flemming/EGEN Nielsen/EGEN

    Et "problem" der endnu er uløst er anførselstegn efter et punktum. Da det er tvetydigt hvor de hører til, er de også sat på separate linier.

    Man kan diskutere hvad man skal gøre ved fejl i korpus (tastefejl, stavefejl og skrivefejl). Man burde muligvis fjerne dem før træning af taggeren så de ikke slører en senere analyse. Det er ikke gjort her.

      4 TRÆNING AF BRILL-TAGGEREN

    Efter bearbejdning af korpus starter træningen. Først har jeg delt korpus i et træningskorpus (90%) og et testkorpus (10%). Det er selvfølgelig kun i situationer hvor man er interesseret i at teste taggerens performans, at man behøver et testkorpus. Er man ikke interesseret i at tjekke taggerens fejlprocent og fejltyper automatisk, kan man træne taggeren på hele korpus.

    Derefter har jeg fulgt Brills anvisninger for træningen. Træningen består i at der automatisk bliver lavet en række leksika og genereret transformationsregler. På en HP 9000/785 med HP–UX 10.20 (400 MHz) tager det ca. 30 timer at finde de 400 leksikalske regler og ca. 16 timer at finde de 350 kontekstuelle regler. Når taggeren er trænet én gang, er den klar til brug. Da tager det 15 sek. at tagge 28698 ord.

     

    VEJEN TIL DE BEDSTE RESULTATER

    Taggeren blev først trænet på træningskorpusets 261.904 ord og derefter testet på testkorpusets 28.698 ord. Det gav en fejlprocent på 3,86,- dvs. at 96,14 % af testkorpusets ord fik den rette analyse. I et forsøg på at få fejlprocenten længere ned blev de tydeligste fejl kategoriseret. Det viste sig at de to "hovedsyndere" var ukendte ord (64% af fejlene) samt ord der begynder med stort bogstav (28% af fejlene).

    For at afhjælpe problemet med de ukendte ord blev der lavet en træning som inkluderede Scarrie-ordbogen (166864 ordformer). Desværre gav det ikke nogen forbedring,- tværtimod. Fejlprocenten blev nu 3,9 (vs. tidligere 3,86 %). Grunden er nok at taggeren ikke er designet til at inkludere andre ord end dem den finder i korpus. Det er muligt at tilføje nye ord men kun i form af et nyt korpus.

    Derfor var næste tiltag at alle store bogstaver efter punktum i korpus blev ændret til små bogstaver. Dette gav en lille forbedring,- fejlprocenten kom nu ned på 3,5; som desværre ikke var den forventede nedgang. Da over 28 % af fejlene stammede fra ord med stort begyndelsesbogstav, var det forventede resultat at fejlprocenten gik ned med ca. 1 %.

    I et sidste forsøg blev alle store bogstaver ændret til små, hvorved fejlprocenten igen gik op til 3,9.

     

    Altså:

    1. forsøg 3,86 % fejl

    2. forsøg (træning m. Scarrie-ordbogen) 3,9 % fejl

    3. forsøg (stort bogstav efter punktum ændres til lille) 3,5 % fejl

    4. forsøg (alle store bogstaver til små) 3, 9 % fejl

    Fejlene i det hidtil bedste forsøg (nr. 3) blev derfor kategoriseret.

    Det tyder på at det ikke er de store bogstaver i sig selv der giver problemer, men derimod egennavne generelt. 33,5 % af fejlene stammer fra problemer med egennavne,- enten skulle tagget have været EGEN (egennavn) ellers har ordet fejlagtigt fået tagget EGEN.

    Man kan sige at en oplagt måde at forbedre taggingen på ville være at redigere i transformationsreglerne eller at tilføje helt nye regler. Ved at gøre det risikerer man dog at lave nye uoverskuelige fejl. Problemet er dels at reglerne er ordnede og dels at ingen fejl er fuldstændig systematiske. Derfor har jeg afholdt mig fra dette.

    Forsøg på forbedringer er stoppet her. Ved en senere træning kunne man se på definitionen af egennavne i PAROLE-korpuset. Et navn er nemlig ikke altid et egennavn fordi det er stavet med stort i PAROLE. Hvis ordet fx findes som substativ, bliver det kaldt substantiv også selvom der i konteksten er tale om et navn. Fx:

    Mogenstrup/EGEN Grusgrav/N

    Det/PRON_DEMO kongelige/ADJ Teater/N

    On/EGEN the/UL Air/EGEN

     

    1. RESULTATER FRA DEN FÆRDIGTRÆNEDE TAGGER
    2. Eric Brill skriver at hans tagger giver 97,2 % korrekte analyser når den er trænet på 600.000 ord og alle ord i testmaterialet er kendt af taggeren. I dette forsøg fås (mindst) 98,5 % korrekte analyser når taggeren er trænet på 260.000 ord der alle er kendte af taggeren. Forskellen må bl.a. ligge i at der bruges forskellige tagsæt. Forsøget er ikke omtalt tidligere, da jeg ikke anser det for interessant ifht. taggerens fremtidige opgave hvor man ikke kan gå ud fra at alle ord er kendte. Videre skriver Brill at han får 96,5 % korrekte analyser når taggeren er trænet på 950.000 ord fra Penn Treebank, samt at 85 % af alle ukendte ord bliver gættet. I dette forsøg er resultatet næsten det samme: 96,5 % af ordene får den korrekte analyse, dog bliver kun ca. 80 % af alle ukendte ord gættet.

      Disse tal forudsætter at det materiale man vil have tagget, er korrekt "tokenized". Dvs. at hver "token" (ordform, tal, forkortelser, tegn, symboler o.lign. ) er adskilt af et mellemrum. Hvis teksten ikke er korrekt "tokenized", kan fx tegn som skrives lige efter et ord give problemer. Hvis tegnet ikke er skilt fra ordet med et mellemrum, kan man ikke slå ordet op i ordbogen. Modsat hører tegn nogle gange med til ordet (fx forkortelsespunktummer) så ordet ikke findes i ordbogen uden det afsluttende tegn (punktummet).

       

      ET EKSEMPEL

      Som illustration for hvordan taggeren klarer en tekst fra et specifikt domæne hvor en del ord må forventes at være ukendte, har jeg tagget "A-vitamin-artiklen" fra Den Store Danske Encyklopædi. Artiklen består af 378 ord (incl. interpunktionstegn) som er indtastet og tagget manuelt. Samme artikel er derefter tagget med Brill-taggeren hvorefter de to versioner er sammenlignet. 10 steder giver Brill-taggeren en forkert analyse hvilket resulterer i en fejlprocent på 2,7,- dvs. 97,3 % af teksten er analyseret korrekt. Man skal nok ikke lægge for meget i at fejlprocenten er mindre end i det hidtil bedste forsøg. Testmaterialet er så lille at 3,8 ord kan få fejlraten til at svinge 1%. Derfor vil det kræve mere testning for at få et realistisk billede af hvordan taggeren opfører sig på et nyt domæne.

      Nedenfor ses en sætning fra A-vitamin artiklen,- først uden tags, derefter tagget med Brill-taggeren og sidst er det forklaret hvad taggeren har gjort ved hver token:

      ·

      A-vitaminsyre ( retinsyre , tretinoin ) anvendes i cremer til medicinsk behandling af bumser ( akne ) .

      ·

      a-vitaminsyre/N (/TEGN retinsyre/N ,/TEGN tretinoin/N )/TEGN anvendes/V_INF

      i/PRÆP cremer/N til/PRÆP medicinsk/ADJ behandling/N af/PRÆP bumser/N

      (/TEGN akne/N )/TEGN ./TEGN

      · Ö a-vitaminsyre/N ordet findes ikke i leksikon men taggeren gætter korrekt at det er

      et substantiv (N)

      Ö

      (/TEGN taggeren kender tegnet og giver der derfor det rette tag

      Ö

      retinsyre/N ordet findes ikke i leksikon men taggeren gætter korrekt at det er et substantiv (N) Ö ,/TEGN taggeren kender tegnet og giver der derfor det rette tag Ö tretinoin/N ordet findes ikke i leksikon men taggeren gætter korrekt at det er et substantiv (N)

      Ö

      )/TEGN taggeren kender tegnet og giver der derfor det rette tag

      -

      anvendes/V_INF i ordbogen findes kun infinitivformen at ordet derfor gives det forkerte tag Ö i/PRÆP iflg. leksikon kan ordet have flg. tags: PRÆP, ADV, PERS_PRON, FORK, N. Ud af disse alternativer gættes den korrekte Ö cremer/N taggeren kender ordet og giver derfor det rette tag Ö til/PRÆP iflg. leksikon kan ordet have flg. tags: PRÆP, ADV, UKONJ. Ud af disse alternativer gættes den korrekte Ö medicinsk/ADJ taggeren kender ordet og giver derfor det rette tag Ö

      behandling/N taggeren kender ordet og giver derfor det rette tag Ö af/PRÆP iflg. leksikon kan ordet have flg. tags: PRÆP, ADV. Ud af disse alternativer gættes den korrekte Ö bumser/N iflg. leksikon kan ordet have flg. tags: V_PRES, N. Ud af disse alternativer gættes den korrekte

      Ö

      (/TEGN taggeren kender tegnet og giver der derfor det rette tag Ö akne/N ordet findes ikke i leksikon men taggeren gætter korrekt at det er et substantiv (N) Ö )/TEGN taggeren kender tegnet og giver der derfor det rette tag Ö ./TEGN taggeren kender tegnet og giver der derfor det rette tag

      Det er vigtigt at man ikke henledes til at tro at fejlen i eksempelsætningen og fejlene i Bilag 10 er repræsentative. Som tidligere sagt er dette testmateriale så lille at det ikke kan danne grundlag for eksplicitte regler til taggerens regelsæt.

       

    3. BRUGERVEJLEDNING
    4. Brill-taggeren downloades som en programpakke,- en tar-fil. Når den er pakket ud, ligger programfilerne i et net af direktorier. Det sted jeg refererer til som hjemmedirektoriet, er niveauet over "RULE_BASED_TAGGER_V1.14".

      Direktoriet "Brill_tagger" er organiseret på flg. måde:

      Underdirektorier: Filer:

      doc brill.manual

      rapport

      parole

      parole.korpus

      parole test.korpus

      træningskorpus

      PROG.dif

      PROG.første.store.til.lille

      PROG.split


      Brill_tagger

      programmer PROG.split.sætn

      PROG.red_tag

      PROG.token_til_sætn

      BIGBIGRAMLIST

      trained_tagger CONTEXTUALRULEFILE

      FINAL.LEXICON.concat

      LEXRULEOUTFILE

      RULE_BASED_TAGGER_V1.14 …..

      Rapporten her samt manualen fra Bilag 4 ligger i direktoriet "doc". Det originale PAROLE-korpus "parole.korpus" samt de bearbejdede versioner af korpuset ligger i direktoriet "parole". De forskellige Perl-scripts til bla. at bearbejde korpuset med ligger i "programmer". Og selve den trænede tagger består af de sidste to direktorier "trained_tagger" og "RULE_BASED_TAGGER_V1.14".

      Dette afsnit er inddelt i 3 punkter: først en vejledning i brug af taggeren, derefter anvisning af hvad man gør hvis man vil lave ændringer eller forbedringer af taggeren, og sidst en udførlig beskrivelse af de forskellige faser i træningen af taggeren.

       

      BRUG AF TAGGEREN

      Som beskrevet tidligere skal det korpus eller den tekst man vil have tagget have et bestemt format: der skal være en (hel-)sætning på hver linie, og der skal være space omkring interpunktionstegn. Først skal teksten "tokenizes" og bagefter bruges programmerne PROG.token.til.sætn og PROG.første.store.til.lille der ligger i under direktoriet "programmer".

      Derefter sættes taggeren i gang som anført i Bilag 4 under afsnittet "Tagging med Brill-taggeren":

      Stå i direktoriet RULE_BASED_TAGGER_V1.14/Bin_and_Data/. Start taggeren ved at skrive: tagger ../../trained_tagger/FINAL.LEXICON ../../ trained_tagger/CORPUS ../../trained_tagger/BIGBIGRAMLIST ../../ trained_tagger/LEXRULEOUTFILE ../../ trained_tagger/CONTEXT-RULEFILE > ../../ trained_tagger/CORPUS-TAGGED INPUT = CORPUS det korpus der skal tagges (+ de 4 filer fra "trained_tagger) OUTPUT = CORPUS-TAGGED samme korpus nu tagget

      Der skal altså bruges et utagget korpus eller tekst (CORPUS) samt de fire filer fra underdirektoriet "trained_tagger". Outputet er et tagget korpus (CORPUS_TAG-GED).

      Det tager 15 sek. at tagge 28.698 ord.

       

      ÆNDRINGER & FORBEDRINGER AF TAGGEREN

      Der findes forskellige måder at ændre taggeren på. Måske ønsker man ikke samme tagsæt som det taggeren er trænet med nu. Det kunne være at man ønskede at have flere træk med eller (fx for verberne) at have færre med. Man går da ind i det oprindelige PAROLE-korpus ( parole/parole.korpus) og laver taggene om. Det kan fx gøres med programmet "PROG.red_tags" fra underdirektoriet programmer. Her betyder X det oprindelige PAROLE-tag og Y det tag man ønsker det lavet om til:

      $linie =~ s/X/Y/;

      Så køres programmerne PROG.split, PROG.split.sætn og PROG.første.store.til.lil-le fra underdirektoriet "programmer" og til sidst træner man taggeren igen som anført i Bilag 4.

      En anden mulighed ville være at ændre PAROLEs definition på egennavne. Igen ændres der i det oprindelige korpus hvorefter en ny træning foretages.

      Brill skriver i sine README-filer at der er to måder at modificere taggeren på. Hvis man vil have tagget et nyt korpus, kan man tilføje korpusets ord som lister til taggeren. Formodningen er at kendskab til nye ords eksistens og omgivelser kan hjælpe taggeren. I mit forsøg gav det (desværre) ingen effekt. Det man i stedet kan gøre, er at tilføje oplysninger til ordbogen FINAL.LEXICON. Man kan tilføje nye ord med deres kategori (tag). Man skal blot være opmærksom på at et ord kan have flere forskellige tags. Ordbogen er organiseret så det mest frekvente tag står først. Fx:

      så ADV V_PAST ADJ UKONJ

      ,- hvilket betyder at ordet kan have 4 forskellige tags: ADV, V_PAST, ADJ, og UKONJ og at ADV er det tag der er hyppigst brugt.

      I den trænede version af taggeren her er fx tilføjet tegn og symboler som taggeren ikke kendte, samt en række ord fra Scarrie-ordbogen.

      I tilfælde hvor man ikke behøver en absolut analyse, kan man lave en "n-best-tagging". Da kobles et statistisk modul til som i tvivlstilfælde kan tildele flere analyser til ordene.

      De lige nævnte forbedringer tage udgangspunkt i det eksisterende taggede PAROLE-korpus. En anden måde at forbedre taggeren på kunne være at lave en "domænespecifik" tagger. Problemet er at man har brug for et præ-tagget korpus til at træne taggeren på. Ved at bruge den "generelle" tagger på et "domænespecifikt" materiale kan man opbygge et nyt tagget korpus. Dette skal så korrigeres hvorefter man kan træne taggeren på ny. På den måde opnår man en domænespecifik tagger. Det er dog temmelig tidskrævende at skulle gennemlæse og evt. korrigere et større tekstmateriale.

       

      EN UDFØRLIG BRUGERVEJLEDNING I TRÆNING AF TAGGEREN

      Under træningen af taggeren følges punkterne i Bilag 4 (eller i doc/brill.manual) slavisk. Punkterne er lavet så man kan bruge "cut and paste",- dvs. at man ikke behøver at indtaste alle kommandoer manuelt, og at man dermed undgår (irriterende) tastefejl.

      I dette afsnit uddybes punkterne "Træning af Brill-taggeren" fra Bilag 4 og der gives eksempler på format og indhold af de forskellige filer som taggeren genererer.

      Først deles træningskorpuset i 2 lige store dele. Ud fra den første del læres de leksikalske regler, og fra den anden del læres en række kontekstuelle regler.

      Derefter opbygges et leksikon over alle ordformer i træningsleksikonet (BIGWORDLIST). Det består af ordform og frekvens. Fx:

      , 15768 . 12763 og 6653 i 6582 at 5654 er 4575 det 4568

      Så laves en bigramliste over alle ordpar i træningskorpuset (BIGBIGRAMLIST). Fx fra sætningen:

      "a-vitamin , fedtopløselig vitamin , der i kosten findes i flere former"

      Fås:

      a-vitamin , , fedtopløselig fedtopløselig vitamin vitamin , , der der i i kosten kosten findes findes i i flere flere former

      Sidst laves et leksikon bestående af ordform, tag samt frekvens fra den første halvdel af træningskorpuset (SMALLWORDTAGLIST). Fx:

      , TEGN 7819 . TEGN 6292 og SKONJ 3303 i PRÆP 3254 at UNIK 1582 er V_PRES 2331 det PRON_PERS 1588

      Udfra disse leksika konstrueres en række leksikalske regler (LEXRULEOUTFILE). Fx:

      s deletesuf 1 N_GEN 378.125989593482 N det fgoodright ADJ 292.581302071428 ede hassuf 3 V_PAST 277.815201465202 N t fdeletesuf 1 V_PARTC_PAST 253.34276092672 N 1 fchar NUM 246.966666666667 r deletesuf 1 V_PRES 223.077780170032 ige hassuf 3 ADJ 214 N ig fhassuf 2 ADJ 194.875

      Den første regel betyder: "Hvis fjernelse af suffikset –s resulterer i et eksisterende ord, så ændr tagget (hvad det end er) til N_GEN". Anden regel siger: " Ændr N til ADJ når det det aktuelle ord (med tagget N) optræder umiddelbart til højre for ordet det".

      De leksikalske regler bruges i taggingen til at gætte kategorien på ukendte ord.

      Næste trin i træningen er opbygning af et leksikon bestående af alle ordformer med tags fra første del af træningskorpus (TRAINING.LEXICON).Fx:

      Fyns EGEN_GEN travtilskuers N_GEN uld N biskop N festivalerne N gennemførlige ADJ Faurschou EGEN

      Dernæst konstrueres et "dummy-korpus". Så vidt jeg kan forstå, er det 2. delkorpus som først får "skrællet" alle tags af og derefter får tildelt tags udfra de opbyggede leksika og de leksikalske regler. Fx:

      de hævder , at Ruslands vej til demokrati går gennem diktatur .

      Bliver til:

      de/PRON_DEMO hævder/V_PRES ,/TEGN at/UNIK Ruslands/EGEN_GEN vej/N til/PRÆP demokrati/N går/V_PRES gennem/PRÆP diktatur/N ./TEGN

      Som man kan se laver taggeren fejl (allerede) her. "de/PRON_DEMO" skulle have været "de/PRON_PERS". Jeg kan desværre ikke overskue hvilke konsekvenser det har.

      Ud fra "dummy-korpuset" og træningsleksikonet læres de kontekstuelle regler. Fx:

      UNIK UKONJ PREV1OR2WD , PRON_PERS PRON_DEMO NEXTTAG ADJ PRON_DEMO PRON_PERS NEXTTAG V_PRES PRÆP ADV NEXTTAG PRÆP N V_INF PREVBIGRAM PRÆP UNIK

       

      Første regel betyder: " Ændr UNIK til UKONJ hvis et af de sidste to ord er et

      , (komma) ". Næste regel betyder: " Ændr PRON_PERS til PRON_DEMO hvis det næste tag er ADJ".

      Så er taggeren færdigtrænet.

       

       

    5. KONKLUSION

    Brill-taggeren er en overskuelig tagger der er meget let at træne og bruge. Dens processeringstid er hurtig hvilket gør den anvendelig til store tekstmængder. Det tager ca. 50 timer at træne den på en HP 9000/785 med HP-UX 10.20 (400 MHz) og 15 sek. at tagge 28.000 ord.

    Endvidere har den en acceptabel lille fejlprocent (3,5%) når tagsættet er tilpas lille. Denne fejlprocent er fuld på højde med fejlraten for andre produkter på markedet. Taggeren har også en forholdsvis god evne til at gætte den morfosyntaktiske kategori på ukendte ord (80%),- en evne som selvfølgelig er nødvendig men ikke triviel.

       


    Blå linie
    Emil Holms Kanal 2, building 22, 3, DK-2300 Copenhagen S