[voikko] libvoikko HFST-transduktoreilla

Flammie Pirinen flammie at iki.fi
Fri Oct 30 02:15:16 EET 2009


2009-10-29, Harri Pitkänen sanoi:

> On Thursday 29 October 2009, Flammie Pirinen wrote:
> > Kokeilin toteuttaa voikko.h:ssa määritellyn rajapinnan käyttäen
> > pelkästään HFST-transduktoripaketteja
> > <http://www.helsinki.fi/~tapirine/tmp/huikka-0.1-alpha.tar.bz2>. Jos
> > oikein ymmärrän niin jos tämän tekisi täysin voisi kokeilla kaikkea
> > mitä voikko-sovellukset jo tukevat transduktoreilla, eikä tarvitsisi
> > duplikoida työtä millä portata transduktoripohjaiset morfologiat
> > enchantille, OO.o:lle jne? Kuulostaisiko tämä järkevältä työltä?
> 
> Toinen vaihtoehto on muokata libvoikkoa siten, että toteuttaisi
> HFST:n avulla tiedostossa src/morphology/Analyzer.hpp määritellyn
> rajapinnan. Tuohonhan tarvitaan oikeastaan vain yhden metodin
> toteutus (alustukset on vielä lisäksi hoidettava muualla), jonka
> jälkeen kaikki oikolukuun, tavutukseen, morfologiseen analyysiin ja
> kieliopin tarkistukseen liittyvät toiminnot toimisivat suoraan HFST:n
> päällä.

Tuo kuulostaa kanssa ihan mahdolliselta ja kätevältä. Käytin tuossa
toisessa toteutuksessa neljää automaattia jotka vastaavat funktioita
osin optimointisyistä, kysymys onko jokin sana hyvä ratkeaa
yksinkertaisella yksinauhaisella automaatilla joka on väistämättä nopea
ja tehokas, katso kaikki morfologiset analyysit taas nykyisellään
vaatii isomman ja hitaan kaksinauhaisen automaatin (ei välttämättä,
mutta niin on tähän mennessä aina tehty). Ehdotusten aikaansaaminenkin
onnistuu kuten sanottua vain yhdellä kaksinauhaisella painollisella
automaatilla pelkästään hakemalla merkkijonolla. Tästä tietysti myös
seuraa että kaikki toimintalogiikka on automaateissa joten osaan itse
viritellä niitä tarpeen mukaan, mikä on aina hauskaa.

Mutta niin, ilmeisesti tuon analyysifunktion osalta riittäisi jos
osaisi huolella koodata esityksen morfologisesta analyysistä jonka
voikko tai suomi-malaga tuottaa, niin saisi suoraan saman lopputuloksen
oikoluvussa ja kielentarkistuksessa? Tätä esitystä ei kuitenkaan kai
sanota suoraan Analyzer.hpp- tai Analysis.hpp-tiedostoissa.

Omorfin analyysit saa stringeinä n. parilla funktiokutsulla pahimmillaan
muodossa:

talo
[##]talo[POS=NOUN][KTN=1][NUM=SG][CASE=NOM][##]	2

talonmies
[##]talonmies[POS=NOUN][KTN=42][NUM=SG][CASE=NOM][##]	2
[##]talo[POS=NOUN][KTN=1][NUM=SG][CASE=GEN,ACC][#][?]mies[POS=NOUN][KTN=42][NUM=SG][CASE=NOM][##]
11

josta varmaan on helppo poimia aika paljon kaikenlaista ja lisääkin
saada mukaan, mutta näistä voisi tietysti helposti lähtöpuolella
työstää sellaista mikä parhaiten jäsentyy, se on useimmiten helpompaa
kuin koodata C:llä merkkijonojäsennystä.

-- 
Flammie, computer scientist bachelor, linguist master, free software
Finnish localiser, and more! <http://www.iki.fi/flammie/>



More information about the voikko mailing list