Class 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
    • 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 characters A-Z and the underscore.
        Specified by:
        getId in class Rule
      • 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 class Rule
      • getDefaultValue

        public int getDefaultValue()
        Description copied from class: Rule
        Overwrite this to get a default Integer value by option panel
        Overrides:
        getDefaultValue in class Rule
      • 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 class Rule
      • getMinConfigurableValue

        public int getMinConfigurableValue()
        Description copied from class: Rule
        Overwrite this to define the minimum of a configurable value
        Overrides:
        getMinConfigurableValue in class Rule
      • getMaxConfigurableValue

        public int getMaxConfigurableValue()
        Description copied from class: Rule
        Overwrite this to define the maximum of a configurable value
        Overrides:
        getMaxConfigurableValue in class Rule
      • 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 class Rule
      • 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
      • 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 class TextLevelRule