Skip to content

Commit

Permalink
[de] improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
f-knorr committed May 1, 2018
1 parent b7aaec4 commit 8338ddf
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 5 deletions.
Expand Up @@ -313,6 +313,11 @@ private enum GrammarCategory {
new PatternTokenBuilder().token("dieser").build(),
new PatternTokenBuilder().csToken("eine").build(),
new PatternTokenBuilder().pos("SUB:NOM:SIN:MAS").build()
),
Arrays.asList(
new PatternTokenBuilder().token("das").build(),
new PatternTokenBuilder().posRegex("SUB:DAT:.+").build(),
new PatternTokenBuilder().token("vorbehalten").build()
)
);

Expand Down
Expand Up @@ -880,7 +880,7 @@ private boolean isPotentialUpperCaseError (int pos, AnalyzedTokenReadings[] toke
boolean isPotentialError = pos < tokens.length - 3
&& tokens[pos+1].getToken().equals(",")
&& INTERROGATIVE_PARTICLES.contains(tokens[pos+2].getToken())
&& tokens[pos-1].hasPartialPosTag("VER:MOD:")
&& tokens[pos-1].hasPosTagStartingWith("VER:MOD:")
&& !tokens[pos-1].hasLemma("mögen")
&& !tokens[pos+3].getToken().equals("zum");
if (!isPotentialError &&
Expand Down Expand Up @@ -982,7 +982,7 @@ private void potentiallyAddLowercaseMatch(List<RuleMatch> ruleMatches, AnalyzedT
!nextTokenIsPersonalOrReflexivePronoun &&
Character.isLowerCase(token.charAt(0)) &&
!substVerbenExceptions.contains(token) &&
tokenReadings.hasPartialPosTag("VER:INF") &&
tokenReadings.hasPosTagStartingWith("VER:INF") &&
!tokenReadings.isIgnoredBySpeller() &&
!tokenReadings.isImmunized()) {
addRuleMatch(ruleMatches, sentence, LOWERCASE_MESSAGE, tokenReadings, StringTools.uppercaseFirstChar(tokenReadings.getToken()));
Expand Down Expand Up @@ -1087,7 +1087,7 @@ private boolean isNominalization(int i, AnalyzedTokenReadings[] tokens, String t
return false;
}
return (prevToken != null && ("irgendwas".equals(prevTokenStr) || "aufs".equals(prevTokenStr) || isNumber(prevTokenStr))) ||
(hasPartialTag(prevToken, "ART", "PRO:") && !(((i < 4 && tokens.length > 4) || prevToken.getReadings().size() == 1 || prevPrevToken.hasLemma("sein")) && prevToken.hasPartialPosTag("PRO:PER:NOM:")) && !prevToken.hasPartialPosTag(":STD")) || // "die Verurteilten", "etwas Verrücktes", "ihr Bestes"
(hasPartialTag(prevToken, "ART", "PRO:") && !(((i < 4 && tokens.length > 4) || prevToken.getReadings().size() == 1 || prevPrevToken.hasLemma("sein")) && prevToken.hasPosTagStartingWith("PRO:PER:NOM:")) && !prevToken.hasPartialPosTag(":STD")) || // "die Verurteilten", "etwas Verrücktes", "ihr Bestes"
(hasPartialTag(prevPrevPrevToken, "ART") && hasPartialTag(prevPrevToken, "PRP") && hasPartialTag(prevToken, "SUB")) || // "die zum Tode Verurteilten"
(hasPartialTag(prevPrevToken, "PRO:", "PRP") && hasPartialTag(prevToken, "ADJ", "ADV", "PA2", "PA1")) || // "etwas schön Verrücktes", "mit aufgewühltem Innerem"
(hasPartialTag(prevPrevPrevToken, "PRO:", "PRP") && hasPartialTag(prevPrevToken, "ADJ", "ADV") && hasPartialTag(prevToken, "ADJ", "ADV", "PA2")) || // "etwas ganz schön Verrücktes"
Expand Down Expand Up @@ -1208,7 +1208,7 @@ private boolean isProbablyCity(int i, AnalyzedTokenReadings[] tokens, String tok

private boolean isFollowedByRelativeOrSubordinateClause(int i, AnalyzedTokenReadings[] tokens) {
if (i < tokens.length - 4) {
return ",".equals(tokens[i+1].getToken()) && (INTERROGATIVE_PARTICLES.contains(tokens[i+2].getToken()) || tokens[i+2].hasPartialPosTag("KON:UNT"));
return ",".equals(tokens[i+1].getToken()) && (INTERROGATIVE_PARTICLES.contains(tokens[i+2].getToken()) || tokens[i+2].hasPosTag("KON:UNT"));
}
return false;
}
Expand Down
Expand Up @@ -275,7 +275,7 @@ private boolean containsOnlyInfinitivesToTheLeft(AnalyzedTokenReadings[] tokens,
String token = tokens[i].getToken();
if (tokens[i].hasPartialPosTag("SUB:")) {
AnalyzedTokenReadings lookup = tagger.lookup(token.toLowerCase());
if (lookup != null && lookup.hasPartialPosTag("VER:INF:")) {
if (lookup != null && lookup.hasPosTagStartingWith("VER:INF:")) {
infinitives++;
} else {
return false;
Expand Down
Expand Up @@ -2543,6 +2543,8 @@ Feedbackschleife/N
Fehlzeitenentwicklung
Feinkostspezialität
Feinkostspezialitäten
Feinkostsalat/E
Feinkostsalaten
Feinststaub
Feintuning/S
Felderwirtschaft
Expand Down
Expand Up @@ -201,6 +201,7 @@ public void testDetNounRule() throws IOException {
assertGood("Wenn das Kühe sind, bin ich ein Elefant.");
assertGood("Karl sagte, dass sie niemandem Bescheid gegeben habe.");
assertGood("Es blieb nur dieser eine Satz.");
assertGood("Oder ist das Mathematikern vorbehalten?");

// incorrect sentences:
assertBad("Meiner Chef raucht.");
Expand Down

0 comments on commit 8338ddf

Please sign in to comment.