ESTMORF, eesti keele morfoloogiline analüsaator ja süntesaator, (lõplik versioon)

Heiki-Jaan Kaalep
OÜ Filosoft
hkaalep@psych.ut.ee

Sisukord

  1. ESTMORFi programmipaketi failid
  2. Installeerimine
  3. ESTMORFi kasutamine
    1. Morfoloogilise analüsaatori sisend
    2. Morfoloogilise analüsaatori väljund
    3. Morfoloogilise süntesaatori sisend
    4. Morfoloogilise süntesaatori väljund
  4. ESTMORFis kasutatavad lühendid
    1. Sõnaliigid, mida ESTMORF eristab
    2. Noomenikategooriate lühendid
    3. Verbikategooriate lühendid
  5. Tundmatud sümbolid, tundmatud sõnad
    1. ESTMORFi sisendsümbolid
    2. Morfoloogilise analüsaatori sisendsümbolid
    3. Kasutaja-sõnastik
  6. Probleemsed juhud
  7. Tehnilised andmed
  8. Teadaolevad vead

1. ESTMORFi programmipaketi failid

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

Download

2. Installeerimine

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.

3. ESTMORFi kasutamine

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 reziimi, mille väljundis on nii analüsaatori kui süntesaatori poolt oletatav sona 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 o 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:

estmorf -h

Eesti keele morf analu'u's; su'ntaks:

estmorf [-h] [-d SON] [-u UDR] [-c CNV] [-k PATH] [-o DIR] [-e EXT] [-{X|B[2]|M|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 sisendi morf. analu'saator
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-reziimis annab ESTMORF väljundisse koik lemmad, mida antud sonavormist saab moodustada; liitsonade puhul ka osasonade lemmad, nt:

peaminister
peaminister
pea
pidama
minister

Soovitaja-reziimis annab ESTMORF väljundisse hulga selliseid sonu, mis on sisendisse antud (vigase) sona sarnased korrektsed sonad, nt:

sovitaja
suvitaja sobitaja soovitaja

3.1. Morfoloogilise analüsaatori sisend

Normaalselt käib morf. analüsaatori kasutamine järgmiselt:

ESTMORF -M faili_nimi.laiend

See tähendab, et tulemused lähevad faili faili_nimi.MRF; et leitakse kõikvõimalikud analüüsivariandid; et leitakse algvormitüved (lemmad); '-' märki sisaldavate sõnade analüüsil vaadatakse ainult viimast '-' järgnevat sõna.

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, //

3.2 Morfoloogilise analüsaatori väljund

Ü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

'(' ja ')' vahel on vormi nimi, mis on "kaheldav" VVS meelest.

'?' 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, //

3.3 Morfoloogilise süntesaatori sisend

Normaalselt käib morf. süntesatori käivitamine järgmiselt:

ESTMORF -G faili_nimi.laiend

Tulemused lähevad faili faili_nimi.MRF

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> //_<sonaliigid>_ <vormi nimetused> //

<algvorm> on sona 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.

<sonaliigid> on string, millesse võivad kuuluda sonaliike tähistavad suurtähed, mida kasutatakse ka morf. analüsaatoris. <sonaliigid> 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, //

3.4 Morfoloogilise süntesaatori väljund

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. Ebaõnnestumise põhjuseks võib 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, //
##

4. ESTMORFis kasutatavad lühendid

4.1 Sõnaliigid, mida ESTMORF eristab

_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 -, /, ...

4.2 Noomenikategooriate lühendid

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

4.3 Verbikategooriate lühendid

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 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

5. Tundmatud sümbolid, tundmatud sõnad

5.1 ESTMORFi sisendsümbolid

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 (/)

5.2 Morf. analüsaatori sisendsümbolid

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.

5.3 Kasutaja-sõnastik

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

6. Probleemsed juhud

Lisaks vigadele, mis on iga programmi paratamatuks kaaslaseks, on paar asja, millest ESTMORFi kasutaja peaks teadlik olema.

Morf. analüsaatori iseärasused:

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.

7. Tehnilised andmed

Lõplik versioon on testitud MS DOS 7 peal. Süntesaator töötas Pentiumi peal kiirusega 300 sõna sekundis.

8. Teadaolevad vead ja puudused

Süntesaatori testimisel 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üüstav 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üüstav 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.