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

Hannu Väisänen hvaisane at joyx.joensuu.fi
Tue Feb 21 12:08:20 EET 2006


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.


> sompineen
> 1: "sompineen": unknown
> sompoineen
> 2: "sompoineen": "sompa"

Aha. Sompa ei taivukaan niin kuin kampa.
Korjataan.



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

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

Suomi-malaga on tehty sanojen muuttamiseksi perusmuotoon, ja se hyväksyy
muutaman yleisimmän kirjoitusvirheen. Esim. -o(i)ttaa-loppuisista sanoista
se hyväksyy molemmat: kirjottaa, kirjoittaa, varottaa, varoittaa, jne.
Samoin se hyväksyy muodot nuolaista ja nuolasta.

Oikaisuluvun ja indeksoinnin tarpeet ovat erilaiset. Indeksoinnin
täytyy hyväksyä kaikki ne sanat, jotka sattuvat olemaan
indeksoitavissa tiedostoissa, ja oikaisuluvun täytyy hyväksyä vain ne
sanat, jotka ovat "oikein" tällä hetkellä voimassa olevien sääntöjen
mukaan. Tämä ei ole suuri ongelma: tarvitaan vain yksi muuttuja
kertomaan, miten tarkasti oikeinkirjo(i)tussääntöjä noudatetaan.



> 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:

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.



> 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ä.


> - 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. (-:



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

Kyllä saa.



More information about the devel mailing list