Class SpellDictionaryASpell

  • All Implemented Interfaces:
    SpellDictionary
    Direct Known Subclasses:
    GenericSpellDictionary, SpellDictionaryDichoDisk, SpellDictionaryDisk, SpellDictionaryHashMap

    public abstract class SpellDictionaryASpell
    extends java.lang.Object
    implements SpellDictionary
    Container for various methods that any SpellDictionary will use. This class is based on the original Jazzy aspell port.

    Derived classes will need words list files as spell checking reference. Words list file is a dictionary with one word per line. There are many open source dictionary files, see: http://wordlist.sourceforge.net/

    You can choose words lists form aspell many differents languages dictionaries. To grab some, install aspell and the dictionaries you require. Then run aspell specifying the name of the dictionary and the words list file to dump it into, for example:

     aspell --master=fr-40 dump master > fr-40.txt
     
    Note: the number following the language is the size indicator. A bigger number gives a more extensive language coverage. Size 40 is more than adequate for many usages.

    For some languages, Aspell can also supply you with the phonetic file. On Windows, go into aspell data directory and copy the phonetic file corresponding to your language, for example the fr_phonet.dat for the fr language. The phonetic file should be in directory /usr/share/aspell on Unix.

    See Also:
    GenericTransformator for information on phonetic files.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected Transformator tf
      The reference to a Transformator, used to transform a word into it's phonetic code.
    • Constructor Summary

      Constructors 
      Constructor Description
      SpellDictionaryASpell​(java.io.File phonetic)
      Constructs a new SpellDictionaryASpell
      SpellDictionaryASpell​(java.io.File phonetic, java.lang.String encoding)
      Constructs a new SpellDictionaryASpell
      SpellDictionaryASpell​(java.io.Reader phonetic)
      Constructs a new SpellDictionaryASpell
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getCode​(java.lang.String word)
      Returns the phonetic code representing the word.
      java.util.List getSuggestions​(java.lang.String word, int threshold)
      Returns a list of Word objects that are the suggestions to an incorrect word.
      java.util.List getSuggestions​(java.lang.String word, int threshold, int[][] matrix)
      Returns a list of Word objects that are the suggestions to an incorrect word.
      protected abstract java.util.List getWords​(java.lang.String phoneticCode)
      Returns a list of words that have the same phonetic code.
      boolean isCorrect​(java.lang.String word)
      Returns true if the word is correctly spelled against the current word list.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • tf

        protected Transformator tf
        The reference to a Transformator, used to transform a word into it's phonetic code.
    • Constructor Detail

      • SpellDictionaryASpell

        public SpellDictionaryASpell​(java.io.File phonetic)
                              throws java.io.IOException
        Constructs a new SpellDictionaryASpell
        Parameters:
        phonetic - The file to use for phonetic transformation of the words list. If phonetic is null, the the transformation uses DoubleMeta transformation.
        Throws:
        java.io.IOException - indicates problems reading the phonetic information
      • SpellDictionaryASpell

        public SpellDictionaryASpell​(java.io.File phonetic,
                                     java.lang.String encoding)
                              throws java.io.IOException
        Constructs a new SpellDictionaryASpell
        Parameters:
        phonetic - The file to use for phonetic transformation of the words list. If phonetic is null, the the transformation uses DoubleMeta transformation.
        encoding - Uses the character set encoding specified
        Throws:
        java.io.IOException - indicates problems reading the phonetic information
      • SpellDictionaryASpell

        public SpellDictionaryASpell​(java.io.Reader phonetic)
                              throws java.io.IOException
        Constructs a new SpellDictionaryASpell
        Parameters:
        phonetic - The Reader to use for phonetic transformation of the words list. If phonetic is null, the the transformation uses DoubleMeta transformation.
        Throws:
        java.io.IOException - indicates problems reading the phonetic information
    • Method Detail

      • getSuggestions

        public java.util.List getSuggestions​(java.lang.String word,
                                             int threshold)
        Returns a list of Word objects that are the suggestions to an incorrect word.

        This method is only needed to provide backward compatibility.

        Specified by:
        getSuggestions in interface SpellDictionary
        Parameters:
        word - Suggestions for given misspelt word
        threshold - The lower boundary of similarity to misspelt word
        Returns:
        Vector a List of suggestions
        See Also:
        getSuggestions(String, int, int[][])
      • getSuggestions

        public java.util.List getSuggestions​(java.lang.String word,
                                             int threshold,
                                             int[][] matrix)
        Returns a list of Word objects that are the suggestions to an incorrect word.

        Specified by:
        getSuggestions in interface SpellDictionary
        Parameters:
        word - Suggestions for given misspelt word
        threshold - The lower boundary of similarity to misspelt word
        matrix - Two dimensional int array used to calculate edit distance. Allocating this memory outside of the function will greatly improve efficiency.
        Returns:
        Vector a List of suggestions
        See Also:
        Word
      • getCode

        public java.lang.String getCode​(java.lang.String word)
        Returns the phonetic code representing the word.
        Parameters:
        word - The word we want the phonetic code.
        Returns:
        The value of the phonetic code for the word.
      • getWords

        protected abstract java.util.List getWords​(java.lang.String phoneticCode)
        Returns a list of words that have the same phonetic code.
        Parameters:
        phoneticCode - The phonetic code common to the list of words
        Returns:
        A list of words having the same phonetic code
      • isCorrect

        public boolean isCorrect​(java.lang.String word)
        Returns true if the word is correctly spelled against the current word list.
        Specified by:
        isCorrect in interface SpellDictionary
        Parameters:
        word - The word to verify if it's spelling is OK.
        Returns:
        Indicates if the word is present in the dictionary.