[voikko] tokenize isoille dokumenteille

Teemu Kanstrén tkanstren at gmail.com
Wed Jan 6 15:43:16 EET 2016


Kiitos avustasi. Kokeilin tuossa 10k limittiä ja 1.2M merkkiä meni sillä
noin 27s. 1k limitillä noin 6s. Kyllähän näillä viritelmillä jo pärjää.
Kokeilen uutta versiotasi kun olet tehnyt korjailuja. Pitää ilmeisesti
kääntää itse kun homebrew näytti edelleen tarjoavan 3.8 versiota. Mutta
jospa se onnistuu.

Katsoin itsekin, että tuo näytti hieman exponentiaaliselta ajan kasvulta.
Mutta eipä sitä koskaan tiedä. Jos alkaa selviämään niin hyvä juttu.

Miten parsit tuota UTF8:aa? Onko siinä jokin kirjaston rajapinta mihin ei
voi antaa omia rajoja? Esim. pitää indeksi dokumentin byte taulukkoon ja
parsia UTF8 merkkejä indeksistä alkaen kunnes kunnes tulee se whitespace ja
siinä on token? Sitten tästä uusi indeksi tauluun? Ihan hatusta nämä heitot
kyllä



2016-01-06 12:40 GMT+02:00 Harri Pitkänen <hatapitk at iki.fi>:

> On Wednesday 06 January 2016 12:13:32 Harri Pitkänen wrote:
> > > 1.5k noin 0.01s
> > > 25k noin 1s
> > > 30k noin 2s
> > > 40k noin 3s
> > > 60k noin 5s
> > > 65k noin 7s
> > > 115k noin 20s
> > > 270k noin 2min 8s eli 128s
> > > 415k noin 5min 20s eli 320s
> >
> > Tämä näyttää viittaavan melko selvästi siihen, että aikaa kuluu
> > neliöllisesti syötteen pituuteen nähden (pituuden kaksinkertaistaminen
> > nelinkertaistaa ajankäytön). Teoriassa tämän algoritmin aikavaativuuden
> > pitäisi olla lineaarinen, joten bugihan siellä jossain on.
> >
> > Yritän korjailla loppuviikon aikana.
>
> Taisin löytää ongelman syyn: libvoikon funktiossa voikkoNextTokenCstr
> tehdään
> UTF-8-stringin dekoodausta vähän liikaa eli jokaisen tokenin alusta koko
> annetun tekstin loppuun. Tämä on teoriassa tarpeellistakin, koska
> rajapinta on
> sellainen, ettei tuota dekoodattua stringiä voida säilyttää missään
> kutsujen
> välillä, ja toisaalta ei voida olla varmoja etteikö se koko tuhansien
> merkkien
> kokonaisuus voisikin olla yhtä sanaa.
>
> Ihan triviaalia korjausta tuohon ei siis ole tehtävissä, mutta pienellä
> väännöllä tuon pitäisi taipua pahimmassakin tapauksessa vaativuuteen n
> log(n)
> ja tyypillisessä tapauksessa lineaariseksi. Palaan asiaan...
>
> Harri
> _______________________________________________
> voikko mailing list
> voikko at lists.puimula.org
> http://lists.puimula.org/listinfo/voikko
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puimula.org/pipermail/voikko/attachments/20160106/67d54c88/attachment.html>


More information about the voikko mailing list