Nimisõnafraaside automaatne tuvastamine eestikeelses elektroonilises tekstis

Lõpparuanne
6. novembril 1998

1. Sissejuhatus

Käesoleva projekti eesmärgiks oli koostada DOS-i keskkonnas töötav programm - ESTNP (testversioon), mille sisendiks on morfoloogiliselt analüüsitud ja eesti keele kitsenduste grammatika kohaselt ühestatud eestikeelne tekst, väljundiks aga tekstis tuvastatud nimisõnafraaside loetelu. Eeskujuks võeti inglise keele kitsenduste grammatikal põhinev nimisõnafraaside tuvastaja [Voutilainen].

2. Märgendid

Nimisõnafraaside eristamiseks varustatakse iga sõna märgendiga, mis näitab, kas sõna on nimisõnafraasi põhi, ees- või järeltäiend või see sõna ei kuulu nimisõnafraasi. Eestikeelses tekstis nimisõnafraaside tuvastaja märgendid on analoogilised kitsenduste grammatikal põhineval inglise keele nimisõnafraaside tuvastaja märgenditega:

@V - verb, selle märgendiga varustatakse kõik verbid, sõltumata sellest, kas nad on finiitsed või infiniitsed ning millist süntaktilist funktsiooni nad lauses kannavad. See märgend omistatakse ka infiniitsetele täienditele (näiteks: soov õppida jne). Ühend- ja väljendverbid analüüsitakse sõnahaaval ja verbi märgend lisatakse ainult verbidele.

@NH - nimisõnafraasi põhi, selle märgendiga märgendatakse nimi-, ase- ja arvsõnalised alused, sihitised, määrused, öeldistäited ja kaassõnafraasi kuuluvad nimisõnafraaside põhjad.

@N> - eestäiend, selle märgendiga märgendatakse nimi-, ase-, arv-, omadus- ja määrsõnalised eestäiendid.

@<N - järeltäiend, selle märgendiga märgendatakse nimi-, ase-, arv-, omadus- ja määrsõnalised järeltäiendid.

@XX - muu, selle märgendiga varustatakse sõnad, mis ei kuulu nimisõnafraasi (v.a verbid ja sidendid), näiteks omadus- ja määrsõnalised määrused, omadussõnalised öeldistäited ja kaassõnad (ka siis, kui kaassõnafraas täiendab nimisõnafraasi, sest seda ei ole ilma semantilise informatsioonita võimalik kindlaks määrata).

@J - sidend

3. Reeglid

Eestikeelses tekstis nimisõnafraaside märgendamiseks kitsenduste grammatika analüsaatorit kasutades on kaks võimalust: esiteks, kirjutada uued spetsiaalsed reeglid nimisõnafraaside määramiseks, või teiseks, kasutada ära praegu olemasolev eesti keele kitsenduste grammatika (ESTKG) süntaksianalüsaator [Müürisep 1998], mille märgendite hulk on palju rikkalikum ja seega ka analüüs detailsem, ning leida selle väljundist nimisõnafraasid.

3.1. Spetsiaalsete reeglite kasutamine

Projekti alustades lähtusime eeldusest, et tuleb koostada uus, spetsiaalne nimisõnafraasigrammatika, mis kasutab uut märgendite süsteemi. Oletasime, et selleks saab enamasti ära kasutada olemasolevat süntaksigrammatikat: osa reegleid (mis tegelevad nimisõnafraasidega) lihtsalt kirjutada ümber teisele kujule ja lisada mõningaid uusi. Töö käigus ilmnesid aga raskused, mida on lähemalt kirjeldatud I etapi aruandes. Eksperiment näitas, et sel teel saadud nimisõnafraaside tuvastaja ei ole piisavalt efektiivne. Sel viisil koostatud grammatika koosneb 14 märgendite lisamise reeglist ja 170 kitsendusest. Läbiviidud eksperimendid näitasid, et pärast märgendite lisamist on sõnal keskmiselt 2,5 märgendit, 32% sõnadest on ühesed. Pärast kitsenduste rakendamist saab ainult 73% sõnadest ühese analüüsi, sealhulgas on ka verbid, sidendid ja määrsõnalised määrused. Kokkuvõttes jõudsime järeldusele, et nimisõnafraaside leidmiseks see grammatika ei sobi, ja otsustasime nimisõnafraaside märgendamiseks kasutada eesti keele kitsenduste grammatika süntaksianalüsaatorit.

