ESTMORF(1) - eesti keele morfoloogiline analüsaator ja süntesaator koos
oletamis-mooduliga
1. ESTMORFi
programmipaketi failid
3.1. Morfoloogilise
analüsaatori sisend
3.2 Morfoloogilise
analüsaatori väljund
3.3 Morfoloogilise
süntesaatori sisend
3.4 Morfoloogilise
süntesaatori väljund
4. ESTMORFis
kasutatavad lühendid
4.1 Sõnaliigid, mida
ESTMORF eristab
4.2
Noomenikategooriate lühendid
4.3 Verbikategooriate
lühendid
5. Tundmatud sümbolid,
tundmatud sõnad
5.2 Morf.
analüsaatori sisendsümbolid
8. Analüüsi
oletamis-algoritmi üldkirjeldus
9. Sünteesi
oletamis-algoritmi üldkirjeldus
10. Teadaolevad vead
ja puudused
10.1 Süntesaatori
vead ja puudused
10.2 Analüsaatori
vead ja puudused
Käesolev kirjeldab eesti keele morfoloogilist analüsaatorit versioon 32.04.00.00, millesse on lisatud nn. oletamise moodul. Oletaja lisamine tähendab seda, et sõnade puhul, mis puuduvad analüsaatori sõnastikus või mis pole produktiivsete reeglite alusel tuletatavad tuletised ja/või liitsõnad, rakendatakse teatud oletuslikke meetodeid, et nendegi puhul analüüsi korral määrata algvormi tüve ja morfoloogilisi kategooriaid; sünteesi korral aga sünteesitavat vormi. Sellise oletamise puhul muidugi analüüsitavate ja sünteesitavate sõnade hulk suureneb, kuid tulemuste täpsus halveneb.
eesti.dct kasutatav sõnastik
eesti.udr kasutaja-sõnastiku näidisfail
estmorf.exe morf. analüsaator DOSis kasutamiseks
txt2wrd.exe tavalise tekstifaili teisendamiseks kujule ‘sõna real’
baltic.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule
html.cnv täpitähtede teisendusfail html-kujult Filosofti sisemisele kujule
baltic-h.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule; nn. hanejalad-jutumärgid « ja » teisendatakse Filosofti sisemisele kujule
baltic-k.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule; nn. koma-jutumärgid „ ja “ teisendatakse Filosofti sisemisele kujule
balt_tst.txt testfail balti kooditabelis esitatud sõnade analüüsiks
html_tst.txt testfail html-kujul esitatud sõnade analüüsiks
Soovitav on kõik ESTMORFi kasutamiseks vajalikud failid panna samasse kataloogi ja selle kataloogi nimi lisada keskkonnamuutujasse PATH. Sel juhul leiab ESTMORF sõnastiku eesti.dct ja teisendusfaili baltic.cnv, html.cnv vms ise üles, ilma et peaks neid käsurealt ette andma.
ESTMORFi saab kasutada kas morfoloogilise analüsaatorina või süntesaatorina, sõltuvalt käsurealt ette antavast lipust. Kummalgi juhul eeldab ESTMORF erinevat sisendit, andes ka erineva väljundi.
Morfoloogiline analüsaator on programm, mis sõna vormist lähtudes määrab selle sõna struktuuri (nt. tüvi, järelliide, lõpp), sõnaliigi ja käände või pöörde.
Morf. süntesaator teeb vastupidist sellele, mida teeb morf. analüsaator. Lähtudes sõna algvormist ja grammatilisest infost – sõnaliigist, käändest või pöördest - määrab morf. süntesaator selle sõna konkreetse muutevormi.
ESTMORFi morf. süntesaator ja analüsaator ei ole siiski päris teineteise pöördprogrammid: analüsaator annab väljundisse sõna struktuuri, süntesaator tahab aga sisendisse saada struktureerimata algvormi.
ESTMORFi morf. süntesaator teeb iga sisendiks oleva algvormi puhul algul kindlaks selle struktuuri (nt. lihtsõna, tuletis, liitsõna) ja sõnaliigi ning kontrollib, kas tegu on ikka algvormiga. Alles seejärel püütakse moodustada vorme, mida sisendfailis antud sõna juures nõutakse. Kui sõna struktuuri kindlakstegemisel eksitakse, siis ka genereeritavad vormid võivad olla valed. Selliste kahtluste puhul võiks kasutada testimise abivahendina morf. analüsaatori režiimi, mille väljundis on nii analüsaatori kui süntesaatori poolt oletatav sõna struktuur näha.
ESTMORF eeldab vaikimisi, et täpitähed on esitatud Balti kooditabeli kohaselt (Win 1257):
|
|
ASCII 16-ndkood |
ASCII 10-ndkood |
väike o tildega |
õ |
F5 |
245 |
väike a täppidega |
ä |
E4 |
228 |
väike o täppidega |
ö |
F6 |
246 |
väike u täppidega |
ü |
FC |
252 |
väike s katusega |
š |
F0 |
240 |
väike z katusega |
ž |
FE |
254 |
suur O tildega |
Õ |
D5 |
213 |
suur A täppidega |
Ä |
C4 |
196 |
suur O täppidega |
Ö |
D6 |
214 |
suur U täppidega |
Ü |
DC |
220 |
suur S katusega |
Š |
D0 |
208 |
suur Z katusega |
Ž |
DE |
222 |
Kui täpitähed on esitatud mingil muul kujul, tuleb käsurealt ette anda teisendustabeli nimi, nt. html-vormingu puhul html.cnv.
Kui käivitate ESTMORF -h või ESTMORF -?, siis saate juhise, kuidas ESTMORF-i kasutada:
[h:\]estmorf -h
Eesti keele morf analu'u's; su'ntaks:
estmorf [-h] [-d SON] [-u
UDR] [-c CNV] [-k PATH] [-o DIR] [-e .EXT]
[-{M|O|K|B|X|G}[z][f][v]] [FAILINIMI[, FAILINIMI, ...]]
SON on so~nastiku-fail (vaikimisi eesti.dct)
UDR on kasutajas~onastiku nimi (vaikimisi eesti.udr)
CNV on ta'pita'htede kodeeringufail (vaikimisi baltic.cnv)
DIR kataloog, kuhu panna va'ljundfailid
PATH kataloogid, kust so~nastikke ja teisend. tab. otsime
(vaikimisi keskkonnamuutujast PATH)
EXT on va'ljundfaili laiend (peab algama punktiga, vaikimisi '.mrf')
M morf. analu'saator, tundmatuid ei oleta
O morf. analu'saator, tundmatuid oletab
K morf. anal+oletaja+palatalistsioon jms
B lemmatiseerija
X soovitaja
G su'nteesija
z kuvab progressi
v versiooni-info
f so~nastike jms nimed ekraanile
Morf. analüsaatorist ja süntesaatorist tuleb allpool detailsemalt juttu. Lemmatiseerija-režiimis annab ESTMORF väljundisse kõik lemmad, mida antud sõnavormist saab moodustada; liitsõnade puhul ka osasõnade lemmad, nt:
peaminister
peaminister
pea
pidama
minister
Soovitaja-režiimis annab ESTMORF väljundisse hulga selliseid sõnu, mis on sisendisse antud (vigase) sõna sarnased korrektsed sõnad, nt:
sovitaja
suvitaja sobitaja soovitaja
Normaalselt käib morf. analüsaatori kasutamine järgmiselt:
ESTMORF -O
faili_nimi.laiend
See tähendab, et tulemused lähevad faili faili_nimi.MRF; et leitakse kõikvõimalikud analüüsivariandid; et vajadusel oletatakse, milline sõna analüüs võiks olla; et leitakse algvormitüved (lemmad).
Analüüsitavad sõnad võtab morf. analüsaator sisend-failist (nt. PROOV), milles iga sõna peab olema omaette real. Sõnade ümber ei tohi olla tühikuid, kuid võivad olla kirjavahemärgid. Kui sisendfailis on tühi rida, siis sellest edasi ESTMORF faili ei vaata. Resultaadid kirjutab ESTMORF väljund-faili, mille nimeks paneb <sisend-faili-nimi.MRF> (nt. PROOV.MRF).
Näited kasutamisest:
Olgu failis proov.txt ainult 1 sõna: poega.
Kui teeme: estmorf -M proov.txt, siis saame faili proov.mrf, milles on:
poega
poeg+0 //_S_ adt, sg p, //
pood+ga //_S_ sg kom, //
Ühe sõna analüüsi tulemus on lihtsaimal juhul järgmine.
<sõna>
<tüvi>+<lõpp> //<sõnaliik> <vormi nimetus> //
· <sõna> on sõna sellisena, nagu ta algselt esines
· <tüvi> on lemma e. algvormi tüvi
· <lõpp> on sõna lõpp, kusjuures mitmuse tunnus on temaga liitunud (nagu seda on käsitletud ka Ülle Viksi "Väikeses vormisõnastikus" (VVS)); partikkel GI/KI, kui ta esineb, on lihtsalt lõppu "kleepunud"; ka juhul, kui sõnal ei saagi lõppu olla (nt. hüüdsõnal), pannakse sõnale lõpp - nn. null-lõpp
· <sõnaliik> on sõnaliigi lühend
· <vormi nimetus> on noomeni või verbi vormi lühend (nagu ta ka VVS-is on; vt. VVS grammatika-köidet lk. 9)
Sõnal võib olla mitu õiget analüüsi. Sel juhul on erinevad <tüvi>+<lõpp> kombinatsioonid eri ridadel.
Kui ühele <tüvi>+<lõpp> kombinatsioonile vastab mitu <sõnaliiki>, siis on ka nemad eri ridadel.
Kui ühele lõpule vastab mitu <vormi nimetust>, siis on nad esitatud samal real kaldkriipsude (//) vahel.
Kui on tegemist liitmoodustisega, siis:
· Tüvi on eristatud eelnevast komponendist '_' märgiga;
· Lõpp on eristatud eelnevast komponendist '+' märgiga; nn. null-lõpp ongi '+0'
· Sufiks on eristatud eelnevast komponendist '=' märgiga.
· Lemmatüvi leitakse ainult viimase parempoolse komponendi alusel
'?' vorminime asemel tähendab, et käänet pole võimalik määrata.
Sõnade külge "kleepunud" sulud ja kirjavahemärgid jäetakse tulemuse-real ära.
Kui ESTMORF ei suuda sõna analüüsida, siis on tulemuseks:
<sõna>
####
Näited:
lood
lood+0 //_S_ sg n, //
lood+d //_S_ pl n, //
loog+d //_S_ pl n, //
lugu+d //_S_ pl n, //
loo+d //_V_ d, //
Dudajevi-meelne
Dudajevi_meelne+0 //_A_ sg n, //
alleshoidmine
alles_hoid=mine+0 //_S_ sg n, //
USA
USA // _Y_ ?, //
3aastast
3_aastane+t //_A_ sg p, //
lastekodukasvataja
laste_kodu_kasvataja+0 //_S_ sg g, sg n, //
elamisväärseid
ela=mis_väärne+id //_A_ pl p, //
vettehüpe
ve+tte_hüpe+0 //_S_ sg n, //
(Baltic News Service)
Baltic News Service+0 //_H_ sg n, //
Meeritsa
Meeritsa+0 //_H_ adt, sg g, sg n, sg p, //
Meerits+0 //_H_ sg g, //
ta.Miljonäre
ta.Miljonär+e //_S_ pl p, //
ta.Miljonäre+0 //_S_ adt, sg g, sg n, sg p, //
ettvõtte
ett_võte+0 //_S_ sg g, //
Koovit
Koovi+t //_H_ sg p, //
Koov+t //_H_ sg p, //
Koovit+0 //_H_ sg n, //
kidra
kidra+0 //_S_ adt, sg g, sg n, sg p, //
kidra+0 //_V_ o, //
Normaalselt käib morf. süntesatori käivitamine järgmiselt:
ESTMORF -Go
faili_nimi.laiend
See tähendab, et tulemused lähevad faili faili_nimi.MRF; et vajadusel oletatakse, milline sõna süntees võiks olla.
Sisendiks on fail, milles igal real on ühe sõna algvorm ja grammatiline info – sõnaliik, kääne või pööre. Rea struktuur on järgmine:
<algvorm> //_<sōnaliigid>_ <vormi nimetused> //
<algvorm> on sōna algvorm, s.t. ma-tegevusnimi tegusõnade puhul, ainsuse nimetav käändsõnade puhul. Ka juhul, kui sõnast kasutatakse ainult (?) mitmuse vorme, n.t. “püksid”, “kosjad” puhul, tuleks siiski proovida ette anda ainsuse nimetavalist vormi, n.t. “püks”, “kosi”. Algvormi leidmisel saab abivahendina kasutada morf. analüsaatorit. Erandiks on sõnad, millel ainsuse nimetavat polegi; nende puhul tuleb ette anda ainsuse omastav: iseenese, omaenese, üksteise, teineteise, mõlema, ligida, läheda, lühida. Pärisnimed tuleb sisestada suure algustähega.
<sōnaliigid> on string, millesse võivad kuuluda sōnaliike tähistavad suurtähed, mida kasutatakse ka morf. analüsaatoris. <sōnaliigid> võib olla ka tärn (*); sellisel juhul saab morf. süntesaator aru, et tahetakse saada kõikvõimalikesse sõnaliikidesse kuuluvaid sünteese
<vormi nimetused> on string, milles on komadega eraldatud, sünteesimist vajavate vormide nimed. Selle struktuur on:
<vormi nimetus>, <vormi nimetus>, ...
<vormi nimetus> on muutevormi ladinapärane lühendnimi, nagu teda kasutatakse morf. analüsaatoris ja “Väikeses vormisõnastikus”, näit. "sg g" - "singular genitiiv" (vt. VVS grammatika-köidet lk. 9). Ainus erinevus on selles, et nn. kahtlaste vormide puhul ei maksa ümarsulgusid kasutada.
Näiteks:
siga //_S_ sg g, pl g, pl p, //
oma //_*_ sg n, //
sadama //_*_ des, //
Väljundiks on fail, milles on iga sisendiks antud rea kohta see rida ise ja tema järel järgnevatel ridadel kõik sünteesitud vormid koos grammatilise infoga. Sünteesitud vormid on tähestikuliselt järjestatud grammatilise info järgi, näiteks:
siga //_S_ sg g, pl g, pl p, //
sigade //_S_ pl g, //
sigasid //_S_ pl p, //
sigu //_S_ pl p, //
sea //_S_ sg g, //
oma //_*_ sg n, //
oma //_A_ sg n, //
oma //_P_ sg n, //
oma //_S_ sg n, //
sadama //_*_ des, //
sadades //_V_ des, //
Kui süntesaator ei suuda mingit nõutud vormi sünteesida, siis väljundisse teda ka ei teki. Kui me ei kasuta oletamis-režiimi, siis võib ebaõnnestumise põhjuseks olla nt. see, et sõna puudub MORFi sõnastikust. Sel juhul antakse väljundiks ####. Kui ebaõnnestumise põhjuseks on see, et morf. süntesaator ei oska moodustada nõutud vormidest mitte ühtegi (nt. juhul, kui antakse nimisõna tüvi, aga soovitakse verbi vorme), siis antakse väljundiks ##. Näited:
CDGGG //_*_ sg g //
####
hr. //_*_ sg n, pl g, //
##
tuli //_V_ ma, //
##
· _A_ omadussõna - algvõrre (adjektiiv - positiiv), nii käänduvad kui käändumatud, nt kallis või eht
· _C_ omadussõna - keskvõrre (adjektiiv - komparatiiv), nt laiem
· _D_ määrsõna (adverb), nt kõrvuti
· _G_ genitiivatribuut (käändumatu omadussõna), nt balti
· _H_ pärisnimi, nt Edgar
· _I_ hüüdsõna (interjektsioon), nt tere
· _J_ sidesõna (konjunktsioon), nt ja
· _K_ kaassõna (pre/postpositsioon), nt kaudu
· _N_ põhiarvsõna (kardinaalnumeraal), nt kaks
· _O_ järgarvsõna (ordinaalnumeraal), nt teine
· _P_ asesõna (pronoomen), nt see
· _S_ nimisõna (substantiiv), nt asi
· _U_ omadussõna - ülivõrre (adjektiiv - superlatiiv), nt pikim
· _V_ tegusõna (verb), nt lugema
· _X_ verbi juurde kuuluv sõna, millel eraldi sõnaliigi tähistus puudub, nt plehku
· _Y_ lühend, nt USA
·
_Z_ lausemärk, nt -, /, ...
Võrreldes morf. analüsaatori ja süntesaatoriga on morf. oletaja sõnaliikide valik kitsam nn. suletud sõnaklasside poolest. Alljärgnevaid sõnaliike oletamisel ei pakuta:
· _J_ sidesõna (konjunktsioon), nt ja
· _K_ kaassõna (pre/postpositsioon), nt kaudu
· _P_ asesõna (pronoomen), nt see
· _X_ verbi juurde kuuluv sõna, millel eraldi sõnaliigi tähistus puudub, nt plehku
ab |
abessiiv |
ilmaütlev |
abl |
ablatiiv |
alaltütlev |
ad |
adessiiv |
alalütlev |
adt |
aditiiv |
suunduv (lühike sisseütlev), nt. "majja" |
all |
allatiiv |
alaleütlev |
el |
elatiiv |
seestütlev |
es |
essiiv |
olev |
g |
genitiiv |
omastav |
ill |
illatiiv |
sisseütlev |
in |
inessiiv |
seesütlev |
kom |
komitatiiv |
kaasaütlev |
n |
nominatiiv |
nimetav |
p |
partitiiv |
osastav |
pl |
pluural |
mitmus |
sg |
ainsus |
ainsus |
ter |
terminatiiv |
rajav |
tr |
translatiiv |
saav |
Verbide analüüsi tulemuse tähistamiseks kasutatakse formatiive
(nagu VVS-iski), mitte vormide lühendatud nimesid, sest mitmed
verbivormid on omavahel alati homonüümsed ja nende esitamine
väljundis tooks kaasa ebavajaliku mitmesuse.
b |
kindel kõneviis olevik 3. isik ainsus aktiiv jaatav kõne |
loeb |
d |
kindel kõneviis olevik 2. isik ainsus aktiiv jaatav kõne |
loed |
da |
infinitiiv jaatav kõne |
lugeda |
des |
gerundium jaatav kõne |
lugedes |
ge |
käskiv kõneviis olevik 2. isik mitmus aktiiv jaatav kõne |
lugege |
gem |
käskiv kõneviis olevik 1. isik mitmus aktiiv jaatav kõne |
lugegem |
gu |
käskiv kõneviis olevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugegu |
gu |
käskiv kõneviis olevik 3. isik ainsus aktiiv jaatav kõne |
(ta) lugegu |
ks |
tingiv kõneviis olevik 1. isik mitmus aktiiv jaatav kõne |
(me) loeks |
ks |
tingiv kõneviis olevik 1. isik ainsus aktiiv jaatav kõne |
(ma) loeks |
ks |
tingiv kõneviis olevik 2. isik mitmus aktiiv jaatav kõne |
(te) loeks |
ks |
tingiv kõneviis olevik 2. isik ainsus aktiiv jaatav kõne |
(sa) loeks |
ks |
tingiv kõneviis olevik 3. isik mitmus aktiiv jaatav kõne |
(nad) loeks |
ks |
tingiv kõneviis olevik 3. isik ainsus aktiiv jaatav kõne |
(ta) loeks |
ksid |
tingiv kõneviis olevik 2. isik ainsus aktiiv jaatav kõne |
(sa) loeksid |
ksid |
tingiv kõneviis olevik 3. isik mitmus aktiiv jaatav kõne |
(nad) loeksid |
ksime |
tingiv kõneviis olevik 1. isik mitmus aktiiv jaatav kõne |
(me) loeksime |
ksin |
tingiv kõneviis olevik 1. isik ainsus aktiiv jaatav kõne |
(ma) loeksin |
ksite |
tingiv kõneviis olevik 2. isik mitmus aktiiv jaatav kõne |
(te) loeksite |
ma |
supiin aktiiv jaatav kõne sisseütlev |
lugema |
maks |
supiin aktiiv jaatav kõne saav |
lugemaks |
mas |
supiin aktiiv jaatav kõne seesütlev |
lugemas |
mast |
supiin aktiiv jaatav kõne seestütlev |
lugemast |
mata |
supiin aktiiv jaatav kõne ilmaütlev |
lugemata |
me |
kindel kõneviis olevik 1. isik mitmus aktiiv jaatav kõne |
loeme |
n |
kindel kõneviis olevik 1. isik ainsus aktiiv jaatav kõne |
loen |
neg ge |
käskiv kõneviis olevik 2. isik mitmus aktiiv eitav kõne |
ärge |
neg gem |
käskiv kõneviis olevik 1. isik mitmus aktiiv eitav kõne |
ärgem |
neg gu |
käskiv kõneviis olevik 3. isik mitmus aktiiv eitav kõne |
(nad) ärgu |
neg gu |
käskiv kõneviis olevik 3. isik ainsus aktiiv eitav kõne |
(ta) ärgu |
neg gu |
käskiv kõneviis olevik passiiv eitav kõne |
ärgu |
neg ks |
tingiv kõneviis olevik 1. isik mitmus aktiiv eitav kõne |
(me) poleks |
neg ks |
tingiv kõneviis olevik 1. isik ainsus aktiiv eitav kõne |
(ma) poleks |
neg ks |
tingiv kõneviis olevik 2. isik mitmus aktiiv eitav kõne |
(te) poleks |
neg ks |
tingiv kõneviis olevik 2. isik ainsus aktiiv eitav kõne |
(sa) poleks |
neg ks |
tingiv kõneviis olevik 3. isik mitmus aktiiv eitav kõne |
(nad) poleks |
neg ks |
tingiv kõneviis olevik 3. isik ainsus aktiiv eitav kõne |
(ta) poleks |
neg me |
käskiv kõneviis olevik 1. isik mitmus aktiiv eitav kõne |
ärgme |
neg nud |
kindel kõneviis lihtminevik 1. isik mitmus aktiiv eitav kõne |
(me) polnud |
neg nud |
kindel kõneviis lihtminevik 1. isik ainsus aktiiv eitav kõne |
(ma) polnud |
neg nud |
kindel kõneviis lihtminevik 2. isik mitmus aktiiv eitav kõne |
(te) polnud |
neg nud |
kindel kõneviis lihtminevik 2. isik ainsus aktiiv eitav kõne |
(sa) polnud |
neg nud |
kindel kõneviis lihtminevik 3. isik mitmus aktiiv eitav kõne |
(nad) polnud |
neg nud |
kindel kõneviis lihtminevik 3. isik ainsus aktiiv eitav kõne |
(ta) polnud |
neg nuks |
tingiv kõneviis minevik 1. isik mitmus aktiiv eitav kõne |
(me) polnuks |
neg nuks |
tingiv kõneviis minevik 1. isik ainsus aktiiv eitav kõne |
(ma) polnuks |
neg nuks |
tingiv kõneviis minevik 2. isik mitmus aktiiv eitav kõne |
(te) polnuks |
neg nuks |
tingiv kõneviis minevik 2. isik ainsus aktiiv eitav kõne |
(sa) polnuks |
neg nuks |
tingiv kõneviis minevik 3. isik mitmus aktiiv eitav kõne |
(nad) polnuks |
neg nuks |
tingiv kõneviis minevik 3. isik ainsus aktiiv eitav kõne |
(ta) polnuks |
neg o |
käskiv kõneviis olevik 2. isik ainsus aktiiv eitav kõne |
ära |
neg o |
kindel kõneviis olevik 1. isik mitmus aktiiv eitav kõne |
(me) pole |
neg o |
kindel kõneviis olevik 1. isik ainsus aktiiv eitav kõne |
(ma) pole |
neg o |
kindel kõneviis olevik 2. isik mitmus aktiiv eitav kõne |
(te) pole |
neg o |
kindel kõneviis olevik 2. isik ainsus aktiiv eitav kõne |
(sa) pole |
neg o |
kindel kõneviis olevik 3. isik mitmus aktiiv eitav kõne |
(nad) pole |
neg o |
kindel kõneviis olevik 3. isik ainsus aktiiv eitav kõne |
(ta) pole |
neg vat |
kaudne kõneviis olevik 1. isik mitmus aktiiv eitav kõne |
(me) polevat |
neg vat |
kaudne kõneviis olevik 1. isik ainsus aktiiv eitav kõne |
(ma) polevat |
neg vat |
kaudne kõneviis olevik 2. isik mitmus aktiiv eitav kõne |
(te) polevat |
neg vat |
kaudne kõneviis olevik 2. isik ainsus aktiiv eitav kõne |
(sa) polevat |
neg vat |
kaudne kõneviis olevik 3. isik mitmus aktiiv eitav kõne |
(nad) polevat |
neg vat |
kaudne kõneviis olevik 3. isik ainsus aktiiv eitav kõne |
(ta) polevat |
nud |
kesksõna minevik aktiiv jaatav kõne |
lugenud |
nuks |
tingiv kõneviis minevik 1. isik mitmus aktiiv jaatav kõne |
(me) lugenuks |
nuks |
tingiv kõneviis minevik 1. isik ainsus aktiiv jaatav kõne |
(ma) lugenuks |
nuks |
tingiv kõneviis minevik 2. isik mitmus aktiiv jaatav kõne |
(te) lugenuks |
nuks |
tingiv kõneviis minevik 2. isik ainsus aktiiv jaatav kõne |
(sa) lugenuks |
nuks |
tingiv kõneviis minevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugenuks |
nuks |
tingiv kõneviis minevik 3. isik ainsus aktiiv jaatav kõne |
(ta) lugenuks |
nuksid |
tingiv kõneviis minevik 2. isik ainsus aktiiv jaatav kõne |
(sa) lugenuksid |
nuksid |
tingiv kõneviis minevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugenuksid |
nuksime |
tingiv kõneviis minevik 1. isik mitmus aktiiv jaatav kõne |
lugenuksime |
nuksin |
tingiv kõneviis minevik 1. isik ainsus aktiiv jaatav kõne |
lugenuksin |
nuksite |
tingiv kõneviis minevik 2. isik mitmus aktiiv jaatav kõne |
lugenuksite |
nuvat |
kaudne kõneviis minevik 1. isik mitmus aktiiv jaatav kõne |
(me) lugenuvat |
nuvat |
kaudne kõneviis minevik 1. isik ainsus aktiiv jaatav kõne |
(ma) lugenuvat |
nuvat |
kaudne kõneviis minevik 2. isik mitmus aktiiv jaatav kõne |
(te) lugenuvat |
nuvat |
kaudne kõneviis minevik 2. isik ainsus aktiiv jaatav kõne |
(sa) lugenuvat |
nuvat |
kaudne kõneviis minevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugenuvat |
nuvat |
kaudne kõneviis minevik 3. isik ainsus aktiiv jaatav kõne |
(ta) lugenuvat |
o |
käskiv kõneviis olevik 2. isik ainsus aktiiv jaatav kõne |
loe |
s |
kindel kõneviis lihtminevik 3. isik ainsus aktiiv jaatav kõne |
luges |
sid |
kindel kõneviis lihtminevik 2. isik ainsus aktiiv jaatav kõne |
(sa) lugesid |
sid |
kindel kõneviis lihtminevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugesid |
sime |
kindel kõneviis lihtminevik 1. isik mitmus aktiiv jaatav kõne |
lugesime |
sin |
kindel kõneviis lihtminevik 1. isik ainsus aktiiv jaatav kõne |
lugesin |
site |
kindel kõneviis lihtminevik 2. isik mitmus aktiiv jaatav kõne |
lugesite |
ta |
kindel kõneviis olevik passiiv eitav kõne |
loeta |
tagu |
käskiv kõneviis olevik passiiv jaatav kõne |
loetagu |
taks |
tingiv kõneviis olevik passiiv jaatav kõne |
loetaks |
takse |
kindel kõneviis olevik passiiv jaatav kõne |
loetakse |
tama |
supiin passiiv jaatav kõne |
loetama |
tav |
kesksõna olevik passiiv jaatav kõne |
loetav |
tavat |
kaudne kõneviis olevik passiiv jaatav kõne |
loetavat |
te |
kindel kõneviis olevik 2. isik mitmus aktiiv jaatav kõne |
loete |
ti |
kindel kõneviis lihtminevik passiiv jaatav kõne |
loeti |
tud |
kesksõna minevik passiiv jaatav kõne |
loetud |
tuks |
tingiv kõneviis minevik passiiv jaatav kõne |
loetuks |
tuvat |
kaudne kõneviis minevik passiiv jaatav kõne |
loetuvat |
v |
kesksõna olevik aktiiv jaatav kõne |
lugev |
vad |
kindel kõneviis olevik 3. isik mitmus aktiiv jaatav kõne |
loevad |
vat |
kaudne kõneviis olevik 1. isik mitmus aktiiv jaatav kõne |
(me) lugevat |
vat |
kaudne kõneviis olevik 1. isik ainsus aktiiv jaatav kõne |
(ma) lugevat |
vat |
kaudne kõneviis olevik 2. isik mitmus aktiiv jaatav kõne |
(te) lugevat |
vat |
kaudne kõneviis olevik 2. isik ainsus aktiiv jaatav kõne |
(sa) lugevat |
vat |
kaudne kõneviis olevik 3. isik mitmus aktiiv jaatav kõne |
(nad) lugevat |
vat |
kaudne kõneviis olevik 3. isik ainsus aktiiv jaatav kõne |
(ta) lugevat |
Nii morf. süntesaatori kui analüsaatori sisendiks olevates sõnades võivad esineda järgmised sümbolid:
1) Nn. tavalised tähed (ASCII kümnendkood
65 – 90 ja 97 – 12)
2) Täpitähed
ESTMORF kasutab vaikimisi teisendustabelit baltic.cnv, mis eeldab, et täpitähed on esitatud Balti kooditabeli kohaselt (Win 1257):
|
|
ASCII 16-ndkood |
ASCII 10-ndkood |
väike o tildega |
õ |
F5 |
245 |
väike a täppidega |
ä |
E4 |
228 |
väike o täppidega |
ö |
F6 |
246 |
väike u täppidega |
ü |
FC |
252 |
väike s katusega |
š |
F0 |
240 |
väike z katusega |
ž |
FE |
254 |
suur O tildega |
Õ |
D5 |
213 |
suur A täppidega |
Ä |
C4 |
196 |
suur O täppidega |
Ö |
D6 |
214 |
suur U täppidega |
Ü |
DC |
220 |
suur S katusega |
Š |
D0 |
208 |
suur Z katusega |
Ž |
DE |
222 |
Teisendustabelit saab muuta või käsurealt anda mõne muu teisendustabeli nime.
3) sidekriips (miinusmärk) (-)
4) kaldjoon (/)
Morf. analüsaator lubab sisendsõnades kasutada veel järgmisi sümboleid:
1) Numbrid
2) Kirjavahemärgid
.,;:()[]{}<>!?
tollimärk jutumärkide tähenduses (") (ASCII kümnendkood 34)
apostroof (') (ASCII kümnendkood 39)
väike < alustava jutumärgi tähenduses (‹) (ASCII kümnendkood 139)
väike > lõpetava jutumärgi tähenduses (›) (ASCII kümnendkood 155)
ESTMORF kasutab vaikimisi teisendustabelit baltic.cnv, mis eeldab, et jutumärgid on esitatud tollimärkidena (").
Teisendustabelit saab ette anda käsurealt, nt:
esmorf -c=html.cnv sisendfail
3) Muud tekstis esinevad sümbolid
%, kraadimärk (°), paragrahvi märk (§), tärn (*), pluss (+), ampersand (&)
Kirjavahemärkide lubamine sõnedes ja nende töötlemine ei kuulu tegelikult morfoloogilise analüsaatori põhifunktsioonide hulka. Ta on lisatud selleks, et kasutajal oleks vähem vaeva oma teksti ettevalmistamisel. Kui selgub, et ESTMORFi käsitlus kirjavahemärkidest ei vasta tekstis kasutatavale konventsioonile, tuleks teksti enne ESTMORFile ette andmist suupärasemaks teisendada.
Kasutaja-sõnastik on tekstifail eesti.udr, milles on kirjas sõnavorm ja tema morfoloogiline analüüs. Esimesel real peab #CONV järel olema sõnastikus kasutatavatele täpitähtedele vastava konverteerimisfaili nimi.
Näiteks lõik Leho Paldre poolt loodud kasutaja-sõnastikust Eesti Kirjakeele Seletava Sõnastiku analüüsimiseks:
#CONV baltic.cnv
mööndlauset möönd_lause+t //_S_ sg p,
//
nud-partitsiibis nud-partitsiip+s //_S_
sg in, //
nupjas nup=jas+0 //_A_ sg n, sg in, //
putuktoiduline putuk_toidu=line+0 //_S_ sg
n, //|putuk_toidu=line+0 //_A_ sg n, //
Rea alguses on sõnavorm, sellele järgneb tühik ja sellele analüüs(id), mida eraldab püstkriips (ASCII 10-ndkoodis 124). Nii morf. analüsaator kui süntesaator vaatab iga sõna analüüsides algul kasutaja-sõnastikku ja kui seal otsitavat sõnavormi pole, siis alles tehakse "tõeline" morf. analüüs või süntees
Lisaks vigadele, mis on
iga programmi paratamatuks kaaslaseks, on paar asja, millest ESTMORFi kasutaja
peaks teadlik olema.
Morf. analüsaatori
iseärasused:
1.
Lause keskel olevad suurtähega algavad
sõnad võivad olla pärisnimed, kuid ESTMORF ei tee selles suhtes oletusi ja
paljudel juhtudel, kui neid võib analüüsida kui lihtsõnu, neid nii ka
analüüsitakse.
Morf. süntesaatori
iseärasused:
1.
Sidekriipsu sisaldavate sõnade puhul on problemaatiline, kuidas peaks muutuma
sidekriipsule eelnev sõnaosa. Nt. Dudajevi-meelne
puhul Dudajevi ei muutu (Dudajevi-meelset); emb-kumb puhul emb muutub
(emba-kumba). Konkreetse sõna puhul
võiks katsetada morf. analüsaatori peal, millist vormi ta peab algvormiks, ja
vastavalt sellele anda algvorm ka morf. süntesaatorile.
Testversioon on testitud MS DOS 7 peal. Süntesaator töötas Pentiumi peal kiirusega 300 sõna sekundis. Analüsaator töötas oletamis-režiimis kiirusega 150 sõna sekundis.
1.
Kas sõna on mingi 'mittesõna' (nt.
(!))?
2.
Eemalda sõna algusest ja lõpust kõik
kirjavahemärgid, ükskõik kui ortograafiareeglitele mittevastavalt nad ka pandud
ei ole.
3.
Kas sõna on lühend (kuni 2 tähte või ilma
vokaalideta "sõna")?
4.
Kas 'sh' ja 'zh' asendamine õigete
'susisevatega' teeb sõna arusaadavaks?
5.
Kas sõna on suurtäheline lühend
käändelõpuga?
6.
Kas sõna sisaldab mõnd ilmset
kirjaviga, mille parandamisel on sõna sõnastikku kasutades analüüsitav (nt.
sõnadevaheline tühik on jäänud puudu või on kolm ühesugust vokaali kõrvuti)?
7.
Kas sõna on '-' sisaldav sõna, nt.
bla-bla-sõna? Kui jah, siis analüüsime ainult viimast '-' järgnevat sõna.
8.
Kas sõna on tundmatu pärisnimi, milles
lõpp on eraldatud ülakomaga?
9.
Kas sõna on analüüsitav järelliite ja
lõpu kaudu; sõnatüve korrektsust ei kontrolli?
10.Kas
sõna on tundmatu pärisnimi?
11.Kas
sõna on tundmatu (liit)nimisõna, mille lõpus on mingi eestikeelne lihtsõna?
12.Kas
sõna on tundmatu nimisõna või verb (otsustame sõna lõpu ja sellele eelnevate
tähtede alusel)?
13.Kas
sõna on suurtäheline lühend ilma käändelõputa?
Kui sisendsõna
morfoloogiline analüüs ebaõnnestus ja seega sõnastikku ei saa sõna sünteesiks
niisama lihtsalt kasutada, siis tuleb sünteesida, kasutades oletamist.
Oletamisel on järgmised etapid:
1.
Analüüsitakse sisendit uuesti,
kasutades analüüsi-oletamist.
2.
Kui oletamise tulemusena selgus, et
sõna on liitsõna või tuletamise abil moodustatud sõna, siis sünteesitakse
ainult viimast komponenti (lihtsõna või järelliidet)
3.
Kui oletamisel selgus aga, et sõna on
lihtsõna, siis leitakse analoogiline, sõnastikus leiduv sõna, mille sarnaselt
antud sõna peaks muutuma. Analoogilise sõna leidmise aluseks on lõputähtede
jada ja silpide arv. Eeldatakse, et sõnastikus puuduvad lihtsõnad kuuluvad
teatud piiratud muutüüpide hulka ning et nende klassifitseerimiseks piisab
ümmarguselt sajast lõputähtede jada ja silpide arvu kombinatsioonist.
4.
Sõna muutuv osa leitakse sõnastikust
selle analoogilise sõna muutmise kaudu. Väljundisse kopeeritakse mittemuutuv
algusosa, millele pannakse otsa muutuv lõpuosa.
Süntesaatori testimisel ilma oletamiseta kasutati Tartu Ülikooli kirjakeele korpuse morfoloogilise analüüsimise tulemusena saadud sõnavormide ja nende morfoloogiliste analüüside faili, mis genereerimise katsetamiseks pöörati ümber ning millest eemaldati lühendid ja numbrid. Failis on 200000 erinevat algvormi ja morf. kategooriate paari, mis on süntesaatorile sisendiks. Süntesaator ei suutnud sünteesida 140 sisendsõna ja morf. kategooria paari, mis on 0,07% sisenditest. Kui lubada süntesaatoril sünteesida sõnu "vabamalt" kui morf. analüsaatori väljund lubab, siis jääb sünteesimata 40 juhtumit e. 0,02% sisenditest. Seega morf. analüsaator ja süntesaator ei ole päris teineteise pöördprogrammid.
1. Esineb juhtumeid, kus morf. analüsaator ja süntesaator ei ole ühel meelel selles, milline on mingi sõna sõnaliik. Sel juhul morf. analüsaatori väljund ei anna morf. süntesaatori sisendina soovitud sõnavormi. Nt. kui sõna on sidekriipsu sisaldav pärisnimi, mille viimane komponent on analüüsitav ka kui tavaline sõna (nt. Miki-Hiir), siis morf. analüsaator väljastab sõnaliigina _H_; morf. süntesaator aga ei suuda sellest sõnast sünteesida vorme muidu kui sel juhul, kui sõnaliik on _S_ (või _*_).
2. Esineb juhtumeid, kus mingi liitsõna või tuletis on analüüsitav kui lihtsama struktuuriga sõna (nt. lihtsõna). Sel juhul sünteesitakse ainult lihtsama struktuuriga sõna. Nt. tüve "rohkem" käsitletakse kui lihtsõnalist määrsõna (s.t. tegelikult tema vorme ei sünteesita), mitte kui tuletatud sõna, keskvõrret sõnast "rohke".
3. Numbritele ja lühenditele süntesaator käändelõppe ei lisa.
Kui
oletamisrežiimis leitakse, et sõna on liitsõna, kuid tehakse seejuures sõna
struktuuri määramisel viga, siis ka süntesaator genereerib valesid vorme.
Kui
oletamisrežiimis leitakse, et sõna on lihtsõna, siis sõltub tema sünteesi
õigsus sellest, kas osatakse leida sõnale sarnaselt muutuvat sõnastiku-sõna.
Siin võib esineda vigu.
Lause keskel olevaid suurtähelisi sõnu püüab analüsaator analüüsida kui lihtsõnu, andes mõnikord resultaadiks liitsõna, nt.
Aamots -> aam_ots.
Paljud morfoloogilise analüsaatori vead on seotud tema koosseisu kuuluva oletaja puudustega. Oletaja loomisel kasutati 1995. a. eesti ajakirjanduse tekste kokku 230 000 sõnavormi ulatuses, millest sõnastikupõhise analüsaatori poolt jäi analüüsimata 10 800 sõnavormi. Erinevaid analüüsimata sõnavorme oli 6500. See korpus oli allikaks, millest võis näha tekstides ettetulevate tundmatute sõnade tüüpe. Sellest lähtudes koostatigi oletamise algoritm.
Oletaja testimisel kasutati korpust 1999. a. Eesti Ekspressi tekstidest, mis olid WWW-s kättesaadavad. Korpusesse kuulus algselt 219 000 sõnavormi, millest testi-sisendiks oli 10 000 morf. analüsaatori poolt muidu analüüsita jäänud sõnavormi ( 4,57% esialgsetest sõnavormidest). Tekste ei olnud analüsaatoriga varem analüüsitud, samuti ei filtreeritud sealt enne katset mingeid sõnu välja. Eemaldati ainult HTML-märgendus. Tekstid sisaldasid ka ebastandardset ortograafiat (nt sh š asemel) ja trükivigu.
Ligikaudu 66% tundmatutest sõnavormidest olid pärisnimed; 10% olid nimisõnad; 9% oli mõttekriips; 8% olid lühendid; 1% mitmesugused numbrikombinatsioonid; 1% omadussõnad, tegusõnad, määrsõnad; 5% olid võõrkeelsed sõnad, WWW-aadressid jm sümbolijadad, millele on raske üldse mingit mõistlikku analüüsi pakkuda.
Oletamisel tehakse kahte liiki vigu: ei anta sõnale ühtegi õiget analüüsi; antakse õigete hulgas ka valesid analüüse.
Õige analüüs puudus antud katse puhul 1400 juhul 10 000-st, s.t. 14% juhtudest. Vead jagunevad järgmistesse kategooriatesse:
1. Mõttekriipsu peetakse ekslikult üksikuks täheks ja analüüsitakse kui lühendit (900 juhtumit)
2. Pakutakse vale sõnaliiki. Nt. suurtäheline sõna määratakse pärisnimeks, ehkki ta ei pruugi seda olla; budjete jpt. on samuti määratud nimisõnaks, ehkki nad on hoopis tsitaadid võõr- (antud juhul vene) keelest. Kui sõna on kaks tähte pikk, siis peetakse teda lühendiks. See võib olla ka eksitav, nt. ingliskeelsete eessõnade või hiina nimede puhul. Siia kuulub 300 juhtumit.
3. Mõttekriipsu kombinatsioonis numbritega, nt. 11-12, peetakse ekslikult lühendiks (100 juhtumit)
4. Ei leita õiget algvormi, nt. Loidi puhul ei pakuta algvormiks Loit (40 juhtumit)
5. Ei oletata midagi (10 juhtumit)
Sõnadel, mille puhul pakuti õiget analüüsi, oli keskmiselt 1,4 analüüsivarianti sõna kohta.
Kuna sõna kuju alusel on raske (kui mitte võimatu) öelda, kus asub sõna rõhk, siis oletatakse mõnikord selliseid algvormi kujusid, mis inimesele, kes sõna hääldust teab, paistavad ilmselgelt valed.
Kui arvutada analüsaatori katvust ja täpsust tervikuna, siis: sisendsõnavormidest jääb analüüsimata 0,018%; vale analüüsi saab oletaja poolt 0,82% ja sõnastikupõhise analüsaatori poolt 0,1% (H-J. Kaalep, T. Vaino. Kas vale meetodiga õiged tulemused? Statistikale tuginev eesti keele morfoloogiline ühestamine. Keel ja Kirjandus 1/1998, lk 30-36), seega kokku 0,92%. Kui sisendsõnavormide hulka enne analüüsimist ja oletamist töödelda, nt. eemaldades sealt mittestandardsed sümbolid või teisendades nad standardseteks (nagu katsest selgunud ebastandardne mõttekriips, mis andis 50% vigadest), siis peaks vigade protsent vähenema kuni 50%.
Samas tuleb ülaltoodud kvaliteedinäitajatesse suhtuda teatud ettevaatusega, kui kasutatakse oletajat ajakirjandusest erinevate tekstide peal, nt. juriidilistel tekstidel. On ju oletajat nii treenitud kui testitud just ajakirjanduse eripärast lähtudes.