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
  • Field Details

    • MARK_WORDS

      private static final int MARK_WORDS
      See Also:
    • MIN_WORDS

      private static final int MIN_WORDS
      See Also:
    • linguServices

      private final LinguServices linguServices
    • lang

      private final Language lang
    • level

      private int level
    • tooEasyTest

      private boolean tooEasyTest
  • Constructor Details

  • Method Details

    • getId

      public 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 String getId(boolean tooEasyTest)
    • getDescription

      public 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 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 String printMessageLevel(int level)
    • getMessage

      protected 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(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(List<AnalyzedSentence> sentences) throws IOException
      Specified by:
      match in class TextLevelRule
      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 class TextLevelRule