[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