2014-09-23 26 views
22

Sytuacja:Jak dodać wzory dwóch słów, które mają być ignorowane przez LanguageTool?

Jako obejście dla not yet implemented feature to add a user dictionary of words to Languagetool, wpadłem na ten fragment kodu:

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); 
     } 
    } 
} 

który będzie ładnie dodać listę słów podanych przez

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

do lista ignorowanych słów. Ale co z kombinacjami słów/wzorami dwóch słów jak "łazienka gościa", "francuskie słowo" "aplikacja testowa" - jak mogę je zignorować bez modyfikacji oryginalnego pliku gramatycznego? Zakładam, że utworzenie reguły zdefiniowanej przez użytkownika może pomóc i może być bardziej eleganckim rozwiązaniem dla powyższego fragmentu kodu.

Pytanie:

Co byłoby podejście do pracy, aby uzyskać użytkownika słowniku prace wokół dzieje, że ignoruje jedno i dwu-słowo frazy?

Odpowiedz

2

Plik ignore.txt jest obsługiwany od wersji 2.9. patrz CHANGES.txt pod adresem -Spelling.

Dwa wyrazy nie są obsługiwane. patrz metoda sprawdzania loadWordsToBeIgnored w SpellingCheckRule.java. (jeśli to zrobisz, kontrola zakończy się niepowodzeniem z "RuntimeException: Brak spacji w ...")

+0

Czy możesz podać więcej szczegółów na temat integracji, co byłoby bardzo pomocne. Dzięki –

+0

Tak, chciałbym wiedzieć, jak używać 'ignore.txt'. Gdzie to umieściłem? Czy można go używać z wersją wiersza poleceń? –