OFiTwol: Avoimen lähdekoodin morfologinen jäsennin suomen kielelle

Tämän hankkeen tavoitteena on laatia kohtuullisen helposti ylläpidettävä suomen kielen morfologinen jäsennin, jonka mallin mukaan lingvistit voisivat ylläpitää ja kehittää muidenkin kielten morfologisia jäsentimiä. Ylläpidettävyyteen sisältyy myös tavoite muunneltavuudesta ja joustavuudesta.

Lingvisti tuntee taulukkolaskimen ja se on hänelle käyttökelpoinen työkalu. Taulukon voi tulostaa pilkkujen erottamassa CSV-muodossa, jota on helppo käsitellä Python-skriptien ja CSV-kirjaston avulla. Ylläpito ja kehitystyö voisi toimia seuraavan kaavion mukaan, jossa laatikon mallisia osia voitaisiin käsin päivittää ja soikion malliset syntyisivät mekaanisesti:

DirectedGraphPlugin_1.png diagram

Jäsennintä ylläpidettäessä ja täydennettäessä päivitetään yleensä vain sanastoa (WordsCSV). Jäsentimen rakentamisen alkuvaiheessa laaditaan symboleja, piirteitä, affikseja ja sääntöjä koskevat tiedostot ja viritellään ne toimiviksi. Työn edetessä ne toimivat lähinnä dokumentaationa, josta voi tarkistaa symbolien, piirteiden ja esim. taivutusluokkien käyttöä ja määritelmiä.

Symbolien ja piirteiden taulukot

Merkistön dokumentointia varten olisi oma taulukko SymbolCSV, jossa määritellään ainakin kaikki äännevaihteluita kuvaavat morfofoneemit ja rajasymbolit (jotka voivat olla useammasta merkistä koostuvia symboleja). Kieliopillisia kategorioita kuvaavat morfosyntaktiset piirteet sekä morfologista kombinatoriikkaa ohjaavat yhdistelypiirteet (flag diacritics) esitetään erillisessä taulukossa FeatureCSV. Merkistö on usein sen verran moninainen ja sisältää paljon päätöksiä käytännöistä, että se kannattanee dokumentoida selkeästi ja tällainen taulukko tarjoaisi siihen hyvät puitteet. Samoja symboleja (samoilla määritelmillä) tulisi käyttää sekä säännöstössä että leksikossa (ja symbolilista voidaan viedä taulukosta mekaanisesti säännöstöön ja leksikkoon). Symbolien taulukkoon voi mukavasti sijoittaa esimerkkejä ja vastaesimerkkejä ainakin morfofoneemien käytöstä. Esimerkit toimivat lingvistin tukena mutta ne voidaan myös poimia mekaanisesti sieltä ja testata säännöstöä vastaan. Symbolien ja piirteiden taulukoista on oma erillinen sivunsa.

Säännöstö

Sääntöjä muutetaan harvemmin ja ne kirjoitetaan TWOLC:n muodossa. Sääntöjen aakkostoon pitää lisätä morfosyntaktiset piirteet. Niitä ei tarvittaisi äännevaihteluissa, mutta perusmuotojen generoinnissa niiden pitää olla mukana. Morfofoneemit voisi myös olla hyvä hakea mekaanisesti symbolien taulukosta säännöstön aakkostoon.

Affiksien ja morfotaksin taulukko

Päätteiden ja johdinten kombinoinnin vartaloihin voisi hoitaa kokonaan LEXC:n formalismilla, mutta toisaalta LEXC ei salli kovin mukavaa keinoa antaa samalle leksikkomerkinnälle monta jatkoleksikkoa. Tällainen mahdollisuus on helposti järjestettävissä sillä Python-skriptillä, jolla CSV-taulukko muunnetaan LEXC:n muotoon. Ylläpitämällä affiksileksikkoa erillisenä taulukkona AffixCSV, voidaan saada kaupanpäälliseksi joustavuutta. Samasta affiksitaulukosta voi tehdä erilaisia jäsentimiä kombinoimalla kenttiä eri järjestyksiin tai ottamalla mukaan vain osa niistä. Affiksitaulukosta on oma erillinen sivunsa.

Sanaston taulukko

Lähtökohtana on Kotimaisten kielten keskuksen Nykysuomen sanalista (NSL), mutta siinä on erinäisiä pieniä puutteita ja hankalia käytäntöjä, joiden takia voi olla parempi muuntaa siitä CSV-muotoinen versio LexiconCSV, jota lingvisti ylläpitää. Siihen lisättäisiin uusia hakusanoja tarpeen mukaan ja entisiin tehtäisiin mahdollisia korjauksia.

Sanastotaulukko voisi myös sisältää kenttiä hakusanojen morfosyntaktisille piirteille, mutta niiden saaminen oikeaan kohtaan morfologisen jäsentimen tuloksessa voi olla hankalaa suoraan samalla LEXC-leksikolla, jolla sananmuotojen tunnistus tapahtuu. Taulukkoon talletettuja tietoja voi toki saada mukaan jäsennykseen suoraviivaisesti tekemällä siitä oma vaihe (jonka voi toteuttaa LEXC:n avulla tai vaikkapa Python-ohjelmana). Sanastotaulukosta on oma erillinen sivunsa.

-- KimmoKoskenniemi - 2012-02-04

Topic revision: r10 - 2013-09-17 - TWikiGuest
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback