MAMPのPHPにphp-mecabを導入する方法ってあまり載ってないようなので書いておこうと思います。 mecab自体は入っている事を前提としているので注意。
環境OSX 10.11.6
mecab 0.996 MAMP 4.0.6 PHP 7.0.12
MAMPが4系じゃない場合はアップデートして下さい。
導入
git clone https://github.com/rsky/php-mecab.git
(2)mecabディレクトリに入る cd php-mecab/mecab
(3)phpizeを実行 ここで、MAMPで使っているPHPのphpizeを実行する必要がある。 フルパスで指定する。
/Applications/MAMP/bin/php/php7.0.12/bin/phpize
(4)./configureを実行 ここでも、MAMPで使っているPHPのphp-configを指定する必要がある。
./configure –with-php-config=/Applications/MAMP/bin/php/php7.0.12/bin/php-config –with-mecab
(5)makeの実行
make make test sudo make install
(6)php.iniの修正 php.iniを開いて以下の一行を加える
php.iniを開く
vi /Applications/MAMP/bin/php/php7.0.12/conf/php.ini
以下の行を追加
extension=mecab.so
(7)php-mecabが導入されている事の確認 phpinfoの出力を参照し、mecabで検索してみましょう。 導入が成功していれば、以下のような部分があるはずです。
php-mecabを使用してみる
PHP7でphp-mecabは名前空間を用いられるようになったため、これまで通りmecab_split()等と書いても使えないので注意。
Ex1 形態素に区切る
単純に形態素にだけ区切る場合は[Mecab](http://d.hatena.ne.jp/keyword/Mecab)\split()を使う。
$query = "トマトを5cm大に切る。"; $result = \Mecab\split($query); print_r($result);
実行結果
Array ( [0] => トマト [1] => を [2] => 5 [3] => cm [4] => 大 [5] => に [6] => 切る [7] => 。 )
Ex2 より詳細な情報を得る
$query = "トマトを5cm大に切る。"; $mecab = new \Mecab\Tagger(); $nodes = $mecab->parseToNode($query); foreach($nodes as $node){ echo($node->getSurface()."<br/>"); #形態素の表示 echo($node->getFeature()."<br/>"); #解析結果の表示 }
実行結果
BOS/EOS,*,*,*,*,*,*,*,* トマト 名詞,一般,*,*,*,*,トマト,トマト,トマト を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 5 名詞,数,*,*,*,*,* cm 名詞,一般,*,*,*,*,* 大 名詞,接尾,一般,*,*,*,大,ダイ,ダイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 切る 動詞,自立,*,*,五段・ラ行,基本形,切る,キル,キル 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,*