mecabをphpに入れる
mecabは、オープンソースの形態素解析エンジンです。
簡単に言うと与えた文章を品詞分解してくれます。
mecabは特定の辞書やコーパスに依存しない汎用な設計になっているため、研究分野などで活用されています。
mecabのライブラリをyumでインストール
まずmecabのライブラリをyumでインストールします。
yum install -y https://packages.groonga.org/centos/groonga-release-latest.noarch.rpm yum makecache yum install mecab mecab-ipadic mecab-devel
/usr/lib64/mecab/dic/ipadic
に辞書が入りました。
この時点でコマンドラインからmecabで呼び出しできます。
適当に文章を入力すると品詞分解してくれます。
phpのmecab拡張ライブラリをインストール
次にphpのmecab拡張ライブラリをソースからインストールします。
cd /usr/local/src yum install re2c git clone https://github.com/rsky/php-mecab cd php-mecab/mecab phpize ./configure make make install
phpの起動時にmecabモジュールを追加するように設定します。
vi /etc/php.ini iniファイルの最終行に ;mecab extension=mecab.so を追記
phpを再起動します。
mecabが追加され有効になっているかを確認します。
php -m | grep mecab php -r 'phpinfo();' | grep 'mecab' -i
mecabを使ったphpのサンプルコードです。
<?php $str = 'スマホ相談ではプログラミング言語の話題も取り扱っています。'; $mecab = new MeCab\Tagger(); $nodes = $mecab->parse($str); print_r($nodes); ?>
サンプルコードの出力結果はこんな感じになります。
スマホ 名詞,一般,*,*,*,*,* 相談 名詞,サ変接続,*,*,*,*,相談,ソウダン,ソーダン で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ プログラミング 名詞,サ変接続,*,*,*,*,プログラミング,プログラミング,プログラミング 言語 名詞,一般,*,*,*,*,言語,ゲンゴ,ゲンゴ の 助詞,連体化,*,*,*,*,の,ノ,ノ 話題 名詞,一般,*,*,*,*,話題,ワダイ,ワダイ も 助詞,係助詞,*,*,*,*,も,モ,モ 取り扱っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,取り扱う,トリアツカッ,トリアツカッ て 助詞,接続助詞,*,*,*,*,て,テ,テ い 動詞,非自立,*,*,一段,連用形,いる,イ,イ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス 。 記号,句点,*,*,*,*,。,。,。 EOS
mecabの実行時にオプションを付けたい場合は次のようにします。
$mecab = new MeCab\Tagger(array('-O' => 'chasen'));
コマンドライン実行時に”-Ochasen”(ChaSen互換の出力フォーマットにする)と付ける場合と同等です。
補足:
※ CentOS 7, php7.2の環境にインスコ
MeCab: Yet Another Part-of-Speech and Morphological Analyzer