Class SymSpellRule


@Experimental public class SymSpellRule extends SpellingCheckRule
spell checking using SymSpell algorithm, implementation from https://github.com/Lundez/JavaSymSpell in org.languagetool.rules.spelling.symspell.implementation potential faster alternative to Morfologik, especially in generating suggestions
  • Field Details

    • spellerCache

      private static final com.google.common.cache.LoadingCache<Language,SymSpell> spellerCache
    • ignoredWordsCache

      private static final com.google.common.cache.LoadingCache<Language,Set<String>> ignoredWordsCache
    • INITIAL_CAPACITY

      public static final int INITIAL_CAPACITY
      See Also:
    • prohibitedWordsCache

      private static final com.google.common.cache.LoadingCache<Language,Set<String>> prohibitedWordsCache
    • defaultDictSpeller

      protected final SymSpell defaultDictSpeller
    • userDictSpeller

      protected final SymSpell userDictSpeller
    • editDistance

      private int editDistance
    • verbosity

      private SymSpell.Verbosity verbosity
    • orderer

      private SuggestionsOrderer orderer
  • Constructor Details

  • Method Details

    • getWordList

      @NotNull private static @NotNull Set<String> getWordList(Language lang, String file)
    • getSpellingDictBaseDir

      protected static String getSpellingDictBaseDir(Language lang)
    • forEachLineInResources

      private static void forEachLineInResources(List<String> resources, Consumer<String> function)
    • initUserDictSpeller

      @Nullable protected static @Nullable SymSpell initUserDictSpeller(UserConfig config)
      Parameters:
      config -
      Returns:
      Spell checker using users personal dictionary, or null if no custom speller is needed
    • initDefaultDictSpeller

      protected static SymSpell initDefaultDictSpeller(Language lang)
    • initParameters

      private void initParameters()
    • getId

      public String getId()
      Description copied from class: Rule
      A string used to identify the rule in e.g. configuration files. This string is supposed to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed to contain only the characters A-Z and the underscore.
      Specified by:
      getId in class SpellingCheckRule
    • getDescription

      public String getDescription()
      Description copied from class: Rule
      A short description of the error this rule can detect, usually in the language of the text that is checked.
      Specified by:
      getDescription in class SpellingCheckRule
    • match

      public RuleMatch[] match(AnalyzedSentence sentence) throws IOException
      Description copied from class: Rule
      Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different than the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example).
      Specified by:
      match in class SpellingCheckRule
      Parameters:
      sentence - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
      Throws:
      IOException
    • isMisspelled

      public boolean isMisspelled(String word)
      Specified by:
      isMisspelled in class SpellingCheckRule
    • filterCandidates

      @NotNull private @NotNull List<String> filterCandidates(List<String> candidates)
    • getSpellerMatches

      @NotNull private @NotNull List<String> getSpellerMatches(String word, SymSpell speller)
    • main

      public static void main(String[] args) throws IOException, ClassNotFoundException
      Throws:
      IOException
      ClassNotFoundException