phpでmecabを使用する環境構築
形態素解析を用いて、入力されたキーワードが文章をなしているかを判定する必要があったので
mecabを入れてみた。
gcc-c++がない場合はgcc-c++のインストールが必要。
sudo yum install gcc-c++ cd /tmp wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz tar zxfv mecab-0.996.tar.gz cd mecab-0.996 sudo ./configure --enable-utf8-only sudo make sudo make install
このままでは辞書がないため、正確に形態素解析ができないため、辞書のインストールを行う
wget https://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 sudo ./configure --with-charset=utf8 sudo make sudo make install
phpで使用するために、php-mecabをインストールする
phpizeでエラーが出る場合は、php-develをインストールする必要がある
cd /tmp wget https://github.com/rsky/php-mecab/archive/master.zip unzip master.zip cd php-mecab-master/mecab phpize sudo ./configure sudo ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config sudo make sudo make install
上記方法でうまくインストールできない場合はpearでインストールする方法がある
php-pearのインストール
sudo yum install php-pear
pearでのインストール
pear channel-discover pecl.opendogs.org pear install opendogs/mecab-beta
ここでArchive_Tarのエラーが出る場合があるのでその場合は
pear upgrade Archive_Tar pear install Archive_Tar cd /tmp/pear/download/ tar -zxvf Archive_Tar-1.3.16.tgz mv /usr/share/pear/Archive/Tar.php /usr/share/pear/Archive/Tar.php.org cp /tmp/pear/download/Archive_Tar-1.3.16/Archive/Tar.php /usr/share/pear/Archive/
これを実行した後に、もう一度下記を実行
pear channel-discover pecl.opendogs.org pear install opendogs/mecab-beta
php.iniの編集
vim /etc/php.ini
下記コードを追加
extension=mecab.so
apacheの場合はapacheの再起動
sudo /etc/rc.d/init.d/httpd restart
php-fpmの場合はphp-fpmの再起動
sudo /etc/rc.d/init.d/php-fpm restart
インストールが正常に行われたかのチェックをする
php -r 'phpinfo();' | grep 'mecab' -i
下記のように出力されれば成功
mecab MeCab Support => enabled MeCab Library => 0.996 => 0.996 mecab.default_dicdir => no value => no value mecab.default_rcfile => no value => no value mecab.default_userdic => no value => no value
mecabが実際に出来るか下記文字列を検証
「これは三井住友VISAカードです。」
echo 'これは三井住友VISAカードです。' | mecab --unk-feature "未知語" これ 名詞,代名詞,一般,*,*,*,これ,コレ,コレ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 三井 名詞,固有名詞,組織,*,*,*,三井,ミツイ,ミツイ 住友 名詞,固有名詞,地域,一般,*,*,住友,スミトモ,スミトモ VISA 未知語 カード 名詞,一般,*,*,*,*,カード,カード,カード です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 。 記号,句点,*,*,*,*,。,。,。
VISAが未知語となっている。また本来は「三井住友VISAカード」が一つの名詞とする必要もある。
これは辞書自体が基本的な単語のみとなっている為、新たに辞書を追加する必要がある。
この辞書の追加に関しては、また今度。