Hi,
> So add a rule in a disambiguator to tag the dot. Easy peasy.
now I tried to add a disambiguator for German. Tagging of the dot works,
but when checking (or running tests) I get this exception:
java.lang.ClassCastException: org.languagetool.AnalyzedToken cannot be
cast to org.languagetool.tagging.de.AnalyzedGermanToken
at
org.languagetool.tagging.de.AnalyzedGermanTokenReadings.getGermanReadings(AnalyzedGermanTokenReadings.java:56)
at org.languagetool.rules.de.CaseRule.match(CaseRule.java:428)
at
org.languagetool.JLanguageTool.checkAnalyzedSentence(JLanguageTool.java:613)
at org.languagetool.JLanguageTool.check(JLanguageTool.java:538)
at org.languagetool.JLanguageTool.check(JLanguageTool.java:494)
at
org.languagetool.gui.LanguageToolSupport._check(LanguageToolSupport.java:365)
at org.languagetool.gui.Main$4.run(Main.java:764)
Why is this happening?
Regards
Markus
diff --git a/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java b/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
index df54d98..c089bcf 100644
--- a/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
+++ b/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
@@ -40,6 +40,8 @@ import org.languagetool.rules.de.WiederVsWiderRule;
import org.languagetool.rules.de.WordCoherencyRule;
import org.languagetool.tagging.Tagger;
import org.languagetool.tagging.de.GermanTagger;
+import org.languagetool.tagging.disambiguation.Disambiguator;
+import org.languagetool.tagging.disambiguation.rules.de.GermanRuleDisambiguator;
import org.languagetool.tokenizers.SRXSentenceTokenizer;
import org.languagetool.tokenizers.SentenceTokenizer;
@@ -51,11 +53,20 @@ public class German extends Language {
private Tagger tagger;
private SentenceTokenizer sentenceTokenizer;
+ private Disambiguator disambiguator;
@Override
public Language getDefaultVariant() {
return new GermanyGerman();
}
+
+ @Override
+ public final Disambiguator getDisambiguator() {
+ if (disambiguator == null) {
+ disambiguator = new GermanRuleDisambiguator();
+ }
+ return disambiguator;
+ }
@Override
public String getName() {
diff --git a/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java b/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java
new file mode 100644
index 0000000..1c4757e
--- /dev/null
+++ b/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java
@@ -0,0 +1,33 @@
+/* LanguageTool, a natural language style checker
+ * Copyright (C) 2007 Daniel Naber (http://www.danielnaber.de)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ */
+
+package org.languagetool.tagging.disambiguation.rules.de;
+
+import org.languagetool.Language;
+import org.languagetool.language.German;
+import org.languagetool.tagging.disambiguation.rules.AbstractRuleDisambiguator;
+
+public class GermanRuleDisambiguator extends AbstractRuleDisambiguator {
+
+ @Override
+ protected Language getLanguage() {
+ return new German();
+ }
+
+}
diff --git a/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml b/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml
new file mode 100644
index 0000000..9efad78
--- /dev/null
+++ b/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
+<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
+<!--
+German Disambiguation Rules for LanguageTool
+Copyright © 2013 Markus Brenneis, Daniel Naber, Jan Schreiber
+-->
+
+<rules lang="de" xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/resource/disambiguation.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <rule name=". UNKNOWN -> PKT" id="UNKNOWN_PKT">
+ <pattern>
+ <marker>
+ <token>.</token>
+ </marker>
+ </pattern>
+ <disambig action="add"><wd pos="PKT"/></disambig>
+ </rule>
+</rules>
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Languagetool-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-devel