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 Languagelangprivate intlevelprivate LinguServiceslinguServicesprivate static intMARK_WORDSprivate static intMIN_WORDSprivate booleantooEasyTest
-
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.StringgetConfigureText()Overwrite this to define the Text in the option panel for the configurable valueintgetDefaultValue()Overwrite this to get a default Integer value by option paneljava.lang.StringgetDescription()A 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 languagejava.lang.StringgetId()A string used to identify the rule in e.g.java.lang.StringgetId(boolean tooEasyTest)intgetMaxConfigurableValue()Overwrite this to define the maximum of a configurable valueprotected java.lang.StringgetMessage(int level, int FRE, int ASL, int ASW)intgetMinConfigurableValue()Overwrite this to define the minimum of a configurable valueprivate intgetReadabilityLevel(double FRE)get level of readability (0 - 6)booleanhasConfigurableValue()Overwrite this to return true, if a value may be configured by option panelprivate static booleanisVowel(char c)RuleMatch[]match(java.util.List<AnalyzedSentence> sentences)intminToCheckParagraph()Gives back the minimum number of paragraphs to check to give back a correct result.private static java.lang.StringprintMessageLevel(int level)protected intsimpleSyllablesCount(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: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
public java.lang.String getId(boolean tooEasyTest)
-
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 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
public java.lang.String getConfigureText()
Description copied from class:RuleOverwrite this to define the Text in the option panel for the configurable value- Overrides:
getConfigureTextin 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:
matchin classTextLevelRule- Throws:
java.io.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
-
-