Package org.languagetool.rules
Class ReadabilityRule
java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.TextLevelRule
org.languagetool.rules.ReadabilityRule
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 intprivate final LinguServicesprivate static final intprivate static final intprivate 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 TypeMethodDescriptionOverwrite this to define the Text in the option panel for the configurable valueintOverwrite this to get a default Integer value by option panelA short description of the error this rule can detect, usually in the language of the text that is checked.protected 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) intOverwrite this to define the maximum of a configurable valueprotected StringgetMessage(int level, int FRE, int ASL, int ASW) intOverwrite this to define the minimum of a configurable valueprivate intgetReadabilityLevel(double FRE) get level of readability (0 - 6)booleanOverwrite this to return true, if a value may be configured by 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.private static StringprintMessageLevel(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, getAntiPatterns, getCategory, getCorrectExamples, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getSentenceWithImmunization, getUrl, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, 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 int level -
tooEasyTest
private boolean tooEasyTest
-
-
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
-
getDefaultValue
public int getDefaultValue()Description copied from class:RuleOverwrite this to get a default Integer value by option panel- Overrides:
getDefaultValuein classRule
-
hasConfigurableValue
public boolean hasConfigurableValue()Description copied from class:RuleOverwrite this to return true, if a value may be configured by option panel- Overrides:
hasConfigurableValuein classRule
-
getMinConfigurableValue
public int getMinConfigurableValue()Description copied from class:RuleOverwrite this to define the minimum of a configurable value- Overrides:
getMinConfigurableValuein classRule
-
getMaxConfigurableValue
public int getMaxConfigurableValue()Description copied from class:RuleOverwrite this to define the maximum of a configurable value- Overrides:
getMaxConfigurableValuein classRule
-
getConfigureText
Description copied from class:RuleOverwrite this to define the Text in the option panel for the configurable value- Overrides:
getConfigureTextin classRule
-
printMessageLevel
-
getMessage
-
getReadabilityLevel
private int getReadabilityLevel(double FRE) get level of readability (0 - 6) -
getFleschReadingEase
protected 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
-