Hunspell Ruby interface to hunspell spell checker
Copyright 2007, Gabor SEBESTYEN
WHAT IS THIS?
Hunspell is an easy native Ruby interface to the famous Hunspell spell checker library which is part of OpenOffice and Mozilla products. With this bundle you can start to develop your own AJAX based spell checker service for Ruby on Rails.
REQUIREMENTS
Before install Hunspell be sure to have the following components:
-
Ruby >= 1.8
-
rubygems
-
hunspell >= 1.2.x (libhunspell-1.2)
http://hunspell.sourceforge.net -
dictionary files for Hunspell
http://wiki.services.openoffice.org/wiki/Dictionaries
INSTALLATION
The best way is to use gem package manager.
gem install hunspell
If you want to build Hunspell from scratch grab the source and issue the following commands:
ruby extconf.rb && make
FreeBSD gotcha: hunspell spell checker package does not deploy its header files. Run gem or ruby command with an extra option:
gem install hunspell – –with-include-dir=…
or
ruby extconf.rb –with-include-dir=… && make Replace … to the path pointing to hunspell includes.
FIRST STEPS
Here’s a very simple example how to use Hunspell. Cut it and run in ruby.
example.rb ===
require “rubygems” # import gem package manager gem “hunspell” # load Hunspell module require “Hunspell” # inject Hunspell class to Ruby namespace
# instantiate Hunspell with Hungarian affix and dictionary files # sp = Hunspell.new(“hu.aff”, “hu.dic”)
# spell check Hungarian word ‘ablak’ (window) => true # puts “Is ‘ablak’ correct? #spsp.spellcheck(‘ablak’)”
# get suggestions for mispelled word ‘paprika’ # => [“kaprica”, “patrica”, “paprika”, “papcica”, # “papráca”, “papruca”, “paprima”, “paprikáz”, # “paprikása”, “paprikás”, “Papradnó” # ] # puts “Suggestions for ‘paprica’: ” + sp.suggest(“paprica”).inspect
end of example ===
Note: you might run this example with -Ke ruby option if you want to see accented letters instead of backslash prefixed utf codes.
FEEDBACK
Any help or report warmly appreciated. Please visit the project’s homepage at github.com/segabor/Hunspell or write me to [email protected]
DISCLAIMER
This software is at an early stage. Use at own your risk! No warranty.