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,*,*,*,*,*,*,*,*
終わりに
次回は、辞書にオリジナルの単語を追加する方法を調べてみたいと思います。
コメント
[…] 参考…https://blog.apar.jp/php/2642/ […]