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 Language
private int
private final LinguServices
private static final int
private static final int
private 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 valueint
Overwrite 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 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 languagegetId()
A string used to identify the rule in e.g.getId
(boolean tooEasyTest) int
Overwrite this to define the maximum of a configurable valueprotected String
getMessage
(int level, int FRE, int ASL, int ASW) int
Overwrite this to define the minimum of a configurable valueprivate int
getReadabilityLevel
(double FRE) get level of readability (0 - 6)boolean
Overwrite this to return true, if a value may be configured by option panelprivate static boolean
isVowel
(char c) match
(List<AnalyzedSentence> sentences) int
Gives back the minimum number of paragraphs to check to give back a correct result.private static String
printMessageLevel
(int level) protected int
simpleSyllablesCount
(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, match
Methods 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: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. -
getId
-
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 classRule
-
getDefaultValue
public int getDefaultValue()Description copied from class:Rule
Overwrite this to get a default Integer value by option panel- Overrides:
getDefaultValue
in classRule
-
hasConfigurableValue
public boolean hasConfigurableValue()Description copied from class:Rule
Overwrite this to return true, if a value may be configured by option panel- Overrides:
hasConfigurableValue
in classRule
-
getMinConfigurableValue
public int getMinConfigurableValue()Description copied from class:Rule
Overwrite this to define the minimum of a configurable value- Overrides:
getMinConfigurableValue
in classRule
-
getMaxConfigurableValue
public int getMaxConfigurableValue()Description copied from class:Rule
Overwrite this to define the maximum of a configurable value- Overrides:
getMaxConfigurableValue
in classRule
-
getConfigureText
Description copied from class:Rule
Overwrite this to define the Text in the option panel for the configurable value- Overrides:
getConfigureText
in 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:
match
in classTextLevelRule
- Throws:
IOException
-
minToCheckParagraph
public int minToCheckParagraph()Description copied from class:TextLevelRule
Gives 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:
minToCheckParagraph
in classTextLevelRule
-