facebook twitter hatena line email

「Mecab」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(php7.0でmecabを動かす)
 
(同じ利用者による、間の7版が非表示)
行1: 行1:
==windows版ダウンロード&インストール==
+
[[mecab/インストール・実装]]
#http://mecab.sourceforge.net/
+
#mecab-0.98.exe実行
+
  
==linux版ダウンロード&インストール==
+
[[mecab/php5実装]]
本体
+
$ 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
+
  
==インストールエラー対応方法==
+
[[mecab/php7実装]]
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++
+
 
+
 
+
==辞書インストール==
+
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-mecab-config=/usr/local/bin/mecab-config --prefix=/usr/local --with-charset=utf8
+
$ make
+
# make install
+
 
+
==辞書インストールしてない時のエラー==
+
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
+
 
+
==動作確認==
+
$ 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.so設定==
+
$ 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
+
 
+
==コンソールでの動作例==
+
$ php -r "print nl2br(print_r(mecab_split("すもももももももものうち")));"
+
// Array ( [0] => すもも [1] => も [2] => もも [3] => も [4] => もも [5] => の [6] => うち )
+
 
+
==php動作例==
+
$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()."<<nowiki />br />";
+
    echo "surface=".$node->getSurface()."<<nowiki />br />";
+
    echo "stat=".$node->getStat()."<<nowiki />br />";
+
    echo "length=".$node->getLength()."<<nowiki />br />";
+
    echo "feature=".$node->getFeature()."<<nowiki />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
+
 
+
==php7.0でmecabを動かす==
+
php7でmecabを動かそうとすると以下エラーが出る
+
PHP Fatal error:  Uncaught Error: Call to undefined function mecab_split()
+
 
+
こちらにphp7で対応されてるphp_mecabがあるとのことだったので入れてみた
+
 
+
参考:https://github.com/rsky/php-mecab
+
cd /usr/local/src
+
git clone https://github.com/rsky/php-mecab
+
cd php-mecab/mecab
+
phpize
+
./configure --with-mecab=/usr/local/bin/mecab-config
+
make
+
make test
+
sudo make install
+
php -r "print nl2br(print_r(mecab_split("すもももももももものうち")));"
+
PHP Warning:  Module 'mecab' already loaded in Unknown on line 0
+
PHP Fatal error:  Uncaught Error: Call to undefined function mecab_split() in Command line code:1
+
動かない・・・また今度にする。
+

2016年2月17日 (水) 19:06時点における最新版

mecab/インストール・実装

mecab/php5実装

mecab/php7実装