Class ReadabilityRule

Direct Known Subclasses:
GermanReadabilityRule, PortugueseReadabilityRule

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 final int level
    • tooEasyTest

      private final boolean tooEasyTest
    • nAllSentences

      private int nAllSentences
    • nAllWords

      private int nAllWords
    • nAllSyllables

      private int nAllSyllables
  • 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
    • getConfigureText

      public String getConfigureText()
    • getRuleOptions

      public RuleOption[] getRuleOptions()
      Description copied from class: Rule
      Overwrite this to return configurable options for option panel
      Overrides:
      getRuleOptions in class Rule
    • getAllSentences

      public int getAllSentences()
    • getAllWords

      public int getAllWords()
    • getAllSyllables

      public int getAllSyllables()
    • printMessageLevel

      public 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

      public 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