Kotimaisten kielten tutkimuskeskuksen sanalistan komputerisointi

Johdatus

Tarkoituksena olisi muokata annettu sanalista sellaiseen muotoon, että siitä voidaan muodostaa transduktori. Transduktorin muodostamiseen käytetään jotakin valmiiksi saatavilla olevaa ohjelmaa, eli käytännössä sanalista tulee muokata käytettävän 'transduktori kääntäjän' ymmärtämälle formalismille.


Syötteet ja tulosteet

Syötteenä saadaan sanalista, joka ilmeisesti koostuu sanan sanakirjamuodosta ja siihen liittyvästä taivutustyypistä. Taivutustyyppi on toistaiseksi vielä hieman epäselvää. aineisto esimerkki

Tulosteena on sama informaatio esitettynä halutussa formaatissa, mutta lisäksi tulosteeseen lisätään tieto erilaisten taivutusmuotojen ilmentymistä, siis pelkän taivutustyyppiä ilmaisevan numeron (tai muun identifikaattorin) lisäksi implementoidaan myös varsinaiset taivutusmuodot. Mahdollisuuksien mukaan toteutetaan ohjelma sen verran geneerisesti, että tuettuja tuloste formaatteja voidaan helposti toteuttaa useampia kuin yksi.

Tulosteiden osalta on hieman ongelmallista, mitä kaikkea pitää ottaa huomioon. Ilmeisesti riittää, että sanalistassa esiintyvä sana muokataan ainoastaan sellaiseen muotoon, että siitä voidaan muodostaa kaikki tarpeelliset muodot. Tämä saattaa kuitenkin olla ongelmallista, koska kaikkien sanakirjamuodot eivät välttämättä sisällä tarvittavaa runko-osaa (?), esim. sana 'yö'.


Pohdintaa lähteistä

Lähtökohdaksi tarvitaan jonkinlainen kattava esitys erilaisista taivutusmuodoista. Tähän tarkoitukseen soveltuu mitä luultavimmin kirja Iso suomen kielioppi (Hakulinen et al.). Luultavasti asianomainen teos tarjoaa melko kattavan esityksen kaikesta tarpeellisesta sanojen taipumiseen liittyvästä.

Toisekseen tarvitaan määrittelyt halutuista tuloste formalismeista. Oletettavasti formalismit muistuttavat melko paljon toisiaan, mutta jokatapauksessa olisi hyvä haalia käsiin mahdollisimman monta potentiaalista formalismia, joista sitten poimitaan yhteiset ominaisuudet ja pyritään ratkaisemaan ristiriidat siten, että ylitsepääsemättömiä ongelmia muunnoksessa ei esiinny.

Suotavaa olisi, että käytössä olisi myös asianomaiset kääntäjät, että lopputulosta voitaisiin testata.


Rajauksia

  • Numeraalien generatiivinen luonne taidetaan jättää kokonaan käsittelemättä. Sanalistan sisältämät yksittäiset numerot käsitellään.
  • Yhdyssanojen muodostumiseen ei oteta kantaa, sanalistassa olevat yhdyssanat käsitellään.


Ohjelmointi

Syötteiden käsittely esimerkkejä

Ohjelmointikielistä hallitsen parhaiten Javan, joten se taitaa olla se kieli jolla tämän toteuttaisin. Ohjelmasta tulisi näin automaattisesti varsin modulaarinen ja laajennettava. Ohjelman osat on hahmoteltu seuraavassa listasassa:

  • Sanalistan lukeminen: Tähän pitää siis tietää millaisessa formaatissa lähtödata on. Sanalista luetaan ohjelman tietorakenteisiin, joko yksi sana kerrallaan tai köntässä, riippuen aineiston koosta.
    Toteutus: triviaali
  • Sanalistan tietorakenne: Tämä tietorakenne on luultavasti erittäin yksinkertainen.
    Toteutus: triviaali
  • Sanan analysointi: Sanantaivutuksen muutoskohdan tunnistaminen, ja päätteiden valinta ym. Tämä on se ongelmakohta.
    Toteutus: vaikea
  • Middleware tietorakenne: Tämän tietorakenteen olisi siis tarkoitus sisältää kaiken mahdollisen tiedon yksittäisen sanan taivutuksesta. Analysaattori muodostaa siis lähtödatan sanasta yhden ilmentymän tästä rakenteesta.
    Toteutus: vaikeahko
  • Muunnos specifin jäsentimen ymmärtämään muotoon: Olisi ehkä periaatteessa hyvä toteuttaa tämä siten, että muunnos määriteltäisiin jonkinlaisen asetustiedoston avulla, jolloin kustomoitavuus uusille jäsentimille olisi helppoa. Tämä taitaa olla kuitenkin melko vaikea operaatio, johtuen erityisesti siitä, että jäsentimet voivat olla täysin eri luonteisia, ja niiden kaikkia ominaisuuksia on ehkä vaikea hahmottaa. Ja koska koodin on mahdollisesti tavoite olla avointa, olisi varmaan helpointa toteuttaa jokaisen jäsentimen vaatima muutos erillisenä.
    Toteutus: vaikeahko
  • Tulosteen ulostus: Tämä siis lähinnä ainoastaan tulostaa (esim. suoraan tiedostoon) jäsenninspecifin tulosdatan.
    Toteutus: triviaali


Olemassa olevia ohjelmistoja

  • SFST - Ohjelmisto saatavissa, ilmainen , ohjelmointikieli C/C++. (Manuaali).


Ehkä aihetta sivuavia:


Selvitettävät asiat

  • Lähtöaineiston formaatti
  • Tulostetiedoston formaatti, useita



-- PetriUusitalo - 13 Sep 2006
Topic revision: r8 - 2008-11-25 - HennaRiikkaLaitinen
 
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