Class HunspellRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.spelling.SpellingCheckRule
-
- org.languagetool.rules.spelling.hunspell.HunspellRule
-
- Direct Known Subclasses:
CompoundAwareHunspellRule,HunspellNoSuggestionRule
public class HunspellRule extends SpellingCheckRule
A hunspell-based spellchecking-rule. The default dictionary is set to the first country variant on the list - so the order in the Language class declaration is important!
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.ConcurrentLinkedQueue<java.lang.String>activeChecksprotected static java.lang.StringFILE_EXTENSIONprotected Hunspell.DictionaryhunspellDictprivate booleanmonitorRulesprotected booleanneedsInitprivate static java.lang.StringNON_ALPHABETICprotected java.util.regex.PatternnonWordPatternstatic java.lang.StringRULE_IDprivate booleanrunningExperimentprotected SuggestionsOrderersuggestionsOrdererprivate UserConfiguserConfigprivate static java.lang.String[]WHITESPACE_ARRAY-
Fields inherited from class org.languagetool.rules.spelling.SpellingCheckRule
ignoreWordsWithLength, language, languageModel, LANGUAGETOOL, LANGUAGETOOLER, wordListLoader
-
-
Constructor Summary
Constructors Constructor Description HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, LanguageModel languageModel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddIgnoreWords()private java.lang.StringcutOffDot(java.lang.String s)private voidfileCopy(java.io.InputStream in, java.io.File targetFile)static java.util.Queue<java.lang.String>getActiveChecks()java.lang.StringgetDescription()A short description of the error this rule can detect, usually in the language of the text that is checked.protected @NotNull java.lang.StringgetDictFilenameInResources(java.lang.String langCountry)private java.lang.StringgetDictionaryPath(java.lang.String dicName, java.lang.String originalPath)java.lang.StringgetId()A string used to identify the rule in e.g.protected java.lang.StringgetSentenceTextWithoutUrlsAndImmunizedTokens(AnalyzedSentence sentence)java.util.List<java.lang.String>getSuggestions(java.lang.String word)protected voidinit()protected booleanisAcceptedWordFromLanguage(Language language, java.lang.String word)Used in combination withacceptedInAlternativeLanguageto surpress spelling errors for words from a foreign languagebooleanisMisspelled(java.lang.String word)protected booleanisQuotedCompound(AnalyzedSentence analyzedSentence, int idx, java.lang.String token)Is the given token part of a hyphenated compound preceded by a quoted token (e.g., „Spiegel“-Magazin) and should be treated as an ordinary hyphenated compound (e.g., „Spiegel-Magazin“)RuleMatch[]match(AnalyzedSentence sentence)Check whether the given sentence matches this error rule, i.e.protected java.util.List<java.lang.String>sortSuggestionByQuality(java.lang.String misspelling, java.util.List<java.lang.String> suggestions)protected java.lang.String[]tokenizeText(java.lang.String sentence)-
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, 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
-
RULE_ID
public static final java.lang.String RULE_ID
- See Also:
- Constant Field Values
-
FILE_EXTENSION
protected static final java.lang.String FILE_EXTENSION
- See Also:
- Constant Field Values
-
suggestionsOrderer
protected final SuggestionsOrderer suggestionsOrderer
-
needsInit
protected boolean needsInit
-
hunspellDict
protected Hunspell.Dictionary hunspellDict
-
activeChecks
private static final java.util.concurrent.ConcurrentLinkedQueue<java.lang.String> activeChecks
-
NON_ALPHABETIC
private static final java.lang.String NON_ALPHABETIC
- See Also:
- Constant Field Values
-
monitorRules
private final boolean monitorRules
-
runningExperiment
private final boolean runningExperiment
-
WHITESPACE_ARRAY
private static final java.lang.String[] WHITESPACE_ARRAY
-
nonWordPattern
protected java.util.regex.Pattern nonWordPattern
-
userConfig
private final UserConfig userConfig
-
-
Constructor Detail
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)- Since:
- 4.3
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, LanguageModel languageModel)
-
-
Method Detail
-
getActiveChecks
public static java.util.Queue<java.lang.String> getActiveChecks()
-
getId
public java.lang.String getId()
Description copied from class:RuleA 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-Zand the underscore.- Specified by:
getIdin classSpellingCheckRule
-
getDescription
public java.lang.String getDescription()
Description copied from class:RuleA short description of the error this rule can detect, usually in the language of the text that is checked.- Specified by:
getDescriptionin classSpellingCheckRule
-
isQuotedCompound
protected boolean isQuotedCompound(AnalyzedSentence analyzedSentence, int idx, java.lang.String token)
Is the given token part of a hyphenated compound preceded by a quoted token (e.g., „Spiegel“-Magazin) and should be treated as an ordinary hyphenated compound (e.g., „Spiegel-Magazin“)
-
match
public RuleMatch[] match(AnalyzedSentence sentence) throws java.io.IOException
Description copied from class:RuleCheck 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:
matchin classSpellingCheckRule- Parameters:
sentence- a pre-analyzed sentence- Returns:
- an array of
RuleMatchobjects - Throws:
java.io.IOException
-
cutOffDot
private java.lang.String cutOffDot(java.lang.String s)
-
isMisspelled
@Experimental public boolean isMisspelled(java.lang.String word)
- Specified by:
isMisspelledin classSpellingCheckRule- Since:
- public since 4.1
-
getSuggestions
public java.util.List<java.lang.String> getSuggestions(java.lang.String word) throws java.io.IOException- Throws:
java.io.IOException
-
sortSuggestionByQuality
protected java.util.List<java.lang.String> sortSuggestionByQuality(java.lang.String misspelling, java.util.List<java.lang.String> suggestions)
-
tokenizeText
protected java.lang.String[] tokenizeText(java.lang.String sentence)
-
getSentenceTextWithoutUrlsAndImmunizedTokens
protected java.lang.String getSentenceTextWithoutUrlsAndImmunizedTokens(AnalyzedSentence sentence)
-
init
protected void init() throws java.io.IOException- Overrides:
initin classSpellingCheckRule- Throws:
java.io.IOException
-
getDictFilenameInResources
@NotNull protected @NotNull java.lang.String getDictFilenameInResources(java.lang.String langCountry)
-
addIgnoreWords
private void addIgnoreWords() throws java.io.IOException- Throws:
java.io.IOException
-
getDictionaryPath
private java.lang.String getDictionaryPath(java.lang.String dicName, java.lang.String originalPath) throws java.io.IOException- Throws:
java.io.IOException
-
fileCopy
private void fileCopy(java.io.InputStream in, java.io.File targetFile) throws java.io.IOException- Throws:
java.io.IOException
-
isAcceptedWordFromLanguage
protected boolean isAcceptedWordFromLanguage(Language language, java.lang.String word)
Used in combination withacceptedInAlternativeLanguageto surpress spelling errors for words from a foreign language- Parameters:
language-word-- Returns:
- true if the
wordfromlanguagecan be considered as correctly spelled - Since:
- 4.6
-
-