[voikko-devel] Ehdotus: lisäys libvoikkoon
Hannu Väisänen
hvaisane at joyx.joensuu.fi
Thu Jan 11 07:53:40 EET 2007
On Wed, Jan 10, 2007 at 07:31:05PM +0200, Harri Pitkänen wrote:
> Hmm. Mahtaakohan tuollainen toimia kunnolla todellisissa sovelluksissa?
> Tämähän tarkoittaisi sitä, että kutsuva sovellus itse käyttää suoraan
> Suomi-malagan Voikko-versiota, enkä heti kyllä keksi mikä muu kuin libvoikko
> voisi järkevästi niin tehdä. Sukija ei ainakaan niin tietääkseni tee :)
Tarkoitus onkin käyttää Suomi-malagan Sukija-versiota (-:
ja funktiota voikko_suggest_ucs4. Jotenkin näin:
iterator first (worddb->get_word_db(), DB_NEXT);
iterator last;
for ( ; first != last; ++first) {
if (malaga ei tunnista sanaa *first) {
wchar_t **w = voikko_suggest_ucs4 (handle, first->c_str());
if (w) {
for (wchar_t **i = w; *i; ++i) {
if (malaga tunnistaa sanan *i) {
tallenna sanan *i perusmuoto perusmuototietokantaan
}
}
}
}
}
Äääh!!! Voiko tuo ylipäänsä toimia, sillä voikko_suggest_ucs4 näköjään
käyttää Suomi-malagan Voikko-versiota, ja Sukija tarvitsee tietenkin
Sukija-version. Minulla kun oli sellainen mielikuva, että
suggest-funktiot eivät käytä malagaa ollenkaan.
> Jos sovelluksen on käytettävä sekä malagaa että libvoikkoa suoraan, parempi
> olisi toimia jotenkin seuraavasti:
>
> terminate_libmalaga();
> const char * voikko_error = voikko_init(&handle, "fi_FI", 0);
> [ käytetään Voikkoa mihin käytetään ]
> voikko_terminate(handle);
> init_libmalaga(sovelluksen_oma_malaga_projekti);
Siis näin...
iterator first (worddb->get_word_db(), DB_NEXT);
iterator last;
for ( ; first != last; ++first) {
if (malaga ei tunnista sanaa *first) {
x terminate_libmalaga();
x const char * voikko_error = voikko_init(&handle, "fi_FI", 0);
x wchar_t **w = voikko_suggest_ucs4 (handle, first->c_str());
x voikko_terminate(handle);
x init_libmalaga(sovelluksen_oma_malaga_projekti)
if (w) {
for (wchar_t **i = w; *i; ++i) {
if (malaga tunnistaa sanan *i) {
tallenna sanan *i perusmuoto perusmuototietokantaan
}
}
}
}
}
x:llä merkityt rivit voi paketoida funktion tai luokan sisälle.
Suoritusajan kannalta on tietysti parempi, että tunnistamattomat sanat
tallennetaan väliaikaisesti johonkin ja yritetään tunnistaa
voikko_suggest_ucs4:n avulla kaikki yhdellä kertaa.
> Jos olet ihan varma, että tarvitset tällaisen ominaisuuden libvoikkoon, niin
> kaipa sen voi lisätä.
Unohdetaan koko asia.
More information about the devel
mailing list