[libvoikko] grammar checking in libvoikko
Harri Pitkänen
hatapitk at iki.fi
Mon Sep 16 18:26:00 EEST 2013
Hi!
On Monday 16 September 2013 11:45:31 Francis Tyers wrote:
> * Is the full analysis of HFST morphologies available through libvoikko,
> or do we just have access to the surface string ?
It used to be but the feature was removed when support for ZHFST spellers was
added. This was because we dropped the dependency on hfst-optimized-lookup and
started to use hfstospell instead.
HfstAnalyzer is still there (but the implementation is essentially empty) so
you should be able to resurrect the feature from Git history quite easily:
https://github.com/voikko/corevoikko/blob/master/libvoikko/src/morphology/HfstAnalyzer.cpp
> * I see there is some existing work in libvoikko/src/grammar/ -- could /
> should this infrastructure be reused ?
You need to plug in your grammar checker by replacing lines 84 - 134 with your
checker in this source file:
https://github.com/voikko/corevoikko/blob/master/libvoikko/src/grammar/cache.cpp
"const wchar_t * text" contains the text to be checked. For each error you
find you create a CacheEntry object and call gc_cache_append_error to push the
error into the cache.
To do all this without breaking the existing code we need to build an abstract
GrammarChecker superclass and extend it with two subclasses, one for the
existing implementation and another for your new implementation. The exactly
same has been done with Analyzer, SpellChecker and others. I can help you with
that and some other small things that will be needed such as changes to the
LibreOffice plugin.
> * Implementing this will involve adding a dependency on vislcg3 -- what
> is the best way that this could be done ?
I'm not very familiar with vislcg3. If it is a well behaving library you
should be able to to just dynamically link with it, just as we do with
hfstospell:
https://github.com/voikko/corevoikko/blob/master/libvoikko/configure.ac
The license appears to be GPLv3+. That is OK for an optional dependency. So
you need to add a compile time conditional (disabled by default) to enable
this new feature.
Good luck with your grammar checker and feel free to ask for help whenever you
have any questions about libvoikko.
Harri
More information about the Libvoikko
mailing list