facebook twitter hatena line email

「Mecab/php5実装」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(php-mecabインストールエラーの時)
(php動作例)
 
(同じ利用者による、間の1版が非表示)
行31: 行31:
  
 
==コンソールでの動作例==
 
==コンソールでの動作例==
  $ php -r "print nl2br(print_r(mecab_split("すもももももももものうち")));"
+
  $ php -r "print nl2br(print_r(mecab_split('すもももももももものうち')));"
 
  // Array ( [0] => すもも [1] => も [2] => もも [3] => も [4] => もも [5] => の [6] => うち )
 
  // Array ( [0] => すもも [1] => も [2] => もも [3] => も [4] => もも [5] => の [6] => うち )
  
 
==php動作例==
 
==php動作例==
 +
サンプル
 
  $mecab = new MeCab_Tagger();
 
  $mecab = new MeCab_Tagger();
 
  $str = "すもももももももものうち";
 
  $str = "すもももももももものうち";
行46: 行47:
 
     echo "feature=".$node->getFeature()."<<nowiki />br />";
 
     echo "feature=".$node->getFeature()."<<nowiki />br />";
 
  }
 
  }
 +
結果
 
  id=9
 
  id=9
 
  surface=すもも
 
  surface=すもも

2022年10月1日 (土) 07:48時点における最新版

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

mecab-configがない時

checking for mecab-config... configure: error: not found
$ yum install mecab-devel

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()."<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