Package org.languagetool.rules
Class ReadabilityRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.TextLevelRule
-
- org.languagetool.rules.ReadabilityRule
-
public class ReadabilityRule extends TextLevelRule
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
Fields Modifier and Type Field Description private Language
lang
private int
level
private LinguServices
linguServices
private static int
MARK_WORDS
private static int
MIN_WORDS
private boolean
tooEasyTest
-
Constructor Summary
Constructors Constructor Description ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest)
ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, boolean defaultOn)
ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level)
ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level, boolean defaultOn)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getConfigureText()
Overwrite this to define the Text in the option panel for the configurable valueint
getDefaultValue()
Overwrite this to get a default Integer value by option paneljava.lang.String
getDescription()
A 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 languagejava.lang.String
getId()
A string used to identify the rule in e.g.java.lang.String
getId(boolean tooEasyTest)
int
getMaxConfigurableValue()
Overwrite this to define the maximum of a configurable valueprotected java.lang.String
getMessage(int level, int FRE, int ASL, int ASW)
int
getMinConfigurableValue()
Overwrite this to define the minimum of a configurable valueprivate int
getReadabilityLevel(double FRE)
get level of readability (0 - 6)boolean
hasConfigurableValue()
Overwrite this to return true, if a value may be configured by option panelprivate static boolean
isVowel(char c)
RuleMatch[]
match(java.util.List<AnalyzedSentence> sentences)
int
minToCheckParagraph()
Gives back the minimum number of paragraphs to check to give back a correct result.private static java.lang.String
printMessageLevel(int level)
protected int
simpleSyllablesCount(java.lang.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 Detail
-
MARK_WORDS
private static final int MARK_WORDS
- See Also:
- Constant Field Values
-
MIN_WORDS
private static final int MIN_WORDS
- See Also:
- Constant Field Values
-
linguServices
private final LinguServices linguServices
-
lang
private final Language lang
-
level
private int level
-
tooEasyTest
private boolean tooEasyTest
-
-
Constructor Detail
-
ReadabilityRule
public ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest)
-
ReadabilityRule
public ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level)
-
ReadabilityRule
public ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, boolean defaultOn)
-
ReadabilityRule
public ReadabilityRule(java.util.ResourceBundle messages, Language lang, UserConfig userConfig, boolean tooEasyTest, int level, boolean defaultOn)
-
-
Method Detail
-
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.
-
getId
public java.lang.String getId(boolean tooEasyTest)
-
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 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
public java.lang.String 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
private static java.lang.String printMessageLevel(int level)
-
getMessage
protected java.lang.String getMessage(int level, int FRE, int ASL, int ASW)
-
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
protected int simpleSyllablesCount(java.lang.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. from LO extension) Has to be overridden for every language
-
match
public RuleMatch[] match(java.util.List<AnalyzedSentence> sentences) throws java.io.IOException
- Specified by:
match
in classTextLevelRule
- Throws:
java.io.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
-
-