Как добавить шаблоны из двух слов, которые следует игнорировать LanguageTool?
Ситуация:
В качестве обходного пути для еще не реализована функция добавления пользовательского словаря слов в Languagetool, я придумал этот фрагмент кода:
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);
}
}
}
который красиво добавит список слов, указанный
String [] words={"word1", "word2"};
в список игнорируемых слов. Но как насчет комбинаций слов/двух шаблонов слов
как "гостевая ванная комната", "французское слово" "тестовое приложение" - как я мог их игнорировать без изменения оригинального файла грамматики? Я предполагаю, что создание определенного пользовательского правила может сделать трюк и может также стать более элегантным решением для приведенного выше фрагмента кода.
Вопрос:
Каким будет рабочий подход, чтобы заставить работать с пользовательским словарем, игнорируя одно- и двухсловные фразы?
Ответы
Ответ 1
Поддерживается файл ignore.txt
с версии 2.9. см. CHANGES.txt в поле bullet -Spelling
.
Две фразы не поддерживаются. см. метод проверки loadWordsToBeIgnored
в SpellingCheckRule.java. (если вы это сделаете, проверка завершится неудачей с "RuntimeException: в пространстве нет места..." )