Mecab
提供: 初心者エンジニアの簡易メモ
目次
windows版ダウンロード&インストール
- http://mecab.sourceforge.net/
- mecab-0.98.exe実行
linux版ダウンロード&インストール
本体
$ cd /usr/local/src $ wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz $ tar zxfv mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure --with-charset=utf8 $ make $ make check $ sudo make install
インストールエラー対応方法
configure: error: no acceptable C compiler found in $PATH 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. $ sudo yum -y install gcc $ sudo yum install gcc-c++
辞書
% tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz % mecab-ipadic-2.7.0-XXXX % ./configure --with-charset=utf8 % make % su # make install
辞書インストールしてない時のエラー
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
以下エラー時
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
辞書のdirが違うので確認できるように
ln -s /usr/lib64/mecab /usr/local/lib/mecab
動作確認
$ echo "すもももももももものうち" | mecab すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
phpで使う
pear channel-discover pecl.opendogs.org pear remote-list -c opendogs sudo pear install opendogs/mecab-beta > specify pathname to mecab-config [no] :
php-mecabインストールエラーの時
ERROR: `/var/tmp/mecab/configure --with-mecab=no' failed specify pathname to mecab-config [no] : /usr/local/bin
phpのmecabが動かない場合は一旦削除して再度入れる
sudo pear uninstall opendogs/mecab-beta sudo pear install opendogs/mecab-beta
phpのmecab.ini設定
$ vi /etc/php.d/mecab.ini extension=mecab.so
phpのmecab設定確認
$ php -r "phpinfo();" | grep mecab /etc/php.d/mecab.ini, mecab mecab.default_dicdir => no value => no value mecab.default_rcfile => no value => no value mecab.default_userdic => no value => no value
動作例
print nl2br(print_r(mecab_split("すもももももももものうち"))); // Array ( [0] => すもも [1] => も [2] => もも [3] => も [4] => もも [5] => の [6] => うち ) $mecab = new MeCab_Tagger(); $str = "すもももももももものうち"; $nodes = $mecab->parseToNode($str); foreach($nodes as $node) { if ($node->getStat() == 2 || $node->getStat() == 3) continue; echo "id=".$node->getId()."<br />"; echo "surface=".$node->getSurface()."<br />"; echo "stat=".$node->getStat()."<br />"; echo "length=".$node->getLength()."<br />"; echo "feature=".$node->getFeature()."<br />"; } id=9 surface=すもも stat=0 length=9 feature=名詞,一般,*,*,*,*,すもも,スモモ,スモモ id=19 surface=も stat=0 length=3 feature=助詞,係助詞,*,*,*,*,も,モ,モ id=24 surface=もも stat=0 length=6 feature=名詞,一般,*,*,*,*,もも,モモ,モモ id=31 surface=も stat=0 length=3 feature=助詞,係助詞,*,*,*,*,も,モ,モ id=36 surface=もも stat=0 length=6 feature=名詞,一般,*,*,*,*,もも,モモ,モモ id=47 surface=の stat=0 length=3 feature=助詞,連体化,*,*,*,*,の,ノ,ノ id=57 surface=うち stat=0 length=6 feature=名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
apacheで動かす場合は再起動
/etc/rc.d/init.d/httpd restart