久しぶりに形態素解析エンジンを使う機会があったので
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 を見ればだいたいわかりそう。