形態素解析とは、文章を文法的な要素に分けて、それぞれの要素がどのようなものかを解析することです。
形態素解析は意外といろいろなところで役にたちます。
文章の区切りを見つけたり、検索語を分けたり、単語を集計したりする場合に必要になってきます。
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 を修正します。
以下の行を追加してください。
1 |
extension=/usr/lib64/php/modules/mecab.so |
Webサーバを再起動します。
service httpd restart
PHPでの書き方
これでMeCabを使用する準備が整いました。
以下のようなコードで形態素解析が行えます。
1 2 |
$mecab = new \MeCab\Tagger(); $parsed = $mecab->parse($text); |
サンプル実行結果
平家物語の冒頭を解析した結果は以下のようになります
単語 | 品詞 | 品詞細分類1 | 品詞細分類2 | 品詞細分類3 | 活用形 | 活用型 | 原形 | 読み | 発音 |
---|---|---|---|---|---|---|---|---|---|
祇園 | 名詞 | 固有名詞 | 地域 | 一般 | * | * | 祇園 | ギオン | ギオン |
精舎 | 名詞 | 一般 | * | * | * | * | 精舎 | ショウジャ | ショージャ |
の | 助詞 | 連体化 | * | * | * | * | の | ノ | ノ |
鐘 | 名詞 | 一般 | * | * | * | * | 鐘 | カネ | カネ |
の | 助詞 | 連体化 | * | * | * | * | の | ノ | ノ |
声 | 名詞 | 一般 | * | * | * | * | 声 | コエ | コエ |
、 | 記号 | 読点 | * | * | * | * | 、 | 、 | 、 |
諸行無常 | 名詞 | 一般 | * | * | * | * | 諸行無常 | ショギョウムジョウ | ショギョームジョー |
の | 助詞 | 連体化 | * | * | * | * | の | ノ | ノ |
響き | 名詞 | 一般 | * | * | * | * | 響き | ヒビキ | ヒビキ |
あり | 動詞 | 自立 | * | * | 五段・ラ行 | 連用形 | ある | アリ | アリ |
お試しページ
文章を入力したら、 MeCabで形態素解析を行なって結果を表示するページを作ってみました。
MeCab(IPA辞書)を使うと、どんな解析結果になるのか試したい方はご利用ください。
https://lab.conocode.com/mecab