LanguageToolを
触ってみる
野首貴嗣
knok@daionet.gr.jp
日本語校正・誤字チェック
● (かつては)自由な実装がなかった
○ GNU Aspell
■ jaのエントリーだけはある
■ 必要なコードすらない

● Doc-ja MLでLTの存在を教えてもらう
○ http://mail.ring.gr.jp/doc-ja/201210/msg00004.html
LanguageToolの概要
● Doc-ja Wikiにまとめてある
○

http://openlab.ring.gr.jp/doc-ja/cgi-bin/fswiki/wiki.cgi?
page=LanguageTool%BB%C8%A4%A4%CA%FD%A5%E1%A5%E2

● 各国の言語処理ツールと辞書の詰め合わせ
○ 共通化したAPIで使える
○ 詰め合わせなので、各種実装と辞書のライセンスはば
ばらばら
■ すべてオープンソースソフトウェア
LanguageToolの特徴
● 開発・実行環境はJava
○ Ver 2.3からJava7必須

● 動作環境
○ LibreOffice/OpenOffice プラグイン
○ Firefox プラグイン
○ スタンドアロン
Webで試せる
http://www.languagetool.org/
しかしルールが少ない…
● http://community.languagetool.
org/rule/list?lang=ja
○ 23種類
試しにルールを書いてみた
<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>
超シンプル
● 特定の単語の連続を見てるだけ
● もっと複雑なルールもできる
○ 品詞情報に基づくもの
■ どんな処理をされるかは-tオプションで確認
○ 正規表現
○ Javaコードで記述する方法
■ 日本語のものは2つ
今後どうするか
● ルールの拡充
○ WebのRule Creatorはうまく動かない?
■ http://www.languagetool.org/ruleeditor/
○ 用例を集める
■ 各種翻訳MLを参考に
○ 日本語のルールに基づいた複雑なパターン
■ Javaで記述するタイプのルール
●

かける人がいるのかどうか
できたらいいな
● Google Summer of Code
○ LTの中国語対応はGSoCの成果
○ Doc-jaがmentorをやる?

● 機械的な収集
○ Wikipedia等から
○ 形態素解析させて、変なつながりのものを探す
○ 教師なし学習でがんばれるか?

Language toolを使ってみる