Otse põhisisu juurde

Töine aovargus ehk Kuidas me vanu tekste arusaadavamaks muudame

Georg Müller  kirjutas 1601. aastal  „rawo ninck roimo kaas“. Arusaamatu? Selleks, et 17. ja 18. sajandi eestikeelsed tekstid oleks praegustele huvilistele mõistetavad, peame need tekstid märgendama.

Kõige lihtsamal juhul tähendab märgendamine tekstisõnale tänapäevakeelse märksõna lisamist. Mülleri rawo on rahu, ninck on ning, roimo on rõõm ja kaas on kaasaütleva käände lõpp -ga, nii et rawo ninck roimo kaas tähendab ’rahu ning rõõmuga’.

Üksikasjalisemat märgendust vajavad keeleteadlased. Tänapäeval on moes mahukatele andmetele tuginevad uuringud. Keeleteaduses tähendab see suurte keelekogude ehk keelekorpuste kasutamist. Hea korpus on põhjalikult märgendatud: igale tekstisõnale on lisaks tema märksõnale määratud ka sõnaliik, morfoloogiline vorm jpm vajalikku keelelist infot.

Tänapäeva kirjakeele korpused sisaldavad sadu miljoneid tekstisõnu ja märgendatakse neid automaatselt. Automaatne märgendus on võimalik, sest me teame iga kirjakeelse sõna igat kirjakeelset muutevormi ja me teame ka kirjakeele vormimoodustusreegleid. Tõsi, probleemid tekkivad, kui on vaja otsustada, kas näiteks sõna või on tekstis parasjagu sidesõna (see või teine), nimisõna (või leiva peal) või tegusõna (sa ei või tulla). Siinkohal tuleb appi statistika ja lõppkokkuvõttes saab korrektselt märgendatud u 97% tekstist, ilma et inimene peaks midagi üle vaatama.

Kas ka vanu tekste saab märgendada automaatselt?

Vana kirjakeele vormimoodustusreegleid me ei tea. Ja päris vanasti polnud üldkehtivaid ortograafiareegleidki. Tekstides on väga palju ennustamatut varieerumist. Georg Müller võis 17. sajandi algul kirjutada echffarduße, æffwarduße, effartuße, ewarduse, aga meile tänapäeval on lubatud vaid kirjapilt ähvarduse.

Idealistid ütlevad, et kui inimene suudab niivõrd varieeruvaid tekste märgendada, siis suudab seda ka arvuti. Katsetatud on näiteks 19. sajandi lõpu vallakohtuprotokollide automaatmärgendusega. See töö on arvutilingvistidel pooleli, praegused tulemused paraku pole veel uurijaid rahuldavad. Ühe sellise katsetuse tulemus (tänapäevase keele märgendajat rakendati vanadele, osaliselt tänapäevastatud ortograafiaga tekstidele) on siiski üles laetud vana kirjakeele korpusesse

Oletame, et ajaloolane soovib nii märgendatud kohtuprotokollidest teada, kas kauba- või käsitöösellid ka mõnikord pättust tegid ning kohtu alla sattusid. Eks ta siis otsib kohtuprotokollidest märksõna sell ja rõõmustab – sellidest näib juttu olevat lausa 181 korral. Uurija rõõm jääb aga üürikeseks, sest enamik neist „sellidest“ osutuvad hoopiski asesõna see vormideks, näiteks niisugustes lausetes:

  • Selle rumala teo eest massab Leena Maanus vaeste laekase 3 Rbl .
  • Süüalutses arvatu Jaan Külaots Nilbe talu sulane sai ette kutsutus; ja vastas küsimise pääle; Et tema midagi sellest kuhja palama panekist ei teedvat; ja ei ollev nännuki seda kuhjo palamist vaid maganu sell ööl!  

Sääraseid märgendamisvigu on isegi pisut lõbus otsida: praeguse märgenduse põhjal näib, et vanal ajal osati linast riiet varrastada (mitte varastada); esimesele kohtupäevale järgnes sagedasti töine kohtupäev (mitte teine); keegi olla pihta pannud koormatäie agu (mitte hagu); üks tüdruk oli muutunud teenistuse jääks (mitte jäänud teenistusse); räägitakse nimetust proua Fanny Müllerist (mitte eelpool nimetatud proua Fanny Müllerist); kohtumeeste tunnistuse peale olevat kusagil kellelegi neide välja mõistetud (mitte neile tasu välja mõistetud); üks mees olevat öösi pealt (mitte öösel) hulkuma läinud, kusagile eksporditavat õlgu (mitte õlut); üks leskmees kulutanud oma teist abielu; keegi saanud palgaks maksa ...

Muidugi saaks automaatmärgendaja parandamiseks kasutada mitmeid tarkusi, näiteks jälgida seda, millised sõnad sagedamini koos esinevad ja millised üldse mitte, saaks välistada alles 20. sajandil keelde tulnud sõnad jms, aga alati pole neistki nippidest kasu. Näiteks 1782. aastast pärinevas lauses „sinna kannad waeno ommas süddames mu rahwa wasto“ on vaja tekstiväliseid lisateadmisi otsustamaks, kas mu on siin muu või minu.

Kui me ei taha korpuse kasutajaid eksitada, peame märgenduse käsitsi üle vaatama.

Usaldusväärsed vana kirjakeele materjalikogud ja nende märgendus on pikaajalise töö vili ja uurijate poolt sõna haaval ning kannatlikult üle vaadatud, kulugu selleks või aastakümneid. Suurepäraseks näiteks niisugusest materjalist on piiblitõlke ajalooline konkordants. Tahaks loota, et ka 17. sajandi tekstide korpus (peamiselt Georg Mülleri, Joachim Rossihniuse, Heinrich Stahli tekstid), mille märgendajate hulka isegi kuulun, on igati usaldusväärne.

Käsitsi või poolautomaatselt märgendamine on muide vägagi inspireeriv – ainult nii märkab erilisi, haruldasi ning huvitavaid sõnu ja vorme! Automaatne märgendaja moonutaks need millekski tänapäevaseks ja põnev, seni veel avastamata info läheks kaotsi. 

Automaatselt märgendada saab ikkagi vaid seda, mida me juba niigi teame. See aga pole uurijale kuigi huvitav.

Eks nooremana lootsin ka ise saada kõike korraga ja kiiresti, mitte kulutada kümmet aastat üheainsa autori teoste märgendamisele.

Esimesed märgendamiskatsetused 1990ndatel

Liitusin Tartu Ülikooli vana kirjakeele uurimisrühmaga siis, kui käimas oli 15. ja 16. sajandi tekstide sõnastiku koostamine. Meie tööruumis oli seinatäis kartoteegikaste sõnasedelitega, mida oli kogutud umbes 30 aastat – kokku ligi pool miljonit käsitsi täidetud sõnasedelit! See sein tuletas üha meelde uurimismeetodite ja -vahendite tähtsusetust ning kaduvust võrreldes uuritava materjaliga. 

Arvutitööd juhtis Epp Ehasalu. Et uuritav materjal oli suhteliselt väike (umbes 2500 tekstisõna), sai seda analüüsida Exceli võimalusi kasutades, mida Epp leidlikul moel kombineeris. Eesti keele õppetool oli esimesed arvutid soetanud minu mäletamist mööda vaid paar aastat tagasi ning Exceli automaatsed rühmitamise ja vahekokkuvõtete funktsioonid mõjusid kõrvaltvaatajaile nagu imetegu. 

Järgmise suure sõnastiku, Georg Mülleri jutluste sõnastiku koostamiseks enam Excelist ei piisanud. Toonases Excelis oli tabeli ridade arv piiratud 16 384-ga, ent Mülleri tekstides oli sõnu ligi 100 000. Niisiis asusin aastal 1997 ise C++ abil ning sõbralike asjatundjate toel märgendustarkvara programmeerima. Seletasin (ise alles tudeng), et märgendatud teksti on pärast lihtne sõnastikuks transformeerida.

Esmalt tundus loogiline teha kõikidest tekstisõnadest loend, et saaks ühesugustele sõnadele korraga märksõna jm vajaliku info lisada. Eks ole ju, et kui tekstis on 500 korda sõna omat, siis hoiab hulga aega kokku, kui neile kõigile saab ühekorraga juurde panna märksõna oma ja vormiks mitmuse nimetava, mitte ei pea seda tegema 500 korda eraldi. 

Tarkvara nimeks sai Mollerus ja välja nägi see niisugune nagu all oleval pildil: ühes aknas sõnaloend, kus klõpsates saab valida, millise esinemuse konteksti teises aknas kuvatakse. Kolmandas aknas olid märgendamisvalikud. Et Mollerus hoidis andmeid relatsioonilises andmebaasis, sai selle abil muidugi teha ka mitmesuguseid päringuid, mitte ainult teksti märgendada.


