com.swabunga.spell.engine

Class GenericSpellDictionary

public class GenericSpellDictionary extends SpellDictionaryASpell

The SpellDictionary class holds the instance of the dictionary.

This class is thread safe. Derived classes should ensure that this preserved.

There are many open source dictionary files. For just a few see: http://wordlist.sourceforge.net/

This dictionary class reads words one per line. Make sure that your word list is formatted in this way (most are).

Field Summary
protected HashMapmainDictionary
The hashmap that contains the word dictionary.
Constructor Summary
GenericSpellDictionary(File wordList)
Dictionary constructor that uses the DoubleMeta class with the English alphabet.
GenericSpellDictionary(File wordList, File phonetic)
Dictionary constructor that uses an aspell phonetic file to build the transformation table.
Method Summary
voidaddWord(String word)
Add a word permanently to the dictionary (and the dictionary file).
protected voidcreateDictionary(BufferedReader in)
Constructs the dictionary from a word list file.
ListgetWords(String code)
Returns a list of strings (words) for the code.
booleanisCorrect(String word)
Returns true if the word is correctly spelled against the current word list.
protected voidputWord(String word)
Allocates a word in the dictionary

Field Detail

mainDictionary

protected HashMap mainDictionary
The hashmap that contains the word dictionary. The map is hashed on the doublemeta code. The map entry contains a LinkedList of words that have the same double meta code.

Constructor Detail

GenericSpellDictionary

public GenericSpellDictionary(File wordList)
Dictionary constructor that uses the DoubleMeta class with the English alphabet.

Parameters: wordList The file containing dictionary as a words list.

Throws: java.io.FileNotFoundException when the words list file could not be located on the system. java.io.IOException when problems occurs while reading the words list file

GenericSpellDictionary

public GenericSpellDictionary(File wordList, File phonetic)
Dictionary constructor that uses an aspell phonetic file to build the transformation table. If phonetic is null, then DoubleMeta is used with the English alphabet

Parameters: wordList The file containing dictionary as a words list. phonetic The file containing the phonetic transformation information.

Throws: java.io.FileNotFoundException when the words list or phonetic file could not be located on the system java.io.IOException when problems occurs while reading the words list or phonetic file

Method Detail

addWord

public void addWord(String word)
Add a word permanently to the dictionary (and the dictionary file).

This needs to be made thread safe (synchronized)

Parameters: word The word to add to the dictionary

createDictionary

protected void createDictionary(BufferedReader in)
Constructs the dictionary from a word list file.

Each word in the reader should be on a separate line.

This is a very slow function. On my machine it takes quite a while to load the data in. I suspect that we could speed this up quite allot.

getWords

public List getWords(String code)
Returns a list of strings (words) for the code.

Parameters: code The phonetic code we want to find words for

Returns: the list of words having the same phonetic code

isCorrect

public boolean isCorrect(String word)
Returns true if the word is correctly spelled against the current word list.

Parameters: word The word to checked in the dictionary

Returns: indication if the word is in the dictionary

putWord

protected void putWord(String word)
Allocates a word in the dictionary