[hunspell-fi-devel] Tavutus

Harri Pitkänen hatapitk at cc.jyu.fi
Wed Feb 8 13:27:02 EET 2006


Tästä aiheesta esitettiin yleisökysymys Open Source 2006 -tapahtumassa, ja 
asian suhteen on viime aikoina tapahtunutkin jotain, joten ajattelin 
kirjoittaa asiasta ja selventää, missä ollaan menossa.

Ajatukseni on ollut toteuttaa tavutus kirjoittamalla algoritmi joka 
approksimoisi mahdollisimman hyvin suomen kielen tavutussääntöjä [1]. Osa 
näistä säännöistä on hyvinkin helppoja, osa vaatii vähän enemmän kokeiluja ja 
"arvaamista" ja osa onnistuu kunnolla vasta sitten, kun oikoluku on saatu 
toimimaan (yhdyssanojen jako osiinsa). Yksinkertaisimman säännön, eli jaon 
konsonantti-vokaaliyhdistelmien edestä toteutin jo muutama viikko sitten, ja 
se löytyy CVS:stä unopkg-moduulista. Mutta pitemmällekin olisi mahdollista 
mennä, ja monissa tapauksissa jopa tuo yhdyssanojen jako voitaisiin 
väliaikaisesti toteuttaa heuristisesti listaamalla sellaiset 
kirjainyhdistelmät joita tavallisesti ei esiinny muualla kuin yhdyssanoissa. 
Tällaisiin sääntöihin itse asiassa perustuukin Kauko Saarisen TeX 
-tavutussäännöstö [2] josta noita sääntöjä voi tarpeen mukaan poimia. 
Yksinkertaistetusti sanottuna noita sääntöjä voi tulkita siten, että 
parittomat numerot esittävät tavutuskohtia ja suurempi parillinen numero taas 
estää tavutuksen annetussa paikassa.
Tapio Lehtonen on ollut kiinnostunut auttamaan algoritmin ohjelmoinnissa, 
mutta sitä varten tarvitsisimme riittävästi testiaineistoa. Toisin sanoen 
sanoja valmiiksi tavutettuna. Joten jos jollakin on ylimääräistä aikaa niin 
tällaisen aineiston kokoaminen voisi olla hyödyllistä. Sanoja voi ottaa tässä 
tapauksessa suoraan vaikkapa jostain suomenkielisestä tekijänoikeuksista 
vapaasta elektronisesta kirjasta (ei haittaa että sanat ovat tyyliltään 
vanhoja), poistaa kaksoiskappaleet, laittaa sanat tekstitiedostoon yksi sana 
riviä kohti ja sitten tehdä tiedostosta kopio, johon merkitään kaikki 
tavujaot. Esimerkiksi

kuorma-autovaa'allaan
kansaneläkelaitos

kuor-ma-au-to-vaa-al-laan
kan-san-e-lä-ke-lai-tos

Tietysti mukaan kannattaa ottaa kaikenlaisia tapauksia, sekä helppoja että 
vaikeita. Myös vierasperäisiä sanoja tarvitaan.

Harri


[1] http://www.ling.helsinki.fi/kit/2003s/ctl190/kt-johd-at-art.html#htoc10
[2] http://heim.ifi.uio.no/~dag/ntug/fihyph



More information about the devel mailing list