[voikko] tokenize isoille dokumenteille

Harri Pitkänen hatapitk at iki.fi
Wed Jan 6 16:49:08 EET 2016


On Wednesday 06 January 2016 15:43:16 Teemu Kanstrén wrote:
> 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ä

Ensimmäinen versio korjauksesta on nyt valmis:

  https://github.com/voikko/corevoikko/commit/6cde86727d753a2fb4daf30384283a0938e11d1b

Tämä ei vielä nähtävästi kokonaan poista ongelmaa, koska suoritusaika kasvaa 
edelleen selkeästi neliöllisesti, jos mennään yli 100 000 merkin kappaleisiin. 
Kuitenkin tämäkin korjaus parantaa tilannetta dramaattisesti, eli 200 000 
merkin kappale meni läpi jo alle 10 sekunnin (aiemmin meni minuutteja). 
Siltikin se on vielä aivan liian hidas siihen nähden mitä sen pitäisi olla, 
joten selvitys jatkuu.

Samaa vikaa löytyi sekä natiivikoodin että Java-rajapinnan puolelta. Molempia 
on nyt korjattu, enkä ole varma, kummassa jäljellä oleva ongelma on.

Harri


More information about the voikko mailing list