状況:
回避策として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"};
無視される単語のリストに追加します。しかし、「ゲスト用バスルーム」、「フランス語」、「テスト アプリケーション」などの単語の組み合わせ/2 つの単語のパターンはどうでしょうか。元の文法ファイルを変更せずにこれらを無視するにはどうすればよいでしょうか。ユーザー定義のルールを作成すればうまくいくと思いますし、上記のコード スニペットのよりエレガントなソリューションになるかもしれません。
質問:
単一単語および 2 単語のフレーズを無視するユーザー辞書の回避策を実行するための実用的なアプローチは何でしょうか?
ベストアンサー1
ファイルignore.txt
はバージョン2.9以降でサポートされています。変更.txt箇条書きで-Spelling
。
2語句はサポートされていません。チェックイン方法loadWordsToBeIgnored
についてはスペルチェックルール.java(そうすると、チェックは「RuntimeException: No space expected in ...」で失敗します)