MeCab と php-mecab のインストールメモ(CentOS7.1)

プログラム
プログラムPHP
スポンサーリンク

MeCab は、日本語の文章を解析して、単語に分割してくれるソフトウェアです。WEBサービスを作るにあたって MeCab を PHP から使う必要があったので、今回は php-mecab もインストールしました。MeCab(めーきゃぶ)の名称は、開発者さんの好物「めかぶ」にちなんで付けられたそうです。ふと、めかぶをつまみに一杯やりたくなりました。(^^)

MeCab のインストール

・MeCab のダウンロード

wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz

・MeCab のインストール

tar xvzf mecab-0.996.tar.gz
cd mecab-0.996/
./configure
make
make check
sudo make install

IPA辞書のインストール

文章の解析に使う辞書をインストールします。

・IPA 辞書(推奨)のダウンロード

wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz

・IPA 辞書のインストール(文字エンコーディングは UTF8 を指定)

tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801/
./configure --with-charset=utf8
make
sudo make install

MeCab の動作確認

以上で、コマンドラインから MeCab が使えるようになります。

echo '美味しい焼肉が食べたい' | mecab

美味しい	形容詞,自立,*,*,形容詞・イ段,基本形,美味しい,オイシイ,オイシイ
焼肉	名詞,一般,*,*,*,*,焼肉,ヤキニク,ヤキニク
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
食べ	動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
たい	助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS

すばらしいですね!(^^)

出力フォーマットは下記になります。

表層形 品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音

MeCab 公式サイト より引用

php-mecab のインストール

PHP から MeCab を使えるようにするため php-mecab エクステンションをインストールします。

・php-mecab のダウンロード

git clone https://github.com/rsky/php-mecab.git

・php-mecab のインストール

cd php-mecab/mecab/
phpize
./configure
make
make test
sudo make install

下記が表示されれば、インストールが正常にできています。

Installing shared extensions:     /usr/lib64/php/modules/

・php-mecab エクステンションファイルの作成
sudo vi /etc/php.d/mecab.ini

---(下記を追加)--------------------------- 
extension=mecab.so

・php-mecab が読み込まれているかの確認

php -r 'phpinfo();' | grep mecab 
---(以下が表示されればOKです)-------
/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

・Apacheをリロード

sudo systemctl reload httpd 

php-mecab を使ったサンプルコード

vi mecab.php

<?php
$str = '美味しい焼肉が食べたい';

$mecab = new MeCab_Tagger();
$nodes = $mecab->parseToNode($str);

foreach ($nodes as $n) {
    echo $n->getSurface() . "\n";
    echo $n->getFeature() . "\n\n";
}

サンプルコードを実行してみます。

php mecab.php 

BOS/EOS,*,*,*,*,*,*,*,*

美味しい
形容詞,自立,*,*,形容詞・イ段,基本形,美味しい,オイシイ,オイシイ

焼肉
名詞,一般,*,*,*,*,焼肉,ヤキニク,ヤキニク

が
助詞,格助詞,一般,*,*,*,が,ガ,ガ

食べ
動詞,自立,*,*,一段,連用形,食べる,タベ,タベ

たい
助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ

BOS/EOS,*,*,*,*,*,*,*,*

終わりに

次回は、辞書にオリジナルの単語を追加する方法を調べてみたいと思います。

コメント

  1. PHP+Mecabで言語解析 | MOGINOメモ より:

    […] 参考…https://blog.apar.jp/php/2642/ […]

タイトルとURLをコピーしました