Eesti Keele Instituut

EKI tarkvara


ANALÜÜS

Vigade parandus: 11.okt.2000


andmefailid



programmid



lähtekood, ver 3.3 (Pascal)

Morfoloogiline analüüs

 


Analüüs on tuntuim morfoloogia rakendus, selle mooduli ülesandeks on iga tavatekstis vastu tuleva sõnavormi kohta pakkuda selle lubatud algvormid (kasutagem kohe mitmust, sest võimalusi on pigem mitu kui üks). Lauset 'Kui Eesti Vabariigi välislepingus on käesolevast seadusest erinevad sätted, kohaldatakse välislepingu sätteid' analüüsitakse järgnevalt:

kui =kui  (ID  >kui !41_JD

eesti =eesti  (ID  >eesti !41_G
eesti =eesti  (SgN  >eesti !16_H
eesti =eesti  (SgG  >eesti !16_H

vabariigi =riigi  (SgG  >vaba+riik !22_S

välislepingus =lepingu  (SgIn  >välis+leping !02_S

on =on  (IndPrSg3  >olema !36_V
on =on  (IndPrPl3  >olema !36_V

käesolevast =oleva  (SgEl  >käes+olev !02_A

seadusest =seaduse  (SgEl  >seadus !02_S

erinevad =erine  (IndPrPl3  >erinema !27_V
erinevad =erineva  (PlN  >erinev !02_A
"erinev %erine  )V_vA  säte !06_S

kohaldatakse =kohalda  (IndPrIps  >kohaldama !27_V

välislepingu =lepingu  (SgG  >välis+leping !02_S

sätteid =sätte  (PlP  >säte !06_S
  • 'kui' puhul jääb määramata, kas tegemist on määr- või sidesõnaga (vrd nii mina kui sina ja kui palju see maksab?;
  • 'Eesti' võib olla nii nimetavas kui omastavas käändes, lisaks ka muutumatu omadussõna (need on Eesti tomatid);
  • 'on' puhul ei otsustata, kas tegemist on ainsuse või mitmusega (ta on ja nad on);
  • 'erinevad' võib olla nii tegusõna kui verbist erinema tuletatud omadussõna mitmuse nimetavas (nad erinevad teineteisest ja tulemused olid erinevad;
  • muud sõnad määratakse üheselt.

Vt lisaks Muutüüpide, sõnaliikide, tüvekoodide ja vormikoodide tähistused ning moodulite üldiseloomustus.

Analüüs ei eelda mingit kindlat sisendit, tema ülesandeks ongi mistahes vormile algvormi leidmine.


Analüüs on olemuselt küll orienteeritud eestikeelsete tavasõnade tuvastamiseks, kuid praktilistest vajadustest johtuvalt annab vastuse ka tekstis esinevate numbrite, kriipsu ja ülakoma abil lisatud käändelõppude jms kohta. Sõnavormi analüüsil

  • üritatakse eraldada gi/ki lõppu
  • järgnev tehakse üks kord läbi, liitsõna analüüsil üritatakse sõnavormi sovivalt jupitada (arvesse tulevad liitsõnapiiri reeglid) ja korratakse rekursiivselt järgnevaid samme
    • üritatakse eraldada kõik failis form-tab lubatud lõpud ja leitakse sealt oletetav muuttüüp, tüvekood ja vormikood.
    • tüve ja tüvekoodi kombinatsiooni alusel tagastab vormimoodustus (funktsioon createlemma) sobiva(d) algvormi(d)
    • kui ei tekkinud erandit (meesi ei saa olla mees omastavas) ja ka tüübituvastus kinnitab tuletatud lemma kohta sama muuttüübi, siis analüüsi tulemused väljastatakse
    • kui analüüsilt eeldatakse tuletisliidete eraldamist tüvest, käib analüüs läbi järgmised etapid
      • failist der-tab otsitakse võimalikke sufikseid
      • tüve ja tüvekoodi kombinatsiooni alusel tagastab vormimoodustus (funktsioon createlemma) sobiva(d) algvormi(d)
      • kui erandit ei tekkinud ja ka tüübituvastus kinnitab tuletatud lemma kohta sama muuttüübi, siis analüüsi tulemused väljastatakse

demo_ana.exe

Analüüsimiseks kirjutage sõnavorm programmi käivitamisel ilmunud akna sisestusvälja ja vajutage reavahetusklahvile või nupule 'Analüüs'. Sellisel juhul kuvatakse analüüsi tulemused samas aknas. Võimalik on veidi modifitseerida väljundit, asendades analüüsi tulemustes vormikoodi loetavamale kujule (vorminimi või klaarkood). Võimalik on ka lubada või keelata tuletusliidete analüüs. Viimasel juhul leitakse küll sõnavormile 'magajat' õige analüüs:

   magajat =magaja  (SgP  >magaja !01_S
osastav kääne lemmast 'magaja', tüüp 1, nimisõna, leidmata jääb aga tuletusalus
   "magaja %maga  )JA_vS  <magama ;27_V
(magaja on tegijanimi verbist 'magama', tüüp 27)

Kui liitsõnaanalüüs on sisse lülitatud, läbib sõnavorm analüüsi kaks korda. Esimesel ringil vaadeldakse seda kui lihtsõna, teisel ringil proovitakse leida võimalik liitsõnapiir ja analüüsitakse viimast leitud komponenti sõnavormis, nt

   ööuni
   ööuni =ööuni  (SgG  >ööun !02_S
   ööuni =ööuni  (IndPrPs_  >ööunima !28_V
   ööuni =ööuni  (ImpPrSg2  >ööunima !28_V
   # ----------
   ööuni =uni  (SgN  >öö+uni !20_S
   ööuni =uni  (IndPrPs_  >öö+unima !27_V
   ööuni =uni  (ImpPrSg2  >öö+unima !27_V
Koos kontrolliga sõnastikus jääb alles üksainus variant:
   ööuni
   # ---------- 
   ööuni =uni  (SgN  >öö+uni !20_S
(lemmad ööun ja ööunima ei saa juba fonostruktuuri poolest olemas olla; unima on küll igati ontlik tegusõna, mida aga tegelikus keeles pole).

NB Väljundi vormi, tuletuse ja liitsõnaanalüüsi sisse- või väljalülitamine toob kaasa ka meeleshoitud sagedaste sõnavormide analüüsitulemuste uue initsialiseerimise, et analüüsi väljund oleks ühtlane. Väljundi kuju ja analüüsitingimusi on võimalik muuta ka faili töötlemise käigus.

Programmi töö lõpetamiseks valige menüüst Fail -> Lõpeta (või vajutage sisestusreal ESC klahvi).

Tekstifaili analüüsimiseks valige menüüst Fail -> Ava ning avage analüüsitav tekstifail. Fail peab olema ASCII tekst, milles on kasutusel kooditabel CP 1257. Sellise saate, kui salvestate nt Windows Wordi teksti formaadis 'Text only [with line breaks]'. Analüüsitulemused salvestatakse samasse kataloogi; faili nimi jääb seejuures samaks, kuid faili laiendiks on .out. Analüüsi käiku on võimalik jälgida protsendiribalt. Samal ajal üksiksõnavorme analüüsida ei saa. Programmi katkestamine toob ette dialoogi, kus kasutajalt nõutakse kinnitust programmi töö lõpetamiseks. Poolelijäänud kohalt faili edasi analüüsida ei saa.

Programmi demo_ana.exe võib käivitada ka käsurealt. Selleks

  1. minge kataloogi, kus MA asub
  2. kirjutage käsureale demo_ana sisendfailinimi võtmed, nt C:\eki_morfo\programmid>demo_ana demo.txt /t /v1 /l-

Võtmed algavad alati kaldkriipsuga. Lubatud on nii suur- kui väiketähed. Binaarsed võtmed on:

   /t või /t+ (koos tuletusanalüüsiga), /t- (ilma)
   /l või /l+ (koos liitsõna analüüsiga), /l- (ilma)
   /s või /s+ (koos sõnastikuga), /s- (ilma)
Vormikoodi kuju saab väljundis muuta võtmega /v
   /v0 - sisekood
   /v1 - vorminimi
   /v2 - klaarkood
Vaikeväärtused on hetkel /t+ /l+ /s- /v1, kuid need võivad tulevikus muutuda ning parem on käsureal ette anda kõigi võtmete väärtused.

väljundi kirjeldus

Faili väljastatakse alati rida

#:) algne sõnavorm muutmata kujul
Kui sõnavormis ei leidunud ühtki tähte, on see rida väljundis ainus, nt
#:) 1996
Kui analüüs ei leia ühtki sobivat tõlgendust, väljastatakse
### sõnavorm
# -------- eraldab liitsõna osa.

Väljundi ridade ees tähistab " - väljund on tuletusanalüüsist ? - lemmat ei leitud sõnastikust. Viimane on võimalik ainult siis, kui analüüs toimus sõnastikku kasutades kuid

  1. leiti võimalik tuletusalus kuid mitte tuletist, nt
    roomamine
    ?roomamine =roomamine  (SgN  >roomamine !12_S
    "roomamine %rooma  )MINE_vS  <roomama ;29_V
    
  2. analüüs sõnastikuga ei andnud tulemusi, nt
    #:) servituudid,
    ?servituudid =servituudi  (------1N  >servituudi !16_S
    ?servituudid =servituudi  (------1N  >servituut !22_S
    ?servituudid =servituudi  (-00021--  >servituutima !28_V
    
Väljastatud tulemusrida on kujul
sõnavorm =vormitüvi  (vormikood  >lemma !tüüp_sõnaliik
või tuletusanalüüsist
"sõnavorm %vormitüvi  )vormikood  <lemma ;tüüp_sõnaliik


1. Kui installeerite esimest korda, looge esmalt sobiv kataloogipuu. Loogiline kataloogide struktuur võiks olla:

c:\eki_morfo\programmid\             (programmid)
c:\eki_morfo\programmid\analyys\     (lähtekood vajadusel)
c:\eki_morfo\andmed\                 (andmefailid)

2. Laadige oma arvutisse andmefailid (est_morpho_data.zip) ja pakkige need lahti andmekataloogi. Andmefailid võivad küll asuda samas kataloogis programmide ja teekidega, parem lahendus on aga hoida andmefaile omaette kataloogis ja panna selle nimi keskkonnamuutujasse EST_MORPHO_DATA (vt juhend).

3a. Installeerige silbitus, tüübituvastus ja vormimoodustus, neid kõiki on analüüsil vaja.

3. Laadige oma arvutisse programmid (ana_bin.zip) ja pakkige lahti morfoloogiaprogrammide kataloogi.

(4.) Kui leiate, et teile pakub huvi programmide lähtekood või, mis veel parem, olete valmis seda täiustama, laadige oma arvutisse koodifailid (ana_code.zip) ja pakkige lahti programmide kataloogi sobiva nimega alakataloogis.

Analüüs koosneb:

teegid:

  • silbitus
  • tüübituvastus
  • vormimoodustus
  • ana.dll (analüüsimoodul)

andmefailid:

  • yla-tab (kriipsu ja apostroofi järgsed käändelõpud)
  • form-tab (formatiivide reeglid)
  • form.exc (formatiivide erandid)
  • der-tab (tuletusreeglid)
  • der.exc (tuletuserandid)
  • liitsõnareeglid ja -erandid: erandid.ls, fonoer.ls, indekl.ls, kompo.ls, osad.ls, osised.ls, reeglid.ls, tervik.ls, yh_verb.ls
  • fcodes.ini (vormikoodide esitus väljundis)
  • kasutaja.dic (provisoorne kasutajasõnastik)
  • lemma.dic (lemmasõnastik, kasutatakse nõudmisel)

Esimesel käivitamisel teeb moodul paarist erandifailist enda jaoks sobivamad indeksid laiendiga .srt. Kui muudate erandeid, aga programm käitub vanaviisi, kustutage samanimeline srt-laiendiga fail ja käivitage programm uuesti.

Osaliselt on reegli- ja erandifailid programmi sisse ehitatud ja vajaliku faili puudumine tööd ei takista. Reeglid muutuvad siiski pidevalt, mistõttu valdavalt on failides leiduv info uuem ja täpsem.


Tegemisel:

  • analüüs ei tuhni kribukrabus piisavalt põhjalikult - nt sisendit '16.02.99' või http://www.eki.ee/' võiks ka tuvastada;
  • analüüs ei arvesta suurtähti, 'Mai' ja 'mai' ei eristu;
  • kasutajasõnastiku täiendamisest pole tihti abi (kui te just ei taha kõikide sõnade kõiki vorme kirja panna) ja muuta tuleks hoopis siin-seal erandifaile.


Programme puudutavad küsimused: tarkvara@eki.ee