Juba Mülleri sõnastikku tehes selgus, et sõnaloendil põhinev märgendamine on vanade tekstide puhul liiga veaohtlik ja aja kokkuhoid polegi nii suur, nagu esialgu tundus. Näiteks seesama 500 korda esinev omat: 428 korral on omat hoopiski verbivorm, nimelt olema mitmuse 3. pööre (tänapäeva keeles nad on, Mülleril nad omat). Et leida üles, millistes lausetes on omat asesõna ja millistes verb, tuleb kõik laused ükshaaval läbi vaadata. Täpsuse ja korrektsuse huvides tuli õigupoolest kõikide sõnade kõik kasutused ükshaaval läbi vaadata, sest muidu ei saanud kuidagi teada, kas näiteks leib on ikka leib või hoopiski saksa Leib ’keha’, et olema võib olla nimisõna, et liiwa võib olla leib jne. Kui aga sõnaloendi iga sõna tuleb tema lausekontekstis üle vaadata, peab iga lauset lõpuks lugema just nii mitu korda, kui mitu sõna selles lauses on. Aja kokkuhoidu polegi. 

See oli omal ajal uuenduslik ning ootamatu tõdemus. Sõneloendi märgendamine oli ju tavapärane väljaspool Eestitki.

Uued katsetused uuel aastatuhandel 

Uut tarkvara Vakker hakkasin tasapisi tegema 2000. aastal ja põhiosas sai see valmis 2003. aastaks. Vakkeri abil on koostatud Heinrich Stahli tekstide sõnastik ja märgendatud hulk vana kirjakeele korpuse tekste. Põhimõtteliselt võimaldab Vakker märgendada ka päris automaatselt, aga selle funktsiooni kasutamisel oleme olnud üliettevaatlikud (vt allpool).

Lisaks sellele, et Vakker on jooksva teksti, mitte sõnaloendi märgendamiseks, sai nüüd appi võetud ka moodsaid keeletehnoloogilisi vahendeid, näiteks Filosofti morfoloogiaanalüsaator ESTMORF. Muidugi ei oska tänapäeva keele jaoks välja töötatud analüsaator vanas ebakorrapärases kirjaviisis sõna kohta kohe öelda, mis vormis sõna on ja mis märksõna sobiks. Selle jaoks sai genereeritud umbes 200 teisendusreeglit, mis muudavad tekstisõna tänapäevaseks, enne kui see morfoloogiaanalüsaatorile ette antakse (nt teevad need reeglid sõnast twl sõna tuul ja sõnast vssu sõna usu ja sõnast hoischkab sõna hõiskab). Reegleid saab tarkvara kasutaja ise ka muuta, kustutada ning lisada. Seesugust tänapäevastamist nimetatakse normaliseerimiseks.

Lisaks normaliseerimisele ja ESTMORFile arvestab Vakker ka kõigi juba märgendatud sõnadega, ennustab morfoloogilist vormi sõnalõpu järgi ning oletab sõnatüve, ignoreerides teatud sõnalõppe. Kõiki neid võimalusi saab ükshaaval sisse ja välja lülitada. 

Vale on väide, nagu aitaks Vakker ainult sagedaste sõnade märgendamisel.

Vakker pakub märksõnavariandid (ja iga märksõnavariandi jaoks vastava grammatilise info), mille hulgast kasutaja valib konteksti sobiva või siis sisestab ise sobiva, kui seda pakutute hulgas pole. Juba pärast esimese 1000 Heinrich Stahli sõna märgendamist suutis Vakker pakkuda õige märksõna rohkem kui 90%-le tekstisõnadest, pärast 4000 sõna märgendamist oli tulemus veelgi parem.

Märgendustöö on siiski aeganõudev, sest iga tekstisõna puhul otsustab lõpliku märgenduse kasutaja, mitte programm. Teisiti pole 100%-line täpsus vanade tekstide puhul võimalik.

18. sajandi tekstid ja peaaegu automaatne märgendus

18. ja 19. sajandist on aga juba niivõrd palju materjali, et selle kõige käsitsi läbivaatamiseks ei ole meil ressurssi. Võib-olla pole nende puhul päris 100%-line täpsus vajalikki. 17. sajandi tekstid ei ole tänapäevasele lugejale ilma märgenduseta arusaadavad, aga 18. sajandi tekstid on juba üsna kenasti loetavad, nii et märgenduse esmaeesmärk siin on pigem uurijat huvitavate tekstide leitavuse parandamine.

Siiski, keeleteadlane vajab ikkagi korrektset märgendust. Keeleteadlasele võib isegi 10% vigu olla uurimist takistav (ja ainult 10% vigu on ebastandardsete tekstide puhul praegu veel kättesaamatu).

Oletame, et keeleteadlast huvitavad viimase aja keelemuutused, mida ta soovib uurida korpuspõhiselt, lootes suuremahulistest andmetest piisavalt palju põnevat materjali leida. Oletame ka, et tema kasutatava korpuse märgendustarkvara treenimise ajal ei ole veel kuigi laialdaselt levima hakanud sõna õlu norminguvastane käänamine õlu : õlu (pro õlle), nii et uurija ei aima veel selle võimalikkust ega tea seda otsida. Usaldades märgendust, ei saa ta kunagi teada, et omastava vorm õlu on juba tekstides olemas (kui see talle just päris juhuslikult silma ei jää), sest märgendustarkvara analüüsib selle kõhklusteta lühikeseks mitmuse seesütleva käände vormiks sõnast õlg (kirjakeeles on korrektsed rööpvormid õlgadest ehk õlust). Just nõnda tänapäeva korpustes muide ongi:

  • www.tarbijakaitse.ee: [ Baltika sai ka parima eksportööri tiitli , ] [ müües välismaale üle 70 protsendi Venemaalt eksporditud õlust õlg+ust (S Pl Ela) . ] (etTenTen korpus)

Mittestandardsete tekstide automaatse märgenduse suurimaks probleemiks ongi olukorrad, kus üks või teine tekstisõna on ka ilma normaliseerimata tänapäeva keeles olemas, ainult et hoopis teises tähenduses. Näiteks töine, mis vanas tekstis tähendab hoopis ’teine’. Või nimetu, mis vanas tekstis tähendab ’nimetatud’. Või öösilt, mis tähendab ’öösel’. Otsides näiteks märksõna öösel, jääb osa vasteid leidmata, sest need on saanud hoopiski märksõna öös. See võib uurimistulemusi oluliselt mõjutada.

Üks võimalik lahendus sellele probleemile on, kui märgendustarkvara lisab märgendusele tõenäosushinnangu, mis sõltub muu hulgas sellest, kas algoritmi pakutav märksõna esineb sama liiki ja sama ajastu tekstides ka mõnes muus vormis. Sõnad nimetu ja öös ja töine on 18. ja 19. sajandil pigem tundmatud, need saavad madala tõenäosushinnangu ja tänu sellele korpuse märgendaja teab nende märgenduse üle kontrollida. Nii ei lähe haruldased sõnad ega vormid uurijate jaoks kaotsi.

Parema tulemuse saavutamiseks tasub tõenäosushinnanguid täpsustada iga teksti jaoks eraldi. Näiteks kokaraamatus on vorm maksa suure tõenäosusega nimisõnast maks, aga mõnes muus tekstis võib see olla eitav vorm sõnast maksma või isegi murdeline maksta.

18. ja 19. sajandi avalikult kasutatavate korpusetekstide automaatmärgendusel jätame madala tõenäosushinnanguga info tekstisõnadele lisamata. Parem olgu märgendatud vähem, aga võimalikult korrektselt, kui palju, aga vigaselt.

Kui uurija ei saa märgendust usaldada, peab ta tegema erinevate sõnakujudega (sõnedega) lisapäringuid ja kõik vastused üle vaatama: märksõnaotsingu vastused sellepärast, et märksõna võib olla vigane, sõneotsingud sellepärast, et need kõik ei pruugi sobida soovitud märksõnaga. Kui uurija saab märgendust piisavalt usaldada, aga märgendatud pole kogu tekst, peab ta küll tegema lisapäringuid erinevate sõnakujudega, ent üle vaadata tuleb ainult need vastused, millel veel pole märgendust.

Mõne nädala eest laadisime vana kirjakeele korpusesse üles kirjeldatud moel märgendatud Lithanderi kokaraamatutõlke aastast 1781. Ettevaatliku automaatmärgenduse sai 83% selle teksti sõnadest. 

Järgmiste tekstide üleslaadimisega ootame, kuni oleme saanud kasutajatelt piisavalt tagasisidet. Kas Lithanderi märgenduses on mingeid segavaid ja süstemaatilisi vigu? Kui palju neid välja tuleb? Head katsetamist!

Kommentaarid