Package org.languagetool.rules.de
Class SubjectVerbAgreementRule
java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.de.SubjectVerbAgreementRule
Check subject verb agreement for verb forms "ist", "sind", "war" and "waren".
For example, it detects the errors in:
- Das Auto sind schnell.
- Das Auto waren schnell.
- Die Autos ist schnell.
- Die Katze und der Hund ist schön.
- Since:
- 2.9
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final List<List<PatternToken>> private final Supplier<List<DisambiguationPatternRule>> private final Germanprivate static final ChunkTagprivate static final ChunkTagprivate static final List<SubjectVerbAgreementRule.SingularPluralPair> private static final ChunkTag -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleancontainsOnlyInfinitivesToTheLeft(AnalyzedTokenReadings[] tokens, int startPos) private booleancontainsRegexToTheLeft(String regex, AnalyzedTokenReadings[] tokens, int startPos) intA number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid.Overwrite this to avoid false alarms by ignoring these patterns - note that yourRule.match(AnalyzedSentence)method needs to callRule.getSentenceWithImmunization(org.languagetool.AnalyzedSentence)for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()A short description of the error this rule can detect, usually in the language of the text that is checked.getId()A string used to identify the rule in e.g.private StringgetPluralFor(String token) private RuleMatchgetPluralMatchOrNull(AnalyzedTokenReadings[] tokens, int i, AnalyzedTokenReadings token, String tokenStr, AnalyzedSentence sentence) private StringgetSingularFor(String token) private RuleMatchgetSingularMatchOrNull(AnalyzedTokenReadings[] tokens, int i, AnalyzedTokenReadings token, String tokenStr, AnalyzedSentence sentence) getUrl()An optional URL describing the rule match in more detail.private booleanhasQuestionPronounToTheLeft(AnalyzedTokenReadings[] tokens, int startPos) private booleanhasUnknownTokenAt(AnalyzedTokenReadings[] tokens, int startPos, int endPos) private booleanhasUnknownTokenToTheLeft(AnalyzedTokenReadings[] tokens, int startPos) private booleanhasUnknownTokenToTheRight(AnalyzedTokenReadings[] tokens, int startPos) private booleanhasVerbToTheLeft(AnalyzedTokenReadings[] tokens, int startPos) private booleanisCurrency(AnalyzedTokenReadings token) (package private) booleanisFollowedByNominativePlural(AnalyzedTokenReadings[] tokens, int startPos) match(AnalyzedSentence sentence) Check whether the given sentence matches this error rule, i.e.(package private) booleanprevChunkIsNominative(AnalyzedTokenReadings[] tokens, int startPos) Methods inherited from class org.languagetool.rules.Rule
addExamplePair, addTags, addToneTags, cacheAntiPatterns, getCategory, getCorrectExamples, getDistanceTokens, getErrorTriggeringExamples, getFullId, getIncorrectExamples, getLocQualityIssueType, getMinPrevMatches, getPriority, getRuleOptions, getSentenceWithImmunization, getSourceFile, getSubId, getTags, getToneTags, hasTag, hasToneTag, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isGoalSpecific, isIncludedInHiddenMatches, isOfficeDefaultOff, isOfficeDefaultOn, isPremium, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setDistanceTokens, setErrorTriggeringExamples, setExamplePair, setGoalSpecific, setIncludedInHiddenMatches, setIncorrectExamples, setLocQualityIssueType, setMinPrevMatches, setOfficeDefaultOff, setOfficeDefaultOn, setPremium, setPriority, setTags, setToneTags, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
Field Details
-
NPS
-
NPP
-
PP
-
QUESTION_PRONOUNS
-
CURRENCIES
-
PAIRS
-
singular
-
plural
-
ANTI_PATTERNS
-
antiPatterns
-
language
-
-
Constructor Details
-
SubjectVerbAgreementRule
-
-
Method Details
-
getId
Description copied from class:RuleA 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 charactersA-Zand the underscore. -
getDescription
Description copied from class:RuleA short description of the error this rule can detect, usually in the language of the text that is checked.- Specified by:
getDescriptionin classRule
-
estimateContextForSureMatch
public int estimateContextForSureMatch()Description copied from class:RuleA number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid. This is useful for check-as-you-type, where a match might occur and the word that gets typed next makes the match disappear (something one would obviously like to avoid). Note: this may over-estimate the real context size. Returns-1when the sentence needs to end to be sure there's a match.- Overrides:
estimateContextForSureMatchin classRule
-
getAntiPatterns
Description copied from class:RuleOverwrite this to avoid false alarms by ignoring these patterns - note that yourRule.match(AnalyzedSentence)method needs to callRule.getSentenceWithImmunization(org.languagetool.AnalyzedSentence)for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()- Overrides:
getAntiPatternsin classRule
-
getUrl
Description copied from class:RuleAn optional URL describing the rule match in more detail. Typically points to a dictionary or grammar website with explanations and examples. Will returnnullfor rules that have no URL. -
match
Description copied from class:RuleCheck 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:
matchin classRule- Parameters:
sentence- a pre-analyzed sentence- Returns:
- an array of
RuleMatchobjects - Throws:
IOException
-
getSingularMatchOrNull
@Nullable private RuleMatch getSingularMatchOrNull(AnalyzedTokenReadings[] tokens, int i, AnalyzedTokenReadings token, String tokenStr, AnalyzedSentence sentence) throws IOException - Throws:
IOException
-
getPluralMatchOrNull
@Nullable private RuleMatch getPluralMatchOrNull(AnalyzedTokenReadings[] tokens, int i, AnalyzedTokenReadings token, String tokenStr, AnalyzedSentence sentence) -
isCurrency
-
prevChunkIsNominative
-
hasUnknownTokenToTheLeft
-
hasUnknownTokenToTheRight
-
hasUnknownTokenAt
-
hasQuestionPronounToTheLeft
-
hasVerbToTheLeft
-
containsRegexToTheLeft
-
containsOnlyInfinitivesToTheLeft
private boolean containsOnlyInfinitivesToTheLeft(AnalyzedTokenReadings[] tokens, int startPos) throws IOException - Throws:
IOException
-
isFollowedByNominativePlural
-
getSingularFor
-
getPluralFor
-