MeCab と MeCab Ruby をインストールする

久しぶりに形態素解析エンジンを使う機会があったので

MecabとRubyバインディングのMeCab Rubyのインストール手順をメモしておきます。

検証環境

Mac OS X

CentOS

MeCab のインストール

$ wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc

気になるメッセージ... でもIPA辞書は後で登録するし大丈夫みたい。

IPA辞書のインストール

$ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801/
$ ./configure --with-charset=utf8
$ make
$ sudo make install
configure: error: mecab-config is not found in your system

mecab-configが見つからないというエラーが発生したら場所を指定してあげる。

$ which mecab-config
$ sudo ./configure --with-charset=utf8 --with-mecab-config=/usr/local/bin/mecab-config

NAIST辞書のインストール

http://sourceforge.jp/projects/naist-jdic/releases/
mecab-naist-jdic-0.6.3b-20111013.tar.gz をダウンロードする

$ tar zxfv mecab-naist-jdic-0.6.3b-20111013.tar.gz
$ cd mecab-naist-jdic-0.6.3b-20111013/
$ ./configure --with-charset=utf8 
$ make
$ sudo make install

使い方

起動する

起動後文字列を入力すると以下の様な結果になります。

$ mecab

太郎はこの本を二郎を見た女性に渡した。
太郎  名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この  連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性  名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し  動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS

使用する辞書を指定して実行する

$ mecab -d /usr/local/lib/mecab/dic/naist-jdic/

デフォルトの辞書を変更する

# /usr/local/etc/mecabrc

dicdir =  /usr/local/lib/mecab/dic/ipadic # ここを変更する

Ruby バインディング(MeCab Ruby)のインストール

$ wget http://mecab.googlecode.com/files/mecab-ruby-0.996.tar.gz
$ tar zxfv mecab-ruby-0.996.tar.gz
$ cd mecab-ruby-0.996

ここで Makefile を修正します。

# extconf.rb

$CFLAGS += ' ' + `#{mecab_config} --cflags`.chomp
$LDFLAGS = '-L/usr/local/lib' # 追加
have_header('mecab.h') && create_makefile('MeCab')
$ ruby extconf.rb
$ make
$ sudo make install

正常にインストールできたかサンプルを実行して確認する

 $ ruby test.rb
`require': libmecab.so.2: cannot open shared object file: No such file or directory - /home/demo_user/.rbenv/versions/2.1.0/lib/ruby/site_ruby/2.1.0/x86_64-linux/MeCab.so (LoadError)

libmecab.so.2 でエラーが発生するのは、共有ライブラリが認識されていないことが原因のようなのでパスを追加してldconfigコマンドを実行する。

# /etc/ld.so.conf.d/usrlocal.conf

/usr/local/lib
$ sudo ldconfig 

以下のように表示されればOK。

$ ldconfig -p | grep "/usr/local/lib"
libmecab.so.2 (libc6,x86-64) => /usr/local/lib/libmecab.so.2
libmecab.so (libc6,x86-64) => /usr/local/lib/libmecab.so

MeCabのインストールはこれで完了。

使い方は test.rb を見ればだいたいわかりそう。