Package org.languagetool.rules.de
Class VerbAgreementRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.TextLevelRule
-
- org.languagetool.rules.de.VerbAgreementRule
-
public class VerbAgreementRule extends org.languagetool.rules.TextLevelRuleSimple agreement checker for German verbs and subject. Checks agreement in:- VER:1:SIN w/o ich: e.g. "Max bin da." (incorrect) [same for VER:2:SIN w/o du, VER:1:PLU w/o wir]
- ich + VER:[123]:.* (not VER:1:SIN): e.g. "ich bist" (incorrect) [same for du, er, wir]
- wenn nur ein mögliches finites Verb -> das nehmen (Max machen das.)
- Sie (i>1)
- bei ich/du/er/wir sofort prüfen, damit alle vorkommen geprüft werden (Ich geht jetzt nach Hause und dort gehe ich sofort unter die Dusche.) [aber: isNear]
- Alle Verbvorkommen merken (Er präsentieren wollte und Video hätte keine Pläne.)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classVerbAgreementRule.BooleanAndFiniteVerb
-
Field Summary
Fields Modifier and Type Field Description private static java.util.List<java.util.List<org.languagetool.rules.patterns.PatternToken>>ANTI_PATTERNSprivate static java.util.Set<java.lang.String>BIN_IGNOREprivate static java.util.Set<java.lang.String>CONJUNCTIONSprivate Germanlanguageprivate static java.util.Set<java.lang.String>QUOTATION_MARKS
-
Constructor Summary
Constructors Constructor Description VerbAgreementRule(java.util.ResourceBundle messages, German language)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule>getAntiPatterns()java.lang.StringgetDescription()java.lang.StringgetId()private java.util.List<java.lang.String>getPronounSuggestions(org.languagetool.AnalyzedTokenReadings verb, boolean toUppercase)private java.util.List<java.lang.String>getVerbSuggestions(org.languagetool.AnalyzedTokenReadings verb, java.lang.String expectedVerbPOS, boolean toUppercase)private booleanhasUnambiguouslyPersonAndNumber(org.languagetool.AnalyzedTokenReadings tokenReadings, java.lang.String person, java.lang.String number)private booleanisFiniteVerb(org.languagetool.AnalyzedTokenReadings token)private booleanisNear(int a, int b)private booleanisQuotationMark(org.languagetool.AnalyzedTokenReadings token)org.languagetool.rules.RuleMatch[]match(java.util.List<org.languagetool.AnalyzedSentence> sentences)private java.util.List<org.languagetool.rules.RuleMatch>match(org.languagetool.AnalyzedSentence sentence, int pos)intminToCheckParagraph()private booleannextButOneIsModal(org.languagetool.AnalyzedTokenReadings[] tokens, int pos)private org.languagetool.rules.RuleMatchruleMatchWrongVerb(org.languagetool.AnalyzedTokenReadings token, int pos, org.languagetool.AnalyzedSentence sentence)private org.languagetool.rules.RuleMatchruleMatchWrongVerbSubject(org.languagetool.AnalyzedTokenReadings subject, org.languagetool.AnalyzedTokenReadings verb, java.lang.String expectedVerbPOS, int pos, org.languagetool.AnalyzedSentence sentence)private VerbAgreementRule.BooleanAndFiniteVerbverbDoesMatchPersonAndNumber(org.languagetool.AnalyzedTokenReadings token1, org.languagetool.AnalyzedTokenReadings token2, java.lang.String person, java.lang.String number, org.languagetool.AnalyzedTokenReadings finiteVerb)-
Methods inherited from class org.languagetool.rules.TextLevelRule
estimateContextForSureMatch, match, match
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, getCategory, getConfigureText, getCorrectExamples, getDefaultValue, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getMaxConfigurableValue, getMinConfigurableValue, getSentenceWithImmunization, getUrl, hasConfigurableValue, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
ANTI_PATTERNS
private static final java.util.List<java.util.List<org.languagetool.rules.patterns.PatternToken>> ANTI_PATTERNS
-
BIN_IGNORE
private static final java.util.Set<java.lang.String> BIN_IGNORE
-
CONJUNCTIONS
private static final java.util.Set<java.lang.String> CONJUNCTIONS
-
QUOTATION_MARKS
private static final java.util.Set<java.lang.String> QUOTATION_MARKS
-
language
private final German language
-
-
Constructor Detail
-
VerbAgreementRule
public VerbAgreementRule(java.util.ResourceBundle messages, German language)
-
-
Method Detail
-
getId
public java.lang.String getId()
- Specified by:
getIdin classorg.languagetool.rules.Rule
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescriptionin classorg.languagetool.rules.Rule
-
match
public org.languagetool.rules.RuleMatch[] match(java.util.List<org.languagetool.AnalyzedSentence> sentences)
- Specified by:
matchin classorg.languagetool.rules.TextLevelRule
-
match
private java.util.List<org.languagetool.rules.RuleMatch> match(org.languagetool.AnalyzedSentence sentence, int pos)
-
getAntiPatterns
public java.util.List<org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule> getAntiPatterns()
- Overrides:
getAntiPatternsin classorg.languagetool.rules.Rule
-
nextButOneIsModal
private boolean nextButOneIsModal(org.languagetool.AnalyzedTokenReadings[] tokens, int pos)
-
isNear
private boolean isNear(int a, int b)- Returns:
- true if |a - b| < 5, and a != -1
-
isQuotationMark
private boolean isQuotationMark(org.languagetool.AnalyzedTokenReadings token)
-
hasUnambiguouslyPersonAndNumber
private boolean hasUnambiguouslyPersonAndNumber(org.languagetool.AnalyzedTokenReadings tokenReadings, java.lang.String person, java.lang.String number)- Returns:
- true if the verb @param token (if it is a verb) matches @param person and @param number, and matches no other person/number
-
isFiniteVerb
private boolean isFiniteVerb(org.languagetool.AnalyzedTokenReadings token)
- Returns:
- true if @param token is a finite verb, and it is no participle, pronoun or number
-
verbDoesMatchPersonAndNumber
private VerbAgreementRule.BooleanAndFiniteVerb verbDoesMatchPersonAndNumber(org.languagetool.AnalyzedTokenReadings token1, org.languagetool.AnalyzedTokenReadings token2, java.lang.String person, java.lang.String number, org.languagetool.AnalyzedTokenReadings finiteVerb)
- Returns:
- false if neither the verb @param token1 (if any) nor @param token2 match @param person and @param number, and none of them is "und" or "," if a finite verb is found, it is saved in finiteVerb
-
getVerbSuggestions
private java.util.List<java.lang.String> getVerbSuggestions(org.languagetool.AnalyzedTokenReadings verb, java.lang.String expectedVerbPOS, boolean toUppercase)- Parameters:
toUppercase- true when the suggestions should be capitalized- Returns:
- a list of forms of @param verb which match @param expectedVerbPOS (person:number)
-
getPronounSuggestions
private java.util.List<java.lang.String> getPronounSuggestions(org.languagetool.AnalyzedTokenReadings verb, boolean toUppercase)- Parameters:
toUppercase- true when the suggestions should be capitalized- Returns:
- a list of pronouns which match the person and number of @param verb
-
ruleMatchWrongVerb
private org.languagetool.rules.RuleMatch ruleMatchWrongVerb(org.languagetool.AnalyzedTokenReadings token, int pos, org.languagetool.AnalyzedSentence sentence)
-
ruleMatchWrongVerbSubject
private org.languagetool.rules.RuleMatch ruleMatchWrongVerbSubject(org.languagetool.AnalyzedTokenReadings subject, org.languagetool.AnalyzedTokenReadings verb, java.lang.String expectedVerbPOS, int pos, org.languagetool.AnalyzedSentence sentence)
-
minToCheckParagraph
public int minToCheckParagraph()
- Specified by:
minToCheckParagraphin classorg.languagetool.rules.TextLevelRule
-
-