Package org.languagetool.rules.de
Class SubjectVerbAgreementRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.de.SubjectVerbAgreementRule
-
public class SubjectVerbAgreementRule extends org.languagetool.rules.Rule
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 Classes Modifier and Type Class Description private static class
SubjectVerbAgreementRule.SingularPluralPair
-
Field Summary
Fields Modifier and Type Field Description private static java.util.List<java.util.List<org.languagetool.rules.patterns.PatternToken>>
ANTI_PATTERNS
private static java.util.List<java.lang.String>
CURRENCIES
private German
language
private static org.languagetool.chunking.ChunkTag
NPP
private static org.languagetool.chunking.ChunkTag
NPS
private static java.util.List<SubjectVerbAgreementRule.SingularPluralPair>
PAIRS
private java.util.Set<java.lang.String>
plural
private static org.languagetool.chunking.ChunkTag
PP
private static java.util.List<java.lang.String>
QUESTION_PRONOUNS
private java.util.Set<java.lang.String>
singular
private GermanTagger
tagger
-
Constructor Summary
Constructors Constructor Description SubjectVerbAgreementRule(java.util.ResourceBundle messages, German language)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
containsOnlyInfinitivesToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
private boolean
containsRegexToTheLeft(java.lang.String regex, org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
int
estimateContextForSureMatch()
java.util.List<org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule>
getAntiPatterns()
java.lang.String
getDescription()
java.lang.String
getId()
private java.lang.String
getPluralFor(java.lang.String token)
private @Nullable org.languagetool.rules.RuleMatch
getPluralMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, java.lang.String tokenStr, org.languagetool.AnalyzedSentence sentence)
private java.lang.String
getSingularFor(java.lang.String token)
private @Nullable org.languagetool.rules.RuleMatch
getSingularMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, java.lang.String tokenStr, org.languagetool.AnalyzedSentence sentence)
java.net.URL
getUrl()
private boolean
hasQuestionPronounToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
private boolean
hasUnknownTokenAt(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos, int endPos)
private boolean
hasUnknownTokenToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
private boolean
hasUnknownTokenToTheRight(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
private boolean
hasVerbToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
private boolean
isCurrency(org.languagetool.AnalyzedTokenReadings token)
(package private) boolean
isFollowedByNominativePlural(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
org.languagetool.rules.RuleMatch[]
match(org.languagetool.AnalyzedSentence sentence)
(package private) boolean
prevChunkIsNominative(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, getCategory, getConfigureText, getCorrectExamples, getDefaultValue, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getMaxConfigurableValue, getMinConfigurableValue, getSentenceWithImmunization, hasConfigurableValue, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
NPS
private static final org.languagetool.chunking.ChunkTag NPS
-
NPP
private static final org.languagetool.chunking.ChunkTag NPP
-
PP
private static final org.languagetool.chunking.ChunkTag PP
-
QUESTION_PRONOUNS
private static final java.util.List<java.lang.String> QUESTION_PRONOUNS
-
CURRENCIES
private static final java.util.List<java.lang.String> CURRENCIES
-
PAIRS
private static final java.util.List<SubjectVerbAgreementRule.SingularPluralPair> PAIRS
-
singular
private final java.util.Set<java.lang.String> singular
-
plural
private final java.util.Set<java.lang.String> plural
-
ANTI_PATTERNS
private static final java.util.List<java.util.List<org.languagetool.rules.patterns.PatternToken>> ANTI_PATTERNS
-
tagger
private final GermanTagger tagger
-
language
private final German language
-
-
Constructor Detail
-
SubjectVerbAgreementRule
public SubjectVerbAgreementRule(java.util.ResourceBundle messages, German language)
-
-
Method Detail
-
getId
public java.lang.String getId()
- Specified by:
getId
in classorg.languagetool.rules.Rule
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescription
in classorg.languagetool.rules.Rule
-
estimateContextForSureMatch
public int estimateContextForSureMatch()
- Overrides:
estimateContextForSureMatch
in classorg.languagetool.rules.Rule
-
getAntiPatterns
public java.util.List<org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule> getAntiPatterns()
- Overrides:
getAntiPatterns
in classorg.languagetool.rules.Rule
-
getUrl
public java.net.URL getUrl()
- Overrides:
getUrl
in classorg.languagetool.rules.Rule
-
match
public org.languagetool.rules.RuleMatch[] match(org.languagetool.AnalyzedSentence sentence) throws java.io.IOException
- Specified by:
match
in classorg.languagetool.rules.Rule
- Throws:
java.io.IOException
-
getSingularMatchOrNull
@Nullable private @Nullable org.languagetool.rules.RuleMatch getSingularMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, java.lang.String tokenStr, org.languagetool.AnalyzedSentence sentence) throws java.io.IOException
- Throws:
java.io.IOException
-
getPluralMatchOrNull
@Nullable private @Nullable org.languagetool.rules.RuleMatch getPluralMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, java.lang.String tokenStr, org.languagetool.AnalyzedSentence sentence)
-
isCurrency
private boolean isCurrency(org.languagetool.AnalyzedTokenReadings token)
-
prevChunkIsNominative
boolean prevChunkIsNominative(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
hasUnknownTokenToTheLeft
private boolean hasUnknownTokenToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
hasUnknownTokenToTheRight
private boolean hasUnknownTokenToTheRight(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
hasUnknownTokenAt
private boolean hasUnknownTokenAt(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos, int endPos)
-
hasQuestionPronounToTheLeft
private boolean hasQuestionPronounToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
hasVerbToTheLeft
private boolean hasVerbToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
containsRegexToTheLeft
private boolean containsRegexToTheLeft(java.lang.String regex, org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
containsOnlyInfinitivesToTheLeft
private boolean containsOnlyInfinitivesToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos) throws java.io.IOException
- Throws:
java.io.IOException
-
isFollowedByNominativePlural
boolean isFollowedByNominativePlural(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
-
getSingularFor
private java.lang.String getSingularFor(java.lang.String token)
-
getPluralFor
private java.lang.String getPluralFor(java.lang.String token)
-
-