!!! LanguageTool
[LanguageTool|http://www.languagetool.org/]は
Javaによって実装された文法チェッカーです。さまざまな言語に
対応しています。
!! 日本語対応
日本語対応はTakahiro Shinkaiさんの手によって行われました。
日本語処理は[GoSen|http://sourceforge.net/p/itadaki/code/51/tree/GoSen/]
とIPADICを用いています。GoSenはJavaによるMeCabの再実装です。
!! 仕組み
GoSenとIPADICによって対象の文章を形態素解析し、単語と品詞
情報をルールに照らし合わせて、マッチしたものを出力します。
単純なルールは[XML|https://github.com/languagetool-org/languagetool/blob/master/languagetool-language-modules/ja/src/main/resources/org/languagetool/rules/ja/grammar.xml]によって記述します。
XMLで記述しきれないような、複雑な場合の処理はJavaのコード
で対応します。今のところ、日本語に対応したXMLのルールは
少なく、Javaルールはまだ存在していません。
!! 使い方
LanguageToolの実行環境は以下の3種類があります。
* LibreOffie/OpenOfficeプラグイン
* コマンドライン(スタンドアロン版)
* Firefoxプラグイン
ここではスタンドアローン版の使い方について解説します。
! ダウンロード
[トップページ|http://www.languagetool.org/]より
スタンドアローン版のzipを入手します
(http://www.languagetool.org/download/LanguageTool-x.y.zip)。
! ファイルの展開
unzipコマンド等で入手したファイルを展開します。
LanguageTool-x.yというディレクトリ以下にファイルが生成されます。
! 起動
コマンドラインで以下のように入力します。
"" $ java -jar languagetool-commandline.jar --help
! 実行例
"" $ java -jar languagetool-commandline.jar -v -l ja-JP -c UTF-8 file.txt
UTF-8で記述されたファイルfile.txtを日本語として処理する。
解析結果を標準エラー出力に表示する(-v)。
! 実行例2
"" echo "そんじゃそこらのやつらとは違う" | java -jar languagetool-commandline.jar -l ja-JP -c UTF-8 -
"" Expected text language: Japanese
"" Working on STDIN...
"" 1.) Line 1, column 1, Rule ID: SONJASOKORA[1]
"" Message: そんじょそこら
"" そんじゃそこらのやつらとは違う
"" ^^^^^^^
"" Time: 323ms for 1 sentences (3.1 sentences/sec)
! 実行例2
-t(タギング)オプションを使うことで、入力された文章がどのように
形態素解析されるかを確認できる。
"" $ echo "日本語の文章をタグ付" | java -jar languagetool-commandline.jar -t -l ja-JP -c UTF-8
"" Expected text language: Japanese
"" Working on STDIN...
"" 日本語[日本語/名詞-一般,]の[の/助詞-連体化,]文章[文章/名詞-一般,]を[を/助詞-格助詞-一般,]タグ[タグ/名詞-一般,]付[付/名詞-接尾-一般,,]
"" Time: 502ms for 0 sentences (0.0 sentences/sec)
その他のオプションについては
[LanguageToo Wiki|http://wiki.languagetool.org/command-line-options]
を参照。
!! grammer.xml
languagetool-commandline.jarファイルがあるディレクトリ上の
org/languagetool/rules/ja/grammer.xml が文法辞書になる。
エントリーを追加して確認する場合はこのファイルを変更するか、
--rulefileオプションで変更したルールファイルを指定する。
! エントリー例
""
""
"" を
"" を
""
"" 重複したを
"" を話す
"" をを話す
""
* ルールの追加例: https://github.com/languagetool-org/languagetool/pull/80/files
!! ルールのテスト
exampleタグはルールのテストに用いられる。日本語のルールのみをテストする場合は以下を実行する。
"" $ mvn --projects languagetool-language-modules/ja --also-make clean test
!! ToDo
* Version 3.0の書式に合わせる
* grammer.xmlを充実させる
** 書式を理解する
** サンプルを増やす