3.2. ESTKG süntaksianalüsaatori kasutamine nimisõnafraaside leidmisel

3.2.1. Märgendid

ESTKG süntaksianalüsaator kasutab järgmisi märgendeid:

A. Öeldise märgendid

@+FMV - finiitne öeldis
@-FMV - infiniitne öeldis
@+FCV - olema liitaegades, modaalverbid jt ahelverbides, finiitne vorm
@-FCV - olema liitaegades, modaalverbid jt ahelverbides, infiniitne vorm
@NEG - verbi eitus

B. Põhja märgendid

@SUBJ - subjekt
@OBJ - objekt
@PRD - predikatiiv
@ADVL - adverbiaal, ka fraasiadverbiaal

C. Laiendite märgendid

@AN> - adjektiiv eestäiendina
@<AN - adjektiiv järeltäiendina
@AD> - adverb eestäiendina
@<AD - adverb järeltäiendina
@PN> - kaassõna eestäiendina
@<PN - kaassõna järeltäiendina
@NN> - nimisõna eestäiendina
@<NN - nimisõna järeltäiendina
@VN> - partitsiip eestäiendina
@<VN - partitsiip järeltäiendina
@INF_N> - infinitiiv eestäiendina
@<INF_N - infinitiiv järeltäiendina
@<P - eessõnafraasi põhi
@P> - tagasõnafraasi põhi
@Q> - kvantori eeslaiend
@<Q - kvantori järellaiend

D. Muud märgendid

@X - ahelverbi komponent (nt mahti saama)
@J - sidend
@I - hüüatus
@??? - tundmatu sõna

3.2.2. Süntaksianalüsaatori töö tulemused

Tabelites 1 ja 2 on toodud statistilised andmed analüsaatori töö tulemuste kohta. Treeningkorpus A koosneb neljast ilukirjanduslikust tekstist, milles oli kokku 8140 süntaktiliselt analüüsitavat sõna. Treeningkorpuseks B on samad tekstid, kuid automaatselt morfoloogiliselt ühestatud. Selles korpuses on 99 tundmatut sõna ja automaatsel ühestamisel tehti 101 viga. Morfoloogilise ühestaja täpsus treeningkorpus B ühestamisel oli 87.34 % ja korrektsus 98.75% ning 89.54% sõnadest said ühese morfoloogilise tõlgenduse.

Testkorpus A koosneb 1992-sõnalisest ilukirjanduslikust tekstist, mis on käsitsi morfoloogiliselt ühestatud. Seda teksti ei ole analüsaatori väljatöötamisel kasutatud.

Testkorpuseks B on sama 1992-sõnaline tekst, mis on automaatselt morfoloogiliselt ühestatud. Selles korpuses on 7 tundmatut sõna ja automaatsel ühestamisel tehti 25 viga. Morfoloogilise ühestaja täpsus treeningkorpus B ühestamisel oli 87.62% ja korrektsus 98.74% ning 89.91% sõnadest said ühese morfoloogilise tõlgenduse.

Süntaksianalüsaatori grammatika koosneb praegu 165 märgendite lisamise reeglist ja 851 süntaktilisest kitsendusest, nende hulgas on 131 heuristilist kitsendust, mis tekitavad küll rohkem vigu, kuid nende osakaal märgendite eemaldamisel on küllaltki suur. Samuti on heuristiliste reeglite hulgas uuemad reeglid, mida ei ole veel jõutud piisavalt testida.

Märgendite lisamisel tekkis treeningkorpuses B 178 viga (korrektsus 97.81%), samal ajal A-korpuses oli vigu 8 (korrektsus 99.90%). B-korpuse vead tekkisid tundmatutele ja valesti ühestatud sõnadele märgendite lisamisel. Testkorpuses tekkis vigu vastavalt 28 (korrektsus 98.59%) ja 6 (korrektsus 99.70%)

Analüsaatori korrektsus ja täpsus treening- ja testkorpustel on toodud tabelis 1, märgendite jaotumine tabelis 2 ja sagedasemad mitmesuste tüübid tabelis 3.

  A harjutus A test B harjutus B test
Korrektsus 99,12% 98,12% 95,76% 96,58%
Täpsus 83,76% 85,00% 74,34% 76,52%

Tabel 1. Korrektsus ja täpsus.

  A harjutus A test B harjutus B test
1 85,70% 88,11% 79,80% 81,68%
2 10,82% 9,28% 13,79% 12,60%
3 2,96% 2,11% 4,64% 4,22%
4 0,45% 0,40% 1,45% 1,00%
5 0,06% 0,10% 0,26% 0,40%
6     0,06% 0,10%

Tabel 2. Märgendite jaotumine.

1 @<NN @ADVL 236
2 @ADVL @NN> 115
3 @NN> @OBJ 85
4 @<PN @ADVL 74
5 @<NN @ADVL @NN> 63
6 @-FMV @ADVL 62
7 @OBJ @SUBJ 60
8 @<NN @PRD @SUBJ 54
9 @NN> @SUBJ 43
  @<NN @SUBJ 42

Tabel 3. Sagedasemad mitmesused harjutuskorpuses A.

Nimisõnafraaside leidmisel ei ole olulised 4., 6. ja 7. märgendite kombinatsioon, teised mitmesused kanduvad ka nimisõnafraaside tuvastajale.

3.2.3. Teisendusreeglid

Süntaksianalüsaatori väljundi märgendid teisendatakse nimisõnafraaside tuvastaja ESTNP märgenditeks järgmiste reeglite abil:

Kui sõna on nimisõna, asenda märgendid @SUBJ, @OBJ, @PRD, @ADVL, @<P, @P> märgendiga @NH.

Kui sõna on asesõna, asenda märgendid @SUBJ, @OBJ, @PRD, @ADVL, @<P, @P> märgendiga @NH.

Kui sõna on arvsõna, asenda märgendid @SUBJ, @OBJ, @PRD, @ADVL, @<P, @P> märgendiga @NH.

Kui sõna on lühend, asenda märgendid @SUBJ, @OBJ, @PRD, @ADVL, @<P, @P> märgendiga @NH.

Kui sõna on verb, asenda märgendid @+FMV, @-FMV, @+FCV, @-FCV, @NEG, @SUBJ, @OBJ, @PRD, @ADVL, @<INF_N ja @INF_N> märgendiga @V.

Märgendid @AN>, @VN>, @NN>, @Q> ja @AD> asendada märgendiga @N>.

Märgendid @<AN, @<VN, @<NN, @<Q ja @<AD asendada märgendiga @<N.

Märgend @J jääb samaks.

Märgend @??? jääb samaks.

Ülejäänud süntaksianalüsaatori märgendid asendada märgendiga @XX.

Reeglid on kokkuvõtlikult esitatud tabelis 4.

4. Nimisõnafraaside tuvastaja algoritmi kirjeldus

Sisend. Programmi ESTNP sisendiks on morfoloogiliselt ühestatud tekst eesti keele kitsenduste grammatika ühestaja väljundile vastavas formaadis [Puolakainen 1998]. Sisendtekst võib olla ka automaatselt ühestatud, s.t osaliselt mitmene, kuid mida ühesem on sisend, seda täpsem on väljund.

Väljund. Programmil on kaks väljundit. 1) Standardväljundisse kirjutatakse kõik leitud nimisõnafraasid, iga fraas eraldi reale. Kui rida lõpeb sümboliga *, on selle fraasi süntaktiline analüüs ebaõnnestunud ja fraas võib olla vigane. 2) Faili nimelaiendiga .NPX kirjutatakse märgendatud sisendtekst.

Algoritm

1. samm. Tehakse sisendi süntaktiline analüüs eesti keele kitsenduste grammatika analüsaatori abil. Selleks kasutatakse reegleid failist GRAMMAR.RLE. Saadakse süntaktiliselt märgendatud tekst.

2. samm. Süntaktilised märgendid teisendatakse nimisõnafraaside tuvastaja märgenditeks vastavalt tabelile 4.

3. samm. Analüüsides märgendeid, väljastatakse fraasid ekraanile. Kui sõna on süntaktiliselt mitmene, kasutatakse tabelis 5 toodud teisendusi (mis on tuletatud mitmesuste statistilisest analüüsist). Koordineeriva sidesõna või kirjavahemärgiga eraldatud sõnad loetakse üheks fraasiks, kui

  1. koordinatsioon on eestäiendite vahel (nt elektri-, gaasi-, side- ja muud liinid)
  2. koordinatsioon on kahe põhja vahel nii, et viimasele põhjale ei eelne täiendit (nt teed ja liinid).

Fraasi piiri määravad:

Sõnaliik Selgitus Süntaktiline märgend NP märgend
_S_, _P_, _N_ card Nimi-, ase- ja põhiarvsõna @SUBJ, @OBJ, @PRD, @ADVL, @<P, @P> @NH
_S_ ,_P_, _N_ card Nimi-, ase- ja põhiarvsõna @NN>, @Q> @N>
_S_ ,_P_, _N_ card Nimi-, ase- ja põhiarvsõna @<NN, @<Q @<N
_A_ ,_P_, _N_ ord, _D_ Omadus-, ase-, järgarv- ja määrsõna @AN>, @VN>, @AD> @N>
_A_ ,_P_, _N_ ord, _D_ Omadus-, ase-, järgarv- ja määrsõna @<AN, @<VN, @<AD @<N
_A_ Omadussõna @PRD @XX
_A_, _D_, _N_ ord Omadus-, järgarv- ja määrsõna @ADVL @XX
_V_ Verb kõik märgendid @V
_J_ Sidesõna @J @J
_K_ Kaassõna kõik märgendid @XX
_I_, _X_ Hüüdsõna, verbi juurde kuuluv sõna kõik märgendid @XX

Tabel 4. Süntaktiliste märgendite teisendamine nimisõnafraaside tuvastaja ESTNP märgenditeks.

Mitmesus Lahend Selgitus
@N> @NH @N> eestäiend ja põhi ? eestäiend
@N> @NH @<N @NH ees- ja järeltäiend ning põhi ? põhi
@N> @<N @N> ees- ja järeltäiend ? eestäiend
@NH @<N @NH põhi ja järeltäiend ? põhi

Tabel 5. Mitmesuste teisendamine.

5. Vigade analüüs

Nimisõnafraaside tuvastajat ESTNP testiti 1000-sõnalisel juriidilisel tekstil (ekij5.cgd) ja 2000-sõnalisel ilukirjandustekstil (tkt0119.cgd), mis olid mõlemad käsitsi morfoloogiliselt ühestatud. Juriidilises tekstis nimisõnafraaside tuvastamisel tekkis vigu 14.2% ja ilukirjandustekstis 16.0%. Siin protsent näitab valesti leitud nimisõnafraaside osakaalu (näiteks kui programm liitis 2 nimisõnafraasi üheks, siis seda arvestati 2 veana).

Sagedasemad vead olid järgnevad:

1. Kõige sagedasem viga 1000-sõnalist juriidilist teksti analüüsides seisnes selles, et numbriga kirjutatud järgarvu järel olev punkt poolitas nimisõnafraasi; seda tüüpi vigu oli 10. Sellist viga on võimalik vältida lausepiiride eelneva märgendamisega analüüsitavas tekstis.

2. Ilukirjandusteksti analüüsi tüüpilisim viga seisneb selles, et ESTNP ei suuda eristada erinevaid määrusi. Näiteks lauses

et saaksin ikka oma puusärgis paradiisi

on ESTNP leidnud ühe fraasi: [oma puusärgis paradiisi].

Õige oleks aga kaks erinevat fraasi [oma puusärgis] [paradiisi].

Selliseid vigu tegi ESTNP 2000-sõnalist ilukirjandusteksti teksti analüüsides 16 ja juriidilist teksti analüüsides 2.

Tihti ei olegi ilma semantilise infota võimalik otsustada, kas sõna või fraas on nimisõnafraasi koosseisus või ei. Näiteks lauses

Tahtsin suure haamriga mehele pähe lüüa.

on leitud üks nimisõnafraas: [suure haamriga mehele];

peaks küll olema 2 nimisõnafraasi: [suure haamriga] ja [mehele].

Kuid lauses Andsin punase mütsiga lapsele kommi kuulub komitatiivis fraas eestäiendina nimisõnafraasi koosseisu.

3. Partitsiip tükeldab nimisõnafraasi või jääb partitsiiptäiend nimisõnafraasist lihtsalt välja. Seda tüüpi vigu oli juriidilises tekstis 5 ja ilukirjandustekstis samuti 5. Näiteks lausest

kui oli lühendatud tööpäev

on saadud nimisõnafraas [tööpäev], mitte [lühendatud tööpäev]

Ja näiteks lauses:

Lappisin nendest õue piiril oleva oja kaldale meetrikõrguse rinnatise.

on saadud nimisõnafraasid [nendest õue piiril] ja [oleva oja kaldale]; õige oleks aga [nendest] ja [õue piiril oleva oja kaldale]

Need vead olid tingitud vigasest sisendist: lühendatud oli analüüsitud kui _V_ ja oleva ei olnud saanud partitsiibi märgendit.

4. Määrus on ekslikult analüüsitud järeltäiendiks ja arvatud seega nimisõnafraasi koosseisu ilukirjandustekstis 11 juhul. Näiteks lauses

valan seal kõik bensiiniga üle

on leitud nimisõnafraas [kõik bensiiniga], kuid õige oleks [kõik] ja [bensiiniga] eraldi fraasidena.

5. Määrus on ekslikult analüüsitud eestäiendiks ja arvatud seega nimisõnafraasi koosseisu ilukirjandustekstis 6 juhul ja juriidilises tekstis 2 juhul. Näiteks lauses

koostasin kiiruga fiktiivse eelarve

on ESTNP leidnud ühe nimisõnafraasi [kiiruga fiktiivse eelarve], kuigi õige oleks kaks fraasi (määrus ja sihitis): [kiiruga] ja [fiktiivse eelarve].

6. Esineb ka eelnevatele vastupidiseid vigu – ees- või järeltäiend võib olla arvatud omaette fraasiks. Eestäiend on nimisõnafraasist eraldatud ilukirjandutekstis 3 juhul ja juriidilises tekstis 2 juhul, järeltäiend ilukirjandustekstis 5 juhul ja juriidilises tekstis 1 juhul. Näiteks fraas [senine ühendus avaliku teega] on analüüsitud kaheks fraasiks [senine ühendus] [avaliku teega].

Enamiku sellistest vigadest põhjustab mitteühene süntaktilise analüüsi väljund. Näiteks viimases näites on süntaksianalüüsil sõna teega jäänud mitteüheseks ja tal on määruse ning ees- ja järeltäiendi analüüsid.

6. Lisad aruandele

Käesolevale aruandele (fail Aruanne2.rtf) on lisatud järgmised failid:

ESTNP.EXE - eestikeelses elektroonilises tekstis nimisõnafraaside tuvastamise programm

GRAMMAR.RLE - süntaksianalüüsi reeglite fail

JUHEND.RTF - programmi ESTNP paigaldamis- ja kasutamisjuhend

LEX.EXE - programm, mis lisab morfoloogiliselt ühestatud sisendtekstile verbide transitiivsust/intransitiivsust näitavad märgendid, kui need puuduvad

LEX.LX - andmebaas, mida kasutab programm LEX.EXE

Näitefailid:

- sisend programmile ESTNP (juriidiline tekst)

- tekstis EKIJ5.CGD tuvastatud nimisõnafraasid

- sisend programmile ESTNP (ilukirjandustekst)

- tekstis TKT0119.CGD tuvastatud nimisõnafraasid

Kirjandus