About Hunspell -------------- Hunspell is a spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding. Hunspell interfaces: Ispell-like terminal interface using Curses library, Ispell pipe interface, OpenOffice.org UNO module. Hunspell's code base comes from the OpenOffice.org MySpell (http://lingucomponent.openoffice.org/MySpell-3.zip). See README.MYSPELL, AUTHORS.MYSPELL and license.myspell files. Hunspell is designed to eventually replace Myspell in OpenOffice.org. Main features of Hunspell spell checker and morphological analyzer: - Unicode support (affix rules work only with the first 65535 Unicode characters) - Morphological analysis (in custom item and arrangement style) and stemming - Max. 65535 affix classes and twofold affix stripping (for agglutinative languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.) - Support complex compoundings (for example, Hungarian and German) - Support language specific features (for example, special casing of Azeri and Turkish dotted i, or German sharp s) - Handle conditional affixes, circumfixes, fogemorphemes, forbidden words, pseudoroots and homonyms. - Free software (LGPL, GPL, MPL tri-license) Compiling on Unix/Linux ----------------------- ./configure make make install For dictionary development, use the --with-warnings option of configure. For interactive user interface of Hunspell executable, use the --with-ui option. The developer packages you need to compile Hunspell's interface: glibc-devel optional developer packages: ncurses (need for --with-ui) readline (for fancy input line editing, configure parameter: --with-readline) locale and gettext (but you can also use the --with-included-gettext configure parameter) Hunspell distribution uses new Autoconf (2.59) and Automake (1.9). Compiling on Windows -------------------- 1. Compiling with Windows SDK Download the free Windows SDK of Microsoft, open a command prompt window and cd into hunspell/src/win_api. Use the following command to compile hunspell: vcbuild 2. Compiling in Cygwin environment Download and install Cygwin environment for Windows with the following extra packages: make gcc-g++ development package mingw development package (for cygwin.dll free native Windows compilation) ncurses, readline (for user interface) iconv (character conversion) 2.1. Cygwin1.dll dependent compiling Open a Cygwin shell, cd into the hunspell root directory: ./configure make make install For dictionary development, use the --with-warnings option of configure. For interactive user interface of Hunspell executable, use the --with-ui option. readline configure parameter: --with-readline (for fancy input line editing) 1.2. Cygwin1.dll free compiling Open a Cygwin shell, cd into the hunspell/src/win_api and make -f Makefile.cygwin Testing ------- Testing Hunspell (see tests in tests/ subdirectory): make check or with Valgrind debugger: make check VALGRIND=[Valgrind_tool] make check For example: make check VALGRIND=memcheck make check Documentation ------------- features and dictionary format: man 4 hunspell man hunspell hunspell -h http://hunspell.sourceforge.net Usage ----- The src/tools dictionary contains ten executables after compiling (or some of them are in the src/win_api): affixcompress: dictionary generation from large (millions of words) vocabularies analyze: example of spell checking, stemming and morphological analysis chmorph: example of automatic morphological generation and conversion example: example of spell checking and suggestion hunspell: main program for spell checking and others (see manual) hunzip: decompressor of hzip format hzip: compressor of hzip format makealias: alias compression (Hunspell only, not back compatible with MySpell) munch: dictionary generation from vocabularies (it needs an affix file, too). unmunch: list all recognized words of a MySpell dictionary wordforms: word generation (Hunspell version of unmunch) After compiling and installing (see INSTALL) you can run the Hunspell spell checker (compiled with user interface) with a Hunspell or Myspell dictionary: hunspell -d en_US text.txt or without interface: hunspell hunspell -d en_UK -l Linking with Hunspell static library: g++ -lhunspell example.cxx Dictionaries ------------ Myspell & Hunspell dictionaries: http://wiki.services.openoffice.org/wiki/Dictionaries Aspell dictionaries (need some conversion): ftp://ftp.gnu.org/gnu/aspell/dict Conversion steps: see relevant feature request at http://hunspell.sf.net. László Németh nemeth at OOo