2014-09-23 9 views
22

Situation:Wie fügt man Zwei-Wort-Muster hinzu, die von LanguageTool ignoriert werden?

Als Abhilfe für das not yet implemented feature to add a user dictionary of words to Languagetool, kam ich mit diesem Code-Schnipsel auf:

JLanguageTool langTool = new JLanguageTool(lang); 
langTool.activateDefaultPatternRules(); 
List<Rule> rules = langTool.getAllActiveRules(); 
for (Rule rule:rules) { 
    // System.out.println(rule.getId()); 
    if (rule.getId().equals("GERMAN_SPELLER_RULE")) { 
     if (rule instanceof SpellingCheckRule) { 
      SpellingCheckRule srule=(SpellingCheckRule) rule; 
      String [] words={"word1", "word2"}; 
      List<String> tokens=new ArrayList<String>(); 
      for (String word:words) { 
       tokens.add(word); 
      } 
      srule.addIgnoreTokens(tokens); 
     } 
    } 
} 

, die schön die Liste der Wörter von

String [] words={"word1", "word2"}; 

angegeben werden in den die Liste der ignorierten Wörter. Aber wie wäre es mit Wortkombinationen/zwei Wortmuster wie "Gästebadezimmer", "französisches Wort" "Testanwendung" - wie kann ich diese ignorieren, ohne die ursprüngliche Grammatikdatei zu ändern? Ich nehme an, das Erstellen einer benutzerdefinierten Regel könnte den Trick machen und könnte auch eine elegantere Lösung für das obige Code-Snippet sein.

Frage:

Was würde einen Arbeitsansatz sein, eine Benutzer-Wörterbuch zu bekommen work-around gehen, dass ignoriert Ein- und Zweiwortphrasen?

Antwort

2

Eine ignore.txt Datei wird seit Version 2.9 unterstützt. siehe die CHANGES.txt bei bullet -Spelling.

Zwei Wortphrasen werden nicht unterstützt. siehe Eincheckmethode loadWordsToBeIgnored in SpellingCheckRule.java. (Wenn Sie dies tun würden, würde die Prüfung mit einer "RuntimeException: Kein Platz in ... erwartet" fehlschlagen)

+0

Könnten Sie bitte weitere Details zur Integration dieser geben, was sehr hilfreich wäre. Danke –

+0

Ja, ich würde gerne wissen, wie man 'ignore.txt' verwendet. Wo soll ich es hinstellen? Kann es mit der Befehlszeilenversion verwendet werden? –