トップ 一覧 検索 ヘルプ RSS ログイン

LanguageTool使い方メモの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!! 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...
"" <S> 日本語[日本語/名詞-一般,]の[の/助詞-連体化,]文章[文章/名詞-一般,]を[を/助詞-格助詞-一般,]タグ[タグ/名詞-一般,]付[付/名詞-接尾-一般,</S>,]
"" 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オプションで変更したルールファイルを指定する。

! エントリー例

""    <rule id="DOUBLE-WO" name="をを">
""      <pattern case_sensitive="no">
""        <token>を</token>
""        <token>を</token>
""      </pattern>
""      <message>重複したを</message>
""      <example type="correct"><marker>を</marker>話す</example>
""      <example type="incorrect"><marker>をを</marker>話す</example>
""    </rule>

* ルールの追加例: 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を充実させる
** 書式を理解する
** サンプルを増やす