[hunspell-fi-devel] Lista johtimista ja rajapinta-asiaa

Harri Pitkänen hatapitk at cc.jyu.fi
Fri Nov 25 22:29:21 EET 2005


Etteivät nämä pohdinnat erilaisista johtimista ja yhdyssanatyypeistä jäisi 
vain pelkästään tänne listalle pyörimään, kokosin tähän asti käsitellyt 
tapaukset listaksi yhteen paikkaan:

http://hunspell-fi.org/johtimet.odt

Tuo on OpenDocument-muodossa siksi, että sitä on siinä muodossa helpompi 
editoida ja testailla tekstinkäsittelyohjelmissa (esimerkkisanat ovat suoraan 
oikoluettavissa Soikolla) ja sen saa siitä myös helposti Word-muotoon jos 
haluaa kokeilla Wordin oikolukua samoihin esimerkkisanoihin.

Tuossa listassa on tämänhetkinen käsitykseni siitä, mitkä yhdyssanat ja 
johdokset ainakin saadaan automaattisesti, ja mitä taas ei voida tehdä 
automaattisesti. Sitä voi kommentoida, ja erityisesti johtimia saa lisätä 
listaan. Niissä kielioppikirjasta (Nykysuomen käsikirja) kopioiduissa 
sivuissa, jotka minulla itselläni on, listataan nopeasti laskettuna 112 
erilaista tapaa johtaa sanoja, eli urakkaa tuon listan tekemisessä kyllä 
riittää. Jos sinulla Tuomo on käytössä ihan kokonainenkin kielioppikirja ja 
kokemusta näistä asioista, niin voit ihan vapaasti ottaa ja lisätä tuohon 
taulukkoon uusia johtimia, testailla (mahdollisimman omituisia sanoja 
käyttäen) että muodostaako Soikko kyseiset johdokset automaattisesti kaikista 
tietyn sanaluokan sanoista ja sitten kirjata ylös mielipiteesi siitä, miten 
meidän tulisi missäkin tilanteessa toimia. Sitten kun tuo lista alkaa olla 
vähän täydellisempi, sen voi muuntaa html-muotoon ja laittaa luokittelijoiden 
ja sanaston kokoajien avuksi.


Olen myös mietiskellyt tuota Jorin esittämää ajatusta oikolukuohjelman 
rajapinnan laajennuksesta. Ja mitä enemmän sitä mietin, sitä paremmalta tuo 
ajatus minusta alkaa tuntua. Tässä taitaa olla hyvinkin kyse ominaisuudesta, 
joka olisi erityisen hyödyllinen suomen kaltaisille kielille, jossa sanojen 
oikeinkirjoitus ja kielioppi menevät osittain päällekkäin. Tuon laajemman 
rajapinnan kautta oikolukuohjelma voisi siis informoida käyttäjää ongelmista, 
jotka eivät ole puhtaasti oikeinkirjoitusvirheitä vaan tilanteita, joissa 
käyttäjä on todennäköisesti soveltanut jotakin sanamuodostustapaa 
järjettömällä tavalla.

Jos tätä nyt haluttaisiin viedä eteenpäin, niin olen sitä mieltä, että tämä 
tavoite kannattaa huomioida mahdollisimman aikaisessa vaiheessa, siis 
käytännössä jo heti. Eli vaikkapa siten, että sanastotietokantaan 
lisättäisiin uusi kenttä, johon merkittäisiin jollakin asteikolla, kuinka 
tavallisesta sanasta on kyse. Ja sama tehtäisiin taivutussäännöille, 
johdoksille ja yhdyssanojen muodostussäännöille. Sitten oikoluvun yhteydessä 
jokaiselle sanalle laskettaisiin tuon informaation perusteella pistemäärä, 
joka sitten annettaisiin edelleen tekstinkäsittelyohjelmalle, joka saisi 
tehdä sillä mitä haluaa. Eli alleviivata epäilyttäviä sanoja tai laskea 
asiakirjan sanoille keskiarvon, joka kuvaisi jollain tavalla tekstin 
luettavuutta. Lisäksi olisi mahdollista myös ehdottaa käyttäjälle 
harvinaisten muotojen tilalle vastaavia, mutta tavallisempia sanoja. 
Esimerkiksi jos käyttäjä kirjoittaa "katiskain", niin ohjelma voisi ehdottaa 
"katiskoiden" vaikka molemmat ovat periaatteessa oikein. Tämän toteuttamiseen 
SFST olisi mainio väline, sillä se kykenisi myös muodostamaan nuo ehdotukset, 
mihin Hunspell ei pysty. Eli siis (ohjelman mukana tulevan saksan sanastoa ja 
kielioppia käyttäen) SFST sekä tunnistaa sanoja että generoida halutun muodon 
tietystä sanasta:

#halutaan tietää, mikä "hast" on
analyse> hast 
haben<+V><2><Sg><Pres><Ind>
#kyseessä siis on olla-verbin indikatiivin preesensin yksikön toinen persoona

#mikä on olla-verbin indikatiivin imperfekti yksikön ensimmäisessä persoonassa
generate> haben<+V><1><Sg><Past><Ind> 
hatte

Tätä jälkimmäistä ei Hunspellillä pysty tekemään. Mutta vielä ei ole niinkään 
oleellista ratkaista sitä, mitä välinettä käytämme, sillä sama sanasto ja 
samat sanamuodostussäännöt tarvitaan molemmissa.

Sitten jos tätä laajennettua oikolukua haluaa johonkin oikeaan käyttöön, niin 
uskoisin, että KDE:hen se olisi ensimmäisessä vaiheessa helpointa saada 
mukaan. KSpell-kirjasto on tietääkseni muutenkin näkemässä aika suuria 
muutoksia KDE4:n kehityksen mukana, joten samalla tällaisenkin ominaisuuden 
lisääminen saattaisi onnistua ilman suurempaa byrokratiaa. Aikaa tähän olisi 
vielä vähintään puoli vuotta, eli ihan riittävästi. Ja KDE4:n on tarkoitus 
toimia Windowsissakin, joten kaikki hyötyisivät tästä ominaisuudesta tai 
ainakin pääsisivät kokeilemaan sitä. OpenOfficen kannalta ajankohta on 
huonompi nyt kun 2.0 on vasta julkaistu, ihmettelisin jos tällainen muutos 
ohjelmointirajapintoihin hyväksyttäisiin johonkin 2.0.x-versioon.

Harri



More information about the devel mailing list