Revision: 6161
http://languagetool.svn.sourceforge.net/languagetool/?rev=6161&view=rev
Author: gulp21-1
Date: 2012-01-05 12:28:06 +0000 (Thu, 05 Jan 2012)
Log Message:
-----------
[de] WiederVsWider: do not find error in 'Das spiegelt wieder wider...'
NACHDEM_PRAETERITUM: find error when the verb is the last word
Modified Paths:
--------------
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
trunk/JLanguageTool/src/rules/de/grammar.xml
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
Modified:
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
===================================================================
---
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
2012-01-04 20:41:47 UTC (rev 6160)
+++
trunk/JLanguageTool/src/java/org/languagetool/rules/de/WiederVsWiderRule.java
2012-01-05 12:28:06 UTC (rev 6161)
@@ -54,12 +54,11 @@
public RuleMatch[] match(AnalyzedSentence text) {
final List<RuleMatch> ruleMatches = new ArrayList<RuleMatch>();
final AnalyzedTokenReadings[] tokens = text.getTokens();
- int pos = 0;
boolean foundSpiegelt = false;
boolean foundWieder = false;
boolean foundWider = false;
- for (AnalyzedTokenReadings token1 : tokens) {
- final String token = token1.getToken();
+ for (int i=0; i<tokens.length; i++) {
+ final String token = tokens[i].getToken();
if (token.trim().equals("")) {
// ignore
} else {
@@ -71,9 +70,12 @@
} else if (token.equalsIgnoreCase("wider") && foundSpiegelt) {
foundWider = true;
}
- if (foundSpiegelt && foundWieder && !foundWider) {
+ if (foundSpiegelt && foundWieder && !foundWider &&
+ !(tokens.length > i + 2 && (tokens[i +
1].getToken().equals("wider") || tokens[i + 2].getToken().equals("wider")) )
+ ) {
final String msg = "'wider' in 'widerspiegeln' wird mit 'i' statt
mit 'ie' " +
"geschrieben, z.B. 'Das spiegelt die Situation gut wider.'";
+ final int pos = tokens[i].getStartPos();
final RuleMatch ruleMatch = new RuleMatch(this, pos, pos +
token.length(), msg);
ruleMatch.setSuggestedReplacement("wider");
ruleMatches.add(ruleMatch);
@@ -82,7 +84,6 @@
foundWider = false;
}
}
- pos += token.length();
}
return toRuleMatchArray(ruleMatches);
}
Modified: trunk/JLanguageTool/src/rules/de/grammar.xml
===================================================================
--- trunk/JLanguageTool/src/rules/de/grammar.xml 2012-01-04 20:41:47 UTC
(rev 6160)
+++ trunk/JLanguageTool/src/rules/de/grammar.xml 2012-01-05 12:28:06 UTC
(rev 6161)
@@ -6342,6 +6342,17 @@
<example type="correct">Nachdem der Brief <marker>gekommen
war</marker>, ging ich nach Hause.</example>
<example type="incorrect">Nachdem der Brief <marker>kam</marker>, ging
ich nach Hause.</example>
</rule>
+ <rule>
+ <pattern mark_from="2" mark_to="-1">
+ <token>,</token>
+ <token skip="-1">nachdem<exception scope="next"
regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
+ <token postag_regexp="yes" postag="VER:.*:PRT:.*"><exception
scope="current" postag_regexp="yes" postag=".*AUX.*"/></token>
+ <token postag="SENT_END"/>
+ </pattern>
+ <message>Die Subjunktion 'nachdem' drückt standardsprachlich
Vorzeitigkeit aus und kann daher nicht mit dem Präteritum verwendet werden.
Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt
(Präteritum im Hauptsatz) oder die Subjunktion 'als' zum Ausdrücken von
Gleichzeitigkeit.</message>
+ <example type="correct">Ich ging nach Hause, nachdem der Brief
<marker>gekommen war</marker>.</example>
+ <example type="incorrect">Ich ging nach Hause, nachdem der Brief
<marker>kam</marker>.</example>
+ </rule>
</rulegroup>
<rulegroup id="WEGEN_DIR" name="Grammatik: 'wegen dir (deinetwegen)' usw.">
<rule>
Modified:
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
===================================================================
---
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
2012-01-04 20:41:47 UTC (rev 6160)
+++
trunk/JLanguageTool/src/test/org/languagetool/rules/de/WiederVsWiderRuleTest.java
2012-01-05 12:28:06 UTC (rev 6161)
@@ -38,8 +38,7 @@
assertEquals(0, rule.match(langTool.getAnalyzedSentence("Das spiegelt die
Situation.")).length);
assertEquals(0, rule.match(langTool.getAnalyzedSentence("Immer wieder
spiegelt das die Situation.")).length);
assertEquals(0, rule.match(langTool.getAnalyzedSentence("Immer wieder
spiegelt das die Situation wider.")).length);
- // known to match although sentence is okay:
- //assertEquals(0, rule.match(langTool.getAnalyzedText("Das spiegelt wieder
wider, wie es läuft.")).length);
+ assertEquals(0, rule.match(langTool.getAnalyzedSentence("Das spiegelt
wieder wider, wie es läuft.")).length);
// errors:
assertEquals(1, rule.match(langTool.getAnalyzedSentence("Das spiegelt
wieder, wie es wieder läuft.")).length);
assertEquals(1, rule.match(langTool.getAnalyzedSentence("Das spiegelt die
Situation gut wieder.")).length);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs