[voikko] HY:n morfologinen jäsennin omorfi

Flammie Pirinen flammie at iki.fi
Fri Jan 11 02:43:08 EET 2008


2008-01-10, Harri Pitkänen sanoi:

> On Thursday 10 January 2008, Flammie Pirinen wrote:
> > <http://svn.gna.org/viewcvs/omorfi/trunk/joukahainen.xslt?rev=16&view=marku
> >p> Kasasin tuonne joukahainen.xml:stä saman muunnoksen kuin
> > kotus-sanalistasta nyt. En täyttänyt vielä taivutusluokkien tai
> > astevaihtelun kuvausta jos siihen olisi valmis loitsu jossain, mutta
> > jos tuon täydentää niin kai pitäisi saada perustaivutuksen osalta
> > sellainen vertailukelpoinen transduktori, jossa on
> > joukahainen.xml-sanasto mukana.
> 
> Tämän tekeminen kokonaan taivutus- ja astevaihteluluokkineen xslt:n
> avulla vaatii jonkin verran sellaisen koodin kirjoittamista
> uudelleen, joka on jo Python-muodossa olemassa. Ei tosin kohtuuttoman
> paljon, mutta asiaa kannattaa ehkä miettiä. Lisäksi Python-pohjainen
> Joukahainen->Kotus-astevaihtelumuunnin olisi xslt-pohjaista
> hyödyllisempi siinä, että sen avulla voisin lisätä
> Kotus-astevaihteluluokan näkyviin suoraan Joukahaiseen.

Niin koodi itsessään on melko triviaali ja bongasinkin noita osia jo
tuolta svn:stä. XSLT:n käyttö XML:n käsittelyssä on teoreettisesti
puhtain ratkaisu, harmi vaan ettei XSLT:stä voi tuollaisia käsittelyjä
vissiin hirveän helposti delegoida oikeille ohjelmointikielille.

Onko jossain sellainen python-koodi joka lukee joukahaisen dataa
jostain johonkin datarakenteeseen siten, että sen voisi dumpata SFST:n
ymmärtämään leksikkoon yksinkertaisella läpikäynnillä? Tein tuon
XSLT-koodin osin siksi että se oli melko helppo kopioida kotus.xslt:stä.

Lex-tiedoston muotohan on tällä hetkellä omorfissa sellainen, että
siinä on ”sanakirjamuoto <taivutusluokka> <astevaihtelu>?
<vartalovokaali>? <monikkosana>?” per rivi, missä ? ilmaisee
ehdollisuutta.

> Tosin on myös niin, että osa tuosta Python-koodista (ja suurin 
> osa .aff-tiedostojen formaatista) periytyy jo Hunspell-fi-projektin
> ajoilta, ja voi olla jo tullut tiensä päähän uudelleenkäytettävyyden
> kannalta. Näitä taivutusten kuvauksiakin voisi ajatella
> siirrettäväksi XML-muotoon, jos se on omorfin kannalta helpompaa.

Olisi yleisellä tasolla kätevää jos olisi jokin tunnettu ja
pitkäkestoinen vakuuttava säilytysformaatti, jota käyttää vastedes
aina, vaikka triviaalejahan nämä ovat eivätkä kovin vaativia kirjoittaa
joka toinen vuosi eri menetelmillä uudestaan. Noh, ylipäätään varsinkin
jos XSLT:tä käyttää niin datan vetäminen XML-tiedostoista on melkein
hardkoodausta järkevämpää, mutta toisaalta tällaista morfologiahuttua
miettiessä data on niin stabiilia, että hienojen rakennelmien kasaus on
lähinnä teoreettisesti kaunista.

> Jos halutaamuuntaa Joukahaisen astevaihtelutyypit Kotuksen 
> astevaihtelutyypeiksi, pitäisi sen onnistua Pythonilla ottamalla
> pohjaksi funktion __apply_gradation tiedostosta
> http://voikko.svn.sourceforge.net/viewvc/voikko/trunk/tools/pylib/voikkoinfl.py?view=markup
> ja muuttamalla vain return-lauseet niin, että ne palauttavat Kotuksen 
> astevaihtelutyyppien nimet. 

Juu näyttää tutulta, vaan lähes kaiken tarvittavanhan astevaihtelusta
saa aina tietää katsomalla astevaihtelun alaisen merkin ja vasemman
kontekstin, sekä arpomalla suunnan jos tarvitsee.  Hieman samaahan
omorfissa on toteutettu paikanna-av.sfst:ssä, joka tietää av-luokan
muttei vaihtelevan äänteen sijaintia, tosin omorfissa nimenomaan niin
että ensin paikannetaan ja sitten vasta leikataan.

En vielä ihan hahmota tuota voikon kokonaisuutta, tarkoitatko että jos
tuon __apply_gradationin kopioi ja muuttaa palauttamaan kotus-luokat,
se on käytettävissä jotensakin suoraan joukahaisen sanojen
kotusluokkien tunnistamiseen?

> Kuinka täydellinen tuo omorfin taivutusluokkien kuvaus muuten on
> harvinaisten tai poikkeavien taivutusten osalta?

Omorfi toteuttaa perussanakirjan luokituksen taivutusluokat, onhan
niissä harvinaisiakin. Muutama tiedetty poikkeus on kanssa, joiden
toteutus on tavallaan olemassa käsin kirjoitettuna leksikkotiedostossa
(poikkeukset.lex, käytännössä muistaakseni olla, meri, veri, aika ja
poika), mutten ole niiden suhteen nähnyt paljoa vaivaa koska teoriassa
hyvä tavoite olisi että sanalistassa on kaikki tarvittava data tulevia
kehityksiä varten - mutta sitten taas ei ole tarpeeksi tietoa sanalistan
tulevaisuudesta.

Onko voikossa jossain päin listaa tms. noista harvinaisista ja
poikkeavista tapauksista? Itselleni ei nyt tule mieleen muita kuin nuo
muutamat, eikä testatessakaan ole tullut vastaan suurempia.

-- 
Flammie, computer scientist-linguist B.Sc., Gentoo translator, and a 
freak. <http://www.iki.fi/flammie/>



More information about the voikko mailing list