[hunspell-fi-devel] Sukija - suomen kieltä ymmärtävä indeksointiohjelma, versio 0.1

Harri Pitkänen hatapitk at cc.jyu.fi
Wed Feb 22 11:50:04 EET 2006


On Tuesday 21 February 2006 12:08, Hannu Väisänen wrote:
> On Mon, Feb 20, 2006 at 06:56:02PM +0200, Harri Pitkänen wrote:
> > Analysed wordforms:        1363515
> > Recognised:                1353032 (99.23%)
> > Recognised by combi rules: 1353032 (99.23%)
>
> Lähettäisitkö minulle sähköpostissa listan sanoista, joita
> suomi-malaga ei tunnistanut.

Lähetetään. Näyttävät olevan erikoismerkkejä sisältäviä sanoja ja virheellisiä 
taivutuksia suurelta osin nuo puuttuvat sanat.

> Nykysuomen sanakirja hyväksyy onttojen-muodon lisäksi myös onttoin-muodon.

Tarkistin nyt tämän kielitoimiston sanakirjasta, ja se taas ei hyväksyisi tätä 
muotoa. Mutta jos sanakirjatkin ovat tästä asiasta erimielisiä, niin silloin 
ei taida olla suurta väliä miten tämä luokitellaan.


> > Sanaston laajuus on yli 20000 sanaa, mikä ei tietysti
> > vielä ole hirveän paljon, mutta varmaankin riittävästi jo ihan
> > vakavaankin käyttöön.
>
> Tunnistettuja sanoja on paljon enemmän kuin sanastossa olevia sanoja, sillä
> suomi-malaga tunnistaa myös johdoksia:

Olen pitänyt tavoitetasona tuota Soikon 100000 sanaa, mutta toisaalta emme voi 
tietää sisältääkö tuo luku johdoksia vai ei. Olettaisin että ei sisällä, 
koska muistaakseni Pasi Ryhänen oli sanonut, että Soikon sanastossa on 
yhteensä parikymmentä erilaista sanoihin liittyvää metatietokenttää. Enkä 
ihan heti keksi, mihin noin montaa kenttää tarvittaisiin ellei haluta koodata 
sanojen yhteyteen tietoa niiden johdoksista. Toisaalta taas voi olla niinkin, 
että Soikon sanastossa ei todellisuudessa olekaan 100000 erillistä sanaa ja 
Soikon www-sivulla mainittu luku on laskettu jollain muulla tavalla. Tämä 
sanan määritteleminen on niin vaikea asia, että voi hyvinkin olla että 
tekemäsi sanasto on jo nyt yhtä laaja kuin Soikon. Kokeilemallahan se 
selviää.

> valo -> valoton, valollinen, valottomuus, valollisuus, valoittain (heh heh)
> kirjoittaa -> kirjoittaja, kirjoittajatar, kirjoittajaton,
> kirjoittajallinen, jne
>
> Tällä tavalla saadaan tietysti hyvin paljon sanoja, jotka ovat
> muodollisesti oikein, mutta joita ei ole sanakirjassa.

Tämä ei mielestäni haittaa juurikaan, samahan tapahtuu väistämättä myös 
yhdyssanojen kanssa.

> > Yritän perehtyä teknisiin yksityiskohtiin myöhemmin, nyt en
> > valitettavasti ehdi. Pari kysymystä kuitenkin:
> > - Millä tavalla sanasto on kerätty?
>
> Olen kerännyt sitä itse vuosien mittaan sitä mukaa, kun vastaan on tullut
> sana, jota ohjelma ei tunnista, ja on siinä muistaakseni käytetty jotain
> vanhaa *spell-sanastoa.
>
> > - Aiheuttaako UTF-8 -merkistöön siirtyminen mitään oleellisia teknisiä
> > ongelmia, vai riittääkö pelkkä tiedostojen uudelleenkoodaaminen?
>
> Indeksointiohjelma pitää muuttaa käyttämään UTF-8 -merkistöä, mutta se
> on suunnitelmissa joka tapauksessa. Olennaisia ongelmia suomi-malagan
> suhteen ei pitäisi olla.
>
> > - Millä tavalla malagan nopeus sanojen käsittelyssä on riippuvainen
> > sanaston koosta?
>
> Sanaston tietorakenne näyttää olevan AVL tree, eli O(log(n)), missä n
> on allomorfien määrä.

Hienoa.

> > - Voiko malagaa käyttää "toiseen suuntaan", eli jos annamme perusmuodon
> > ja taivutusluokituksen, saako sillä listattua taivutettuja muotoja? Ei
> > tietenkään kaikkia, mutta vaikkapa esimerkiksi sijamuodot.
>
> Mallexin komento ga generoi allomorfeja.
>
> mallex suomi.pro
> ga [perusmuoto: "takki", alku: "tak", luokka: nimisana, jatko: <takki>, äs:
> a]; "take": [perusmuoto: "takki",
> "taki": [perusmuoto: "takki"
> "takke": [perusmuoto: "takki",
> "takki": [perusmuoto: "takki",
>
> (Osa tulostuksesta on poistettu.)
>
> Vastaus kysymykseen on luultavasti, että ei saa, mutta olen kysynyt
> asiaa malagan tekijältä.
>
> Koska malagan lähdekoodi on saatavilla, ei pitäisi olla ylivoimaista
> tehdä sellaista ohjelmaa, joka soveltaa rekursiivisesti ga:ta
> generoitihin allomorfeihin. Päättyykö tällainen algoritmi koskaan on
> kysymys,
>
> joka voidaan jättää lukijalle harjoitustehtäväksi. (-:

Tässä voisi siis olla yksinkertaisempaa turvautua tekemääni Python-ohjelmaan, 
joka jo suoriutuu tästä ongelmasta, tosin vain substantiivien osalta. Riittää 
että lisäämme ne muutamat puuttuvat taivutusluokat ja rakennamme jonkinlaisen 
kuvauksen tekemäni luokituksen ja Suomi-Malaga-luokituksen välille. Pitäisi 
olla suhteellisen yksinkertaista, jos molemmat pohjautuvat samaan Kotuksen 
luokitukseen.
Tätähän ei itse oikoluvussa tarvita, mutta sanastoa kerätessä on helpompaa jos 
voi nähdä suoraan, millaisia taivutuksia syntyy annetulla sanalla ja 
taivutusluokalla.

> > - Saako malagasta ulos annetun yhdyssanan jaon osiinsa? Tätä
> > tarvittaisiin tavutukseen.
>
> Kyllä saa.

Hyvä. Tätä olisi hauska päästä kokeilemaan ihan lähiaikoina.

Minulla on muuten nyt valmiina UNO-komponentti, jonka avulla voi käyttää 
Suomi-Malagaa OpenOfficessa oikolukuohjelmana. Vielä pientä virittelyä 
kuitenkin tarvitaan. OpenOffice muun muassa vaatii, että oikolukukomponentin 
on osattava käsitellä sanoja, joiden lopussa on piste. Tämän Soikko osasi 
tehdä, mutta Malagan kanssa se ei onnistu vielä suoraan. Korjaan ensin tämän 
julkaisen sen sitten testattavaksi tämän viikon aikana.

Harri



More information about the devel mailing list