PHP で Mecab を使って日本語形態素解析の結果を簡単に取得する!

<p>■MeCabについて<br><a href="http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html">MeCab</a> は、オープンソースの形態素解析エンジンです。</p> <p><a href="http://d.hatena.ne.jp/keyword/MeCab">MeCab</a> 以外でもフリーで入手可能なものには、<a href="http://d.hatena.ne.jp/keyword/ChaSen">ChaSen</a>、Juman、<a href="http://d.hatena.ne.jp/keyword/KAKASI">KAKASI</a> などがある。有償のものだと Basis Technology の Rosette <a href="http://d.hatena.ne.jp/keyword/%B7%C1%C2%D6%C1%C7%B2%F2%C0%CF">形態素解析</a>システムなどもある。</p> <p><a href="http://ja.wikipedia.org/wiki/MeCab">MeCab - Wikipedia</a> によると、</p> <ul> <li>MeCabは<a href="http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9">オープンソース</a>の<a href="http://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90">形態素解析</a>エンジンで、<a href="http://ja.wikipedia.org/wiki/%E5%A5%88%E8%89%AF%E5%85%88%E7%AB%AF%E7%A7%91%E5%AD%A6%E6%8A%80%E8%A1%93%E5%A4%A7%E5%AD%A6%E9%99%A2%E5%A4%A7%E5%AD%A6">奈良先端科学技術大学院大学</a>出身、現<a href="http://ja.wikipedia.org/wiki/Google">Google</a>ソフトウェアエンジニアで<a href="http://ja.wikipedia.org/wiki/Google_%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%85%A5%E5%8A%9B">Google 日本語入力</a>開発者の一人である工藤拓氏によって開発されている。名称は開発者の好物「<a href="http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%AB%E3%83%96">和布蕪</a>（めかぶ）」から取られた。  <li>開発開始当初は<a href="http://ja.wikipedia.org/wiki/ChaSen">ChaSen</a>を基にし、ChaSenTNGという名前で開発されていたが、現在はChaSenとは独立にスクラッチから開発されている。ChaSenに比べて解析精度は同程度で、解析速度は平均3-4倍速い。  <li>品詞情報を利用した解析・推定を行うことができる。MeCabで利用できる辞書はいくつかあるが、ChaSenと同様に<a href="http://ja.wikipedia.org/w/index.php?title=IPA%E5%93%81%E8%A9%9E%E4%BD%93%E7%B3%BB&amp;action=edit&amp;redlink=1">IPA品詞体系</a>で構築されたIPADICが一般的に用いられている。  <li>MeCabはGoogleが公開した大規模日本語n-gramデータの作成にも使用された。  <li><a href="http://ja.wikipedia.org/wiki/Mac_OS_X_v10.5">Mac OS X v10.5</a>及び<a href="http://ja.wikipedia.org/wiki/Mac_OS_X_v10.6">v10.6</a>の<a href="http://ja.wikipedia.org/wiki/Spotlight">Spotlight</a>や<a href="http://ja.wikipedia.org/wiki/IPhone_OS">iPhone OS</a> 2.1以降の日本語入力にも利用されている。</li></ul> <p>との事です。</p><p>■事前準備</p> <p>Ubuntu で、ビルドに必要なパッケージをインストールする。</p><pre>$ sudo aptitude install build-essential libc6-dev g++</pre>
<p><strong>MeCabのダウンロード</strong></p>
<p>MeCab 本体</p><pre>$ wget https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE</pre>
<p>MeCab 用の辞書 (IPA 辞書)</p><pre>$ wget https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE</pre>
<p><strong>インストール</strong></p>
<p>本体のインストール</p><pre>$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure 
$ make
$ make check
$ sudo make install
</pre>
<p>辞書のインストール</p><pre>$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ sudo make install
</pre><pre>libmecab.so.2: cannot open shared object file</pre>のエラーが出る場合は、sudo ldconfig してリトライする。 
<p><strong>テスト</strong></p>
<p>コマンドラインで、</p><pre>$ mecab すもももももももものうち<br>
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
</pre>となれば、日本語形態素解析は一応出来たことになる。 
<p><b>■PHPで使う</b></p>
<p>pecl.opendogs.org をチャンネルに追加する。</p><pre>pear channel-discover pecl.opendogs.org
pear remote-list -c opendogs
sudo pear install opendogs/mecab-beta
</pre>インストール途中で、mecab-config をしているする場面があるかも。その場合は、こんな感じで指定する。 <pre>specify pathname to mecab-config [no] : /usr/local/bin/mecab-config
</pre>
<p>Ubuntuの場合、/etc/php5/conf.d/ に mecab.ini を作成し、以下の通りに設定する。</p>
<pre>extension=mecab.so</pre>

<p>で、Apacheをリスタートさせて、phpinfo(); 等をすると、こんな感じで読み込まれたことが確認出来る。</p>
<p><a title="mecab" href="http://www.flickr.com/photos/15258827@N03/11446631514/"><img border="0" alt="mecab" src="http://farm3.static.flickr.com/2815/11446631514_48cb9cf99d.jpg"></a></p>
<p>実際に、PHPで動かす場合は、 mecab_split !</p>