22

情况:

作为尚未实现的将用户词典添加到 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"};

到被忽略的单词列表。但是单词组合/两个单词模式,如“Guest bath”、“French word”、“test application”——如何在不修改原始语法文件的情况下忽略这些?我假设创建一些用户定义的规则可以解决问题,并且对于上述代码片段也可能是一个更优雅的解决方案。

问题:

什么是一种有效的方法来解决忽略单个和两个单词短语的用户词典工作?

4

1 回答 1

2

ignore.txt2.9 版开始支持文件。请参阅项目符号处的CHANGES.txt-Spelling

不支持两个单词短语。请参阅SpellingCheckRule.javaloadWordsToBeIgnored中的签入方法。(如果您这样做,检查将失败,并显示“RuntimeException: No space expected in ...”)

于 2015-04-24T08:35:55.003 回答