LoginSignup
52
53

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-01-05

■MeCabについて
MeCab は、オープンソースの形態素解析エンジンです。

MeCab 以外でもフリーで入手可能なものには、ChaSen、Juman、KAKASI などがある。有償のものだと Basis Technology の Rosette 形態素解析システムなどもある。

MeCab - Wikipedia によると、

  • MeCabはオープンソース形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓氏によって開発されている。名称は開発者の好物「和布蕪(めかぶ)」から取られた。
  • 開発開始当初はChaSenを基にし、ChaSenTNGという名前で開発されていたが、現在はChaSenとは独立にスクラッチから開発されている。ChaSenに比べて解析精度は同程度で、解析速度は平均3-4倍速い。
  • 品詞情報を利用した解析・推定を行うことができる。MeCabで利用できる辞書はいくつかあるが、ChaSenと同様にIPA品詞体系で構築されたIPADICが一般的に用いられている。
  • MeCabはGoogleが公開した大規模日本語n-gramデータの作成にも使用された。
  • Mac OS X v10.5及びv10.6SpotlightiPhone OS 2.1以降の日本語入力にも利用されている。

との事です。

■事前準備

Ubuntu で、ビルドに必要なパッケージをインストールする。

$ sudo aptitude install build-essential libc6-dev g++

MeCabのダウンロード

MeCab 本体

$ wget https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE

MeCab 用の辞書 (IPA 辞書)

$ wget https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE

インストール

本体のインストール

$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure 
$ make
$ make check
$ sudo make install

辞書のインストール

$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ sudo make install
libmecab.so.2: cannot open shared object file
のエラーが出る場合は、sudo ldconfig してリトライする。

テスト

コマンドラインで、

$ mecab すもももももももものうち
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
となれば、日本語形態素解析は一応出来たことになる。

■PHPで使う

pecl.opendogs.org をチャンネルに追加する。

pear channel-discover pecl.opendogs.org
pear remote-list -c opendogs
sudo pear install opendogs/mecab-beta
インストール途中で、mecab-config をしているする場面があるかも。その場合は、こんな感じで指定する。
specify pathname to mecab-config [no] : /usr/local/bin/mecab-config

Ubuntuの場合、/etc/php5/conf.d/ に mecab.ini を作成し、以下の通りに設定する。

extension=mecab.so

で、Apacheをリスタートさせて、phpinfo(); 等をすると、こんな感じで読み込まれたことが確認出来る。

mecab

実際に、PHPで動かす場合は、 mecab_split !

52
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
53