Package org.languagetool.rules
Class ReadabilityRule
java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.TextLevelRule
org.languagetool.rules.ReadabilityRule
- Direct Known Subclasses:
GermanReadabilityRule,PortugueseReadabilityRule
A rule that checks the readability of English text (using the Flesch-Reading-Ease Formula)
If tooEasyTest == true, the rule tests if paragraph level > level (readability is too easy)
If tooEasyTest == false, the rule tests if paragraph level < level (readability is too difficult)
- Since:
- 4.4
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Languageprivate final intprivate final LinguServicesprivate static final intprivate static final intprivate intprivate intprivate intprivate final boolean -
Constructor Summary
ConstructorsConstructorDescriptionReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest) ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, boolean defaultOn) ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level) ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level, boolean defaultOn) -
Method Summary
Modifier and TypeMethodDescriptionintintintA short description of the error this rule can detect, usually in the language of the text that is checked.doublegetFleschReadingEase(double asl, double asw) get Flesch-Reading-Ease (Formula for readability) for English the formula dependence on the language and has to be overridden for every supported languagegetId()A string used to identify the rule in e.g.getId(boolean tooEasyTest) protected StringgetMessage(int level, int FRE, int ASL, int ASW) private intgetReadabilityLevel(double fre) get level of readability (0 - 6)Overwrite this to return configurable options for option panelprivate static booleanisVowel(char c) match(List<AnalyzedSentence> sentences) intGives back the minimum number of paragraphs to check to give back a correct result.printMessageLevel(int level) protected intsimpleSyllablesCount(String word) A simple method to count the Syllables of a word TODO: further improvement of the method A hyphenation service should be used if available (e.g.Methods inherited from class org.languagetool.rules.TextLevelRule
estimateContextForSureMatch, match, matchMethods inherited from class org.languagetool.rules.Rule
addExamplePair, addTags, addToneTags, cacheAntiPatterns, getAntiPatterns, getCategory, getCorrectExamples, getDistanceTokens, getErrorTriggeringExamples, getFullId, getIncorrectExamples, getLocQualityIssueType, getMinPrevMatches, getPriority, getSentenceWithImmunization, getSourceFile, getSubId, getTags, getToneTags, getUrl, hasTag, hasToneTag, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isGoalSpecific, isIncludedInHiddenMatches, isOfficeDefaultOff, isOfficeDefaultOn, isPremium, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setDistanceTokens, setErrorTriggeringExamples, setExamplePair, setGoalSpecific, setIncludedInHiddenMatches, setIncorrectExamples, setLocQualityIssueType, setMinPrevMatches, setOfficeDefaultOff, setOfficeDefaultOn, setPremium, setPriority, setTags, setToneTags, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
Field Details
-
MARK_WORDS
private static final int MARK_WORDS- See Also:
-
MIN_WORDS
private static final int MIN_WORDS- See Also:
-
linguServices
-
lang
-
level
private final int level -
tooEasyTest
private final boolean tooEasyTest -
nAllSentences
private int nAllSentences -
nAllWords
private int nAllWords -
nAllSyllables
private int nAllSyllables
-
-
Constructor Details
-
ReadabilityRule
public ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest) -
ReadabilityRule
public ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level) -
ReadabilityRule
public ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, boolean defaultOn) -
ReadabilityRule
public ReadabilityRule(ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level, boolean defaultOn)
-
-
Method Details
-
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. -
getId
-
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 classRule
-
getConfigureText
-
getRuleOptions
Description copied from class:RuleOverwrite this to return configurable options for option panel- Overrides:
getRuleOptionsin classRule
-
getAllSentences
public int getAllSentences() -
getAllWords
public int getAllWords() -
getAllSyllables
public int getAllSyllables() -
printMessageLevel
-
getMessage
-
getReadabilityLevel
private int getReadabilityLevel(double fre) get level of readability (0 - 6) -
getFleschReadingEase
public double getFleschReadingEase(double asl, double asw) get Flesch-Reading-Ease (Formula for readability) for English the formula dependence on the language and has to be overridden for every supported language -
isVowel
private static boolean isVowel(char c) -
simpleSyllablesCount
A simple method to count the Syllables of a word TODO: further improvement of the method A hyphenation service should be used if available (e.g. from LO extension) Has to be overridden for every language -
match
- Specified by:
matchin classTextLevelRule- Throws:
IOException
-
minToCheckParagraph
public int minToCheckParagraph()Description copied from class:TextLevelRuleGives back the minimum number of paragraphs to check to give back a correct result. Only used by LO office extension.- n == -1 --> need to check full text (use only if really needed / bad performance) examples: AbstractWordCoherencyRule, GenericUnpairedBracketsRule, ...
- n == 0 --> need only to check the current paragraph examples: MultipleWhitespaceRule, LongParagraphRule, ...
- n >= 1 --> need only to check n paragraphs around the current paragraph examples: ParagraphRepeatBeginningRule (n == 1), WordRepeatBeginningRule (n == 2), ...
- Specified by:
minToCheckParagraphin classTextLevelRule
-