形態素解析 MeCab を Perl モジュール Text::MeCab から使う
久しぶりに MeCab をインストールしてみた手順メモ。Perl バインディングは、前回(2006年!)は標準の MeCab.pm モジュールを利用しましたが、今なら牧さんの Text::MeCab の方がいいらしい。
環境は、Mac OS X 10.6.8 と Amazon EC2 Amazon Linux で試しました。
(参考)[Perl] 形態素解析MeCab(和布蕪)をPerlから使ってみる
http://kawa.at.webry.info/200604/article_3.html
ダウンロード
http://sourceforge.net/projects/mecab/files/
から mecab と mecab-ipadic をダウンロードします。
http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz
http://downloads.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
にあります。
MeCab 本体のインストール
まず、MeCab 本体をインストールします。
インストール先は /usr/local/mecab-0.98 です。
文字コードは今なら UTF-8 のみで OK です。
tar zxvf mecab-0.98.tar.gz
cd mecab-0.98
./configure --prefix=/usr/local/mecab-0.98 --enable-utf8-only
make
sudo make install
cd ..
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --prefix=/usr/local/mecab-0.98 --with-charset=utf8 --with-mecab-config=/usr/local/mecab-0.98/bin/mecab-config
make
sudo make install
cd ..
Text::MeCab モジュールのインストール
次に、Text::MeCab モジュールをインストールします。
今回は、cpanm を使って、extlib フォルダ配下にインストールしてみます。
1~2回、プロンプトで聞かれるので、--verbose を付ける必要があります。
cpanm --verbose -l extlib Text::MeCab
(中略)
Path to mecab config?
/usr/local/mecab-0.98/bin/mecab-config
Encoding of your mecab dictionary? (shift_jis, euc-jp, utf-8) [euc-jp]
utf-8
(後略)
普通は依存関係は cpanm が解決してくれますが、なぜか Devel::CheckLib のコンパイルで落ちてしまう場合は、別途 -force でインストールして下さい。
cpanm --force -l extlib Devel::CheckLib
『error while loading shared libraries: libmecab.so.1: cannot open shared object file』というエラーが出た場合は、共有ライブラリの読み込みに失敗しているので、以下を実行します。
export LD_RUN_PATH=/usr/local/mecab-0.98/lib
(※ 11/05 修正:LD_LIBRARY_PATH でなくて LD_RUN_PATH を cpanm 前に設定する)
形態素解析をテストしてみる
インストールできたので、早速、以下のコードでテストしてみます。
#!/usr/bin/perl
use lib qw(extlib/lib/perl5);
use Text::MeCab;
my $str = "この文を形態素解析して下さい。";
my $m = Text::MeCab->new();
my $n = $m->parse($str);
while ($n) {
printf("%s\t%s\t%d\n", $n->surface, $n->feature, $n->cost);
$n = $n->next;
}
以下の結果が表示されれば成功です。
この 連体詞,*,*,*,*,*,この,コノ,コノ -664
文 名詞,一般,*,*,*,*,文,ブン,ブン 4588
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 3778
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ 8885
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ 12788
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ 16156
て 助詞,接続助詞,*,*,*,*,て,テ,テ 14663
下さい 動詞,非自立,*,*,五段・ラ行特殊,命令i,下さる,クダサイ,クダサイ 17173
。 記号,句点,*,*,*,*,。,。,。 14787
BOS/EOS,*,*,*,*,*,*,*,* 13251
オマケ
Amazon Linux でインストールする場合は、MeCab コンパイル時に gcc-c++ が必要でした。
"形態素解析 MeCab を Perl モジュール Text::MeCab から使う" へのコメントを書く