Class ProhibitedCompoundRule

java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.de.ProhibitedCompoundRule

public class ProhibitedCompoundRule extends Rule
Find compounds that might be morphologically correct but are still probably wrong, like 'Lehrzeile'.
Since:
4.1
  • Field Details

  • Constructor Details

  • Method Details

    • addAllCaseVariants

      private static void addAllCaseVariants(List<ProhibitedCompoundRule.Pair> candidatePairs, ProhibitedCompoundRule.Pair lcPair)
    • addUpperCaseVariants

      private static void addUpperCaseVariants(List<ProhibitedCompoundRule.Pair> pairs)
    • addItemsFromConfusionSets

      protected static void addItemsFromConfusionSets(List<ProhibitedCompoundRule.Pair> pairs, String confusionSetsFile, boolean isUpperCase)
    • setupAhoCorasickSearch

      protected static com.hankcs.algorithm.AhoCorasickDoubleArrayTrie<String> setupAhoCorasickSearch(List<ProhibitedCompoundRule.Pair> pairs, Map<String,List<ProhibitedCompoundRule.Pair>> pairMap)
    • 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
    • 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
    • match

      public RuleMatch[] match(AnalyzedSentence sentence) throws IOException
      Description copied from class: Rule
      Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different from the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example). In other words, implementations must be stateless, so that a previous call to this method has no influence on later calls.
      Specified by:
      match in class Rule
      Parameters:
      sentence - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
      Throws:
      IOException
    • isMisspelled

      private static boolean isMisspelled(String word)
    • getMatches

      private int getMatches(AnalyzedSentence sentence, List<RuleMatch> ruleMatches, AnalyzedTokenReadings readings, int partsStartPos, String wordPart, int toPosCorrection)
    • getThreshold

      int getThreshold()
    • setConfusionPair

      public void setConfusionPair(ProhibitedCompoundRule.Pair confusionPair)
      ignore automatically loaded pairs and only match using given confusionPair used for evaluation by ProhibitedCompoundRuleEvaluator
      Parameters:
      confusionPair - pair to evaluate, parts are assumed to be lowercase / null to reset
    • removeHyphensAndAdaptCase

      @Nullable String removeHyphensAndAdaptCase(String word)