Mecabのインストール手順

「MeCab本体」「MeCabの辞書」「MeCabのJavaバインディング」をCentOSにインストールして、Javaで実行できるまでの手順のまとめ。

MeCabはオープンソースの形態素解析エンジン。MeCabは自然言語で書かれた文を形態素(言語における最小単位)に分割し、それぞれの品詞を判別することができる。

JavaからMeCabを実行するには「MeCab本体」「MeCabの辞書」「MeCabのJavaバインディング」が必要。これらをCentOSにインストールする手順をメモする。

MeCab公式サイト
執筆時バージョン
MeCab本体バージョン

0.996

OS

CentOS 6.6

準備

インストールする際にコンパイラの状態によっては、次のようなエラーになることがある。これは必要なコンパイラが入っていないのが原因なので、エラーが発生した場合はgcc-c++のインストールを行う。

configure: error: Your compiler is not powerful enough to compile MeCab.
If it should be, see config.log for more information of why it failed.
gcc-c++のインストール
$ sudo yum install gcc-c++

MeCab本体のインストール

まずは本体のインストール。

「mecab-0.996.tar.gz」をダウンロードしてインストールする。 作業ディレクトリはどこでもよい。成功すると「/usr/local/lib」以下にインストールされる。

MeCab本体のインストール
$ wget https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE
$ tar xvf mecab-0.996.tar.gz
$ cd mecab-0.996/
$ ./configure
$ make
$ make check
$ sudo make install
$ cd ../

MeCabは辞書がないと動かないので、この時点での動作確認はできない。

MeCab辞書のインストール

続いて辞書のインストール。推奨されているIPA辞書にする。

「mecab-ipadic-2.7.0-20070801.tar.gz」をダウンロードしてインストールする。作業ディレクトリはどこでもよい。成功すると「/usr/local/lib/mecab」以下にインストールされる。

MeCab辞書のインストール
$ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar xvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801/
$ ./configure --with-charset=utf8
$ make
$ sudo make install
$ cd ../

辞書のインストールが成功するとコマンドラインからの実行が可能になるので、テストする。

MeCabコマンドの確認
$ mecab
皆さん、こんにちは
皆さん   名詞,一般,*,*,*,*,皆さん,ミナサン,ミナサン
、     記号,読点,*,*,*,*,、,、,、
こんにちは 感動詞,*,*,*,*,*,こんにちは,コンニチハ,コンニチワ
EOS

こんなかんじならOK。

MeCab-Javaバインディングをインストール

インストールしたMeCabをJavaから動かすにはこれが必要。

  • MeCab-Javaバインディング → こちら

「mecab-java-0.996.tar.gz」をダウンロードしてファイルを生成する。 作業ディレクトリはどこでもよい。makeによって「libMeCab.so」「MeCab.jar」を生成する。このときMakefileの変更が必要。

「libMeCab.so」「MeCab.jar」を生成後、更に設定が必要。「libMeCab.so」はMeCabのインストール先へコピーして「LD_LIBRARY_PATH」を設定する。「MeCab.jar」は、MeCabを利用したいJavaプログラムへインポートすることで、そのプログラムで利用できるようになる。

Makefileの変更

「Makefile」を少しだけ書き換える必要がある。

(6行目)INCLUDEを環境にあわせたJDKのパスに変更する。
TARGET=MeCab
JAVAC=javac
JAVA=java
JAR=jar
CXX=c++
INCLUDE=/usr/lib/jvm/java-6-openjdk/include (←環境にあわせたJDKのパスに変更する)

PACKAGE=org/chasen/mecab
…
--- 以下略 ---

「libMeCab.so」「MeCab.jar」の生成

makeに成功すると「libMeCab.so」「MeCab.jar」が生成される。

$ wget https://mecab.googlecode.com/files/mecab-java-0.996.tar.gz
$ tar xvf mecab-java-0.996.tar.gz
$ cd mecab-java-0.996/
$ vi Makefile  (ファイルの書き換えをおこなう)
$ sudo make
$ ls -l  (「libMeCab.so」「MeCab.jar」が存在するか確認する)

「libMeCab.so」のmoveと「LD_LIBRARY_PATH」設定

「libMeCab.so」を利用するには、MeCabインストール先へのmoveと環境変数(LD_LIBRARY_PATH)の設定が必要。

環境変数「LD_LIBRARY_PATH」は次のように、「~/.bash_profile」などに設定しておく。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
mv libMeCab.so  /usr/local/lib/
vi ~/.bash_profile (「LD_LIBRARY_PATH」の設定)
source ~/.bash_profile

テストプログラムを動かす

makeした際にtestプログラムもコンパイルされているので、うまく設定できてるかを実行して確かめる。

java test
0.996
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は  助詞,係助詞,*,*,*,*,は,ハ,ワ
二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー
に  助詞,格助詞,一般,*,*,*,に,ニ,ニ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本  名詞,一般,*,*,*,*,本,ホン,ホン
を  助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た  助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。  記号,句点,*,*,*,*,。,。,。
EOS
…
--- 以下略 ---

こんなかんじならOK。

あとは「MeCab.jar」をプロジェクトへインポートすればプログラムから利用できる。使い方は「test.java」などを参考にする。

Appendix B: 改訂履歴

  • v1.0, 2015-02-25: 初稿