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

Harri Pitkänen hatapitk at cc.jyu.fi
Mon Feb 20 18:56:02 EET 2006


On Monday 20 February 2006 07:20, Hannu Väisänen wrote:
> Lisätietoja on sivulla http://joyds1.joensuu.fi/sukija/sukija.html

No mutta, tässäpähän meillä on toimiva oikolukuohjelma:

$ time 
unmunch /usr/share/myspell/dicts/fi_FI.dic /usr/share/myspell/dicts/fi_FI.aff 
2>/dev/null |malaga -m suomi.pro > /dev/null

Analysed wordforms:        1363515
Recognised:                1353032 (99.23%)
Recognised by combi rules: 1353032 (99.23%)
Results per wordform:      1.918
Analysis run time:         899 sec
Avg. wordforms per second: 1516

real    14m59.280s
user    14m55.224s
sys     0m0.842s

Eli tuo kyllä toimii melkoisen hyvin (Hunspell-fi tunnistaa vain 15 
prosenttia). Testasin myös noin 300 sanan omalla testiaineistollani (joka 
toimii oikein Hunspellissä) ja senkin tämä Malaga osasi käsitellä lähes 
virheettömästi. Sompa-sanan taivutuksessa on jotain ongelmia:

harri at c2:/tmp/suomi-malaga-0.1$ malaga -m suomi.pro
sompineen
1: "sompineen": unknown
sompoineen
2: "sompoineen": "sompa"

Tuo sanojen käsittelynopeus on noin viisi kertaa hitaampi kuin hf-testaa 
-ohjelmalla, joka siis on kirjoitettu osittain Pyhtonilla. Tämä on ehkä 
hiukan huolestuttavaa, varsinkin kun ottaa huomioon että tämä Python-toteutus 
on vain prototyyppi ja siitä on tarkoitus päästä eroon jo ensi kuussa. 
Kyllähän tuo 1500 sanaa sekunnissa (AMD Athlon 64 2800+) on riittävän hyvä 
oikoluvussa, mutta menee vähän tiukalle sitten kun pitäisi ruveta 
ehdottelemaan korjauksia väärin kirjoitetuille sanoille. Jos ajatellaan, että 
edes kaikki yhden kirjaimen lisäykset, poistot ja vaihdot haluttaisiin 
tutkia, ja aikaa on käytettävissä ehkä sekunnin kymmenesosa, niin se on siinä 
ja siinä... Mutta tätähän voi yrittää optiomoida, eikä tuo korjausten 
ehdottaminen mielestäni ole muutenkaan niin kriittinen ominaisuus 
oikoluvussa. Virtuaalimuistin käyttö malaga-prosessilla oli noin 15 
megatavua, mikä on ihan järkevä määrä.

Minulla on myös virheellisten sanojen testilista, ja malaga tunnisti siltäkin 
pari sanaa:
"onttoin": "ontto"
"viivotin": "viivoittaa"


Mutta siis kaiken kaikkiaan täytyy tunnustaa, että tässä on todella pitkälle 
edistynyt ohjelma. 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. Tuo sanaston luokitus näyttää erilaisista nimistä huolimatta olevan 
jotakuinkin sama kuin meidän käyttämämme luokitus, ja koska lisenssitkin ovat 
samat, niin tässä voisi olla ehdottomasti yhteistyön paikka. Se, että 
kannattaisiko GPL-lisenssistä huolimatta käyttää malagaa suoraan 
oikolukuohjelman ytimenä on myös näissä olosuhteissa ihan vakavasti 
harkittava asia. Ongelmiahan siitä seuraa, mutta ehkäpä on järkevää 
selvitellä että kuinka vakavia ne ovat ennen kuin aletaan uhraamaan 
mahdottomasti aikaa Hunspellin kehittämiseen.

Yritän perehtyä teknisiin yksityiskohtiin myöhemmin, nyt en valitettavasti 
ehdi. Pari kysymystä kuitenkin:
- Millä tavalla sanasto on kerätty?
- Aiheuttaako UTF-8 -merkistöön siirtyminen mitään oleellisia teknisiä 
ongelmia, vai riittääkö pelkkä tiedostojen uudelleenkoodaaminen? Olisi hyvä 
jos malagasta voisi käyttää uusinta versiota, vanhassa pysytteleminen voi 
aiheuttaa pulmia tulevaisuudessa.
- Millä tavalla malagan nopeus sanojen käsittelyssä on riippuvainen sanaston 
koosta?
- 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.
- Saako malagasta ulos annetun yhdyssanan jaon osiinsa? Tätä tarvittaisiin 
tavutukseen.

Harri



More information about the devel mailing list