!!! 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を充実させる ** 書式を理解する ** サンプルを増やす