LanguageToolのgrammer.xml

Pocket

先日の東京エリアDebian勉強会ハックタイムで、もう少しLanguageToolをみて行きました。いくつか誤解があったのと、gitのコードを見ていて気づいたことを記録します。

私が参照していたJapanese.javaがgrammar.xmlでカバーできないケースをソースコードレベルで対応するものだと勘違いしていたのですが、ここは単にテキストの分割と品詞情報の付加を行うための処理を記述するもののようでした。

grammar.xmlはもっと柔軟性が高いようで、LanguageTool Wikiに高度な処理を行う方法も記述されています。一方でやはりgrammar.xmlだけで対応しきれないケースはJavaで書けることも記述されています。

今回追加しようと考えていたのは、長音符「-」の直前の文字がひらがな、カタカナ以外のケースです。基本的にそれはありえないので、LanguageToolが指摘すべき問題とすべきでしょう。

Doc-ja Wikiに書いた方法で-tオプションを利用すれば、そのようなケースの時に「-」はどのような品詞情報が付加されるかを調べることができます。

<br /><br />$ echo "実行時のダイナミック隣家ーの挙動" |  \<br /> java -jar languagetool-commandline.jar -t -l ja-JP -c UTF-8<br />Working on STDIN...<br />&lt;S&gt; 実行[実行/名詞-サ変接続]時[時/名詞-接尾-副詞可能]の[の/助詞-連体化]ダイナミ ック[ダイナミック/名詞-形容動詞語幹]隣家[隣家/名詞-一般]ー[ー/未知語]の[の/助詞-連体化]挙動[挙動/名詞-一般,&lt;/S&gt;]<br />Time: 527ms for 0 sentences (0.0 sentences/sec)<br />

単独の長音符「ー」は「未知語」と解釈されることがわかりました。単純にtokenがーでPOSが未知語である情報が検出されたら警告すればよさそうです。

しかし現状のLanguageToolはmasterのバージョンが3.0となっており、grammar.xml自体の文法も変わっていることに気付きました。したがって、Doc-ja Wikiの説明も今後は修正が必要になります。

ということを把握したところで先日は時間がなくなってしまいました。grammar.xmlの解説だけでも結構ボリュームがあるので、これを翻訳できると自分を含めうれしい人はいるかなあと思いました。