日本語文書校正ツール jcorrect をDebian8に導入する

jcorrectとは?

jcorrect は、形態素解析 / 係受け解析ソフトウェアである、cabocha の解析 結果を利用して、日本語文章の校正を補助するツールです。

http://www.lsnl.jp/~ohsaki/research/tips-jcorrect/

形態素解析、係受け解析を用いて技術文章を構成するためのツールです。

論文を執筆する際に、文法的におかしい部分や冗長な部分を発見、修正する際に利用します。

簡易に使うだけであれば以下のようなWebインターフェースが用意されています。

jcorrect — A simple Japanese grammer checker [Web interface]

http://www.lsnl.jp/cgi-bin/jcorrect

 

目的

論文を執筆している際に、先生の勧めでjcorrect を導入しました。

しかしlatexで書いてコピペしてはっつけて修正・・・がめんどくさい。

そこで、GithubのWebhookを利用し、pushされた際に自動で文法がおかしい部分にコメントを入れるようなサービスの実装を目指します。

最終的にはjcorrectをNode.JSで実装し直す予定ですが、まず、その第一段階としてjcorrectをオフライン、コンソール上で動作させます。

導入

前提とする環境は

  • Debian 8 ( on Vagrant)
  • RAM 4GB
  • CPU 4

となっています。

メモリとCPUは大目に確保しないと後述のcabochaのmakeで止まります。

また、今回はaptで入る物でも基本的にソースからコンパイルします。

 

まず、前提としてコンパイルに必要なbuild-essentialを入れます。

$ sudo apt install build-essential

また、jcorrectの動作には

が必要なので、これらをダウンロードし、必要であれば展開します。

Perlはaptで入れてください。 標準で入っているかもしれませんが・・・

以下のコマンドはバージョンを適宜、読み替えてください。

$ ls -ls
total 96723
82656 -rwxrwxrwx 1 vagrant vagrant 84638995 Jan 16 05:38 cabocha-0.69.tar.bz2
  773 -rwxrwxrwx 1 vagrant vagrant   790570 Jan 16 05:43 CRF++-0.58.tar.gz
    7 -rwxrwxrwx 1 vagrant vagrant     7120 Jan 16 06:30 jcorrect
 1366 -rwxrwxrwx 1 vagrant vagrant  1398663 Jan 16 05:45 mecab-0.996.tar.gz
11922 -rwxrwxrwx 1 vagrant vagrant 12208105 Jan 16 05:46 mecab-ipadic-2.7.0-20070801.tar.gz
$ tar xf cabocha-0.69.tar.bz2
$ tar xf CRF++-0.58.tar.gz
$ tar xf mecab-0.996.tar.gz
$ tar xf mecab-ipadic-2.7.0-20070801.tar.gz

まず、CRF++からビルドしていきます。

$ cd CRF++-0.58
$ ./configure 
$ make
$ sudo make install
$ sudo ldconfig

MeCab本体をビルドします。

$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install

MeCab辞書をビルドします。

$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ sudo make install

ここまで上手く行っていればMeCab単体で動作するはずです。

以下のようにテストできます。

$ echo '技術文書は簡潔であることが重要です。' | mecab
技術 名詞,一般,*,*,*,*,技術,ギジュツ,ギジュツ
文書 名詞,一般,*,*,*,*,文書,ブンショ,ブンショ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
簡潔 名詞,形容動詞語幹,*,*,*,*,簡潔,カンケツ,カンケツ
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
こと 名詞,非自立,一般,*,*,*,こと,コト,コト
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
重要 名詞,形容動詞語幹,*,*,*,*,重要,ジュウヨウ,ジューヨー
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS

ここまで確認できたらCabochaをビルドします。

$ LDFLAGS="-Wl,-rpath=/usr/local/lib -L/usr/local/lib" ./configure --with-charset=utf8 --enable-utf8-only
$ make
$ sudo make install

上手く行っていればCabocha単体で動作するはずです。

以下のようにテストできます。

$ echo '技術文書は簡潔であることが重要です。' |cabocha
技術文書は-D
  簡潔である-D
        ことが-D
      重要です。
EOS

ここまでで問題がなければjcorrectは動作します。

以下のように使えます。

$ echo '技術文書は簡潔であることが重要です。' | ./jcorrect

技術文書は簡潔であることが重要です。

技術文書は-D
  簡潔である-D
        ことが-D
      重要です。

1: **** misssing subject for `重要です。'
1: check meaning of `ことが -> 重要です。'
1: check meaning of `簡潔である -> ことが'
1: check meaning of `技術文書は -> 簡潔である'

ただし、jcorrectのオリジナルはEUC-JPなのでUTF-8に文字コードを変換しないと正常に動作しないです。

iconv -f EUCJP -t UTF8 ./jcorrect

以上で終了です。

今後、JavaScriptにjcorrect移植したうえでgithubとの連携を目指します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください