Package org.languagetool.rules.spelling
Class SymSpellRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.spelling.SpellingCheckRule
-
- org.languagetool.rules.spelling.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 Summary
Fields Modifier and Type Field Description protected SymSpell
defaultDictSpeller
private int
editDistance
private static com.google.common.cache.LoadingCache<Language,java.util.Set<java.lang.String>>
ignoredWordsCache
static int
INITIAL_CAPACITY
private SuggestionsOrderer
orderer
private static com.google.common.cache.LoadingCache<Language,java.util.Set<java.lang.String>>
prohibitedWordsCache
private static com.google.common.cache.LoadingCache<Language,SymSpell>
spellerCache
protected SymSpell
userDictSpeller
private SymSpell.Verbosity
verbosity
-
Fields inherited from class org.languagetool.rules.spelling.SpellingCheckRule
ignoreWordsWithLength, language, languageModel, LANGUAGETOOL, LANGUAGETOOLER, wordListLoader
-
-
Constructor Summary
Constructors Constructor Description SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)
SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)
SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, @Nullable LanguageModel languageModel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private @NotNull java.util.List<java.lang.String>
filterCandidates(java.util.List<java.lang.String> candidates)
private static void
forEachLineInResources(java.util.List<java.lang.String> resources, java.util.function.Consumer<java.lang.String> function)
java.lang.String
getDescription()
A short description of the error this rule can detect, usually in the language of the text that is checked.java.lang.String
getId()
A string used to identify the rule in e.g.private @NotNull java.util.List<java.lang.String>
getSpellerMatches(java.lang.String word, SymSpell speller)
protected static java.lang.String
getSpellingDictBaseDir(Language lang)
private static @NotNull java.util.Set<java.lang.String>
getWordList(Language lang, java.lang.String file)
protected static SymSpell
initDefaultDictSpeller(Language lang)
private void
initParameters()
protected static @Nullable SymSpell
initUserDictSpeller(UserConfig config)
boolean
isMisspelled(java.lang.String word)
static void
main(java.lang.String[] args)
RuleMatch[]
match(AnalyzedSentence sentence)
Check whether the given sentence matches this error rule, i.e.-
Methods inherited from class org.languagetool.rules.spelling.SpellingCheckRule
acceptedInAlternativeLanguage, acceptPhrases, addIgnoreTokens, addIgnoreWords, addProhibitedWords, addSuggestionsToRuleMatch, createWrongSplitMatch, expandLine, filterDupes, filterSuggestions, getAdditionalProhibitFileNames, getAdditionalSpellingFileNames, getAdditionalSuggestions, getAdditionalTopSuggestions, getAlternativeLangSpellingRules, getAntiPatterns, getIgnoreFileName, getLanguageVariantSpellingFileName, getProhibitFileName, getSpellingFileName, ignoreToken, ignoreWord, ignoreWord, init, isDictionaryBasedSpellingRule, isEMail, isProhibited, isUrl, reorderSuggestions, setConsiderIgnoreWords, setConvertsCase, startsWithIgnoredWord
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, estimateContextForSureMatch, getCategory, getConfigureText, getCorrectExamples, getDefaultValue, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getMaxConfigurableValue, getMinConfigurableValue, getSentenceWithImmunization, getUrl, hasConfigurableValue, isDefaultOff, isDefaultTempOff, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
spellerCache
private static final com.google.common.cache.LoadingCache<Language,SymSpell> spellerCache
-
ignoredWordsCache
private static final com.google.common.cache.LoadingCache<Language,java.util.Set<java.lang.String>> ignoredWordsCache
-
INITIAL_CAPACITY
public static final int INITIAL_CAPACITY
- See Also:
- Constant Field Values
-
prohibitedWordsCache
private static final com.google.common.cache.LoadingCache<Language,java.util.Set<java.lang.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 Detail
-
SymSpellRule
public SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)
-
SymSpellRule
public SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)
-
SymSpellRule
public SymSpellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, @Nullable @Nullable LanguageModel languageModel)
-
-
Method Detail
-
getWordList
@NotNull private static @NotNull java.util.Set<java.lang.String> getWordList(Language lang, java.lang.String file)
-
getSpellingDictBaseDir
protected static java.lang.String getSpellingDictBaseDir(Language lang)
-
forEachLineInResources
private static void forEachLineInResources(java.util.List<java.lang.String> resources, java.util.function.Consumer<java.lang.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
-
initParameters
private void initParameters()
-
getId
public java.lang.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 charactersA-Z
and the underscore.- Specified by:
getId
in classSpellingCheckRule
-
getDescription
public java.lang.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 classSpellingCheckRule
-
match
public RuleMatch[] match(AnalyzedSentence sentence) throws java.io.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 classSpellingCheckRule
- Parameters:
sentence
- a pre-analyzed sentence- Returns:
- an array of
RuleMatch
objects - Throws:
java.io.IOException
-
isMisspelled
public boolean isMisspelled(java.lang.String word)
- Specified by:
isMisspelled
in classSpellingCheckRule
-
filterCandidates
@NotNull private @NotNull java.util.List<java.lang.String> filterCandidates(java.util.List<java.lang.String> candidates)
-
getSpellerMatches
@NotNull private @NotNull java.util.List<java.lang.String> getSpellerMatches(java.lang.String word, SymSpell speller)
-
main
public static void main(java.lang.String[] args) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-