conocode
このコード
How to

MeCabを使ってPHPから形態素解析をやってみる

PHPで形態素解析をやりたんですけど
APIならYahooやgooから提供されているし、サーバ内でやりたいんならMeCabというライブラリが多く使われているよ

形態素解析とは、文章を文法的な要素に分けて、それぞれの要素がどのようなものかを解析することです。

形態素解析は意外といろいろなところで役にたちます。
文章の区切りを見つけたり、検索語を分けたり、単語を集計したりする場合に必要になってきます。

Yahooが良いAPIを提供しているので、それを使うのもありですが、WEBサーバ内で完結して処理したい、というときは MeCab を使っています。

MeCabのインストール

yum でインストールしたいので Groonga のリポジトリを追加します

rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm

yum を使ってMeCab その他必要なものをインストールします

yum install mecab mecab-devel mecab-ipadic php-devel php-pear gcc

IPA辞書を使わない場合は ipadic のところを適宜変更してください。

PHP用ライブラリのインストール

PHPのMeCabライブラリをインストールするためにPEARのチャンネルを登録します。

pear channel-discover pecl.opendogs.org

PHPのMeCabライブラリをインストールします

pear install opendogs/mecab-beta

/etc/php.ini を修正します。
以下の行を追加してください。

Webサーバを再起動します。

service httpd restart

PHPでの書き方

これでMeCabを使用する準備が整いました。

以下のようなコードで形態素解析が行えます。

サンプル実行結果

平家物語の冒頭を解析した結果は以下のようになります

単語 品詞 品詞細分類1 品詞細分類2 品詞細分類3 活用形 活用型 原形 読み 発音
祇園 名詞 固有名詞 地域 一般 * * 祇園 ギオン ギオン
精舎 名詞 一般 * * * * 精舎 ショウジャ ショージャ
助詞 連体化 * * * *
名詞 一般 * * * * カネ カネ
助詞 連体化 * * * *
名詞 一般 * * * * コエ コエ
記号 読点 * * * *
諸行無常 名詞 一般 * * * * 諸行無常 ショギョウムジョウ ショギョームジョー
助詞 連体化 * * * *
響き 名詞 一般 * * * * 響き ヒビキ ヒビキ
あり 動詞 自立 * * 五段・ラ行 連用形 ある アリ アリ

お試しページ

文章を入力したら、 MeCabで形態素解析を行なって結果を表示するページを作ってみました。
MeCab(IPA辞書)を使うと、どんな解析結果になるのか試したい方はご利用ください。

https://lab.conocode.com/mecab