mecabのインストールと辞書追加
こんばんは。
今回はMacにmecabを入れ、PHPで使えるようにしたいと思います。
なお、私の場合はphpenvでPHPを管理しているので、以下はそちらに合わせた環境構成となります。
mecabインストール
まずはmecabのインストールです。
Homebrewで簡単に出来ます。ついでに辞書もインストールします。
辞書はipadicがデファクトスタンダードなようですのでこれをインストールします。
$ brew install mecab $ brew install mecab-ipadic # インストールが終わったらテストです $ mecab すもももももももものうち
テストしてみて結果が出ればOKです。
Homebrewでインストールした辞書は、必要最低限の構成しかないみたい(CSVとかがない)なので、ソースファイルをDLしてきて全てのファイルを移動しておきます。
$ wget http://code.google.com/p/mecab/downloads/detail?name=mecab-ipadic-2.7.0-20070801.tar.gz $ cp ~/Downloads/mecab-ipadic-2.7.0-20070801/* /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic/
以上で必要最低限のことは終わりました。
辞書の追加
先ほどインストールしたipadicですが、今はその後継となる辞書があるようなのでそれをインストールして読み込ませます。
mecabはシステム辞書とユーザ辞書がありますが、今回はシステム辞書に追加します。
まずはこちらから最新版をDLし、解凍します(もしくはwgetで)。
その後、カレントディレクトリを解答したディレクトリにし、以下を実行。
# utf8オプションを付ける $ ./configure --with-charset=utf8 $ make $ make install
これで /usr/local/Cellar/mecab/0.996/lib/mecab/dic
に naist-jdic がインストールされます。
以下のコマンドで確認出来ます。
$ mecab -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/naist-jdic/
naist-jdicを標準の辞書にする場合は、以下のファイルを編集します。
/usr/local/etc/mecabrc
; コメントアウト ;dicdir = /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic ; 以下の行を追加 dicdir = /usr/local/Cellar/mecab/0.996/lib/mecab/dic/naist-jdic
これで辞書の追加は終わりです。
php-mecabのインストール
最後に、mecabをPHPで使えるようにしたいと思います。
php-mecabというスクリプトがあるので、これを使いたいと思います。
まず、こちらから最新版をDLし解凍。
その後カレントディレクトリを移動し、以下のコマンドを実行
$ phpize $ ./configure --with-php-config=/Users/{username}/.phpenv/versions/5.6.4/bin php-config --with-mecab=/usr/local/bin/mecab-config $ make $ make test $ make install
これで以下のようなメッセージが表示されればOKです。
Installing shared extensions: /Users/{username}/.phpenv/versions/5.6.4/lib/php/extensions/
上記のディレクトリにmecab.soがあると思います。
このモジュールをPHPに読み込ませます。
# ~/.phpenv/versions/5.6.4/etc/conf.dに mecab.ini を作成します(もしくはコピーしてリネームで)。 $ vim mecab.ini # 以下を記述 ; Enable dbase extension module extension=mecab.so # apache 再起動 $ sudo apachectl restart # 以下のコマンドで確認。mecabが読み込まれていればOK $ php -i |grep -i "mecab" $ php -m | grep mecab
一応phpinfoでも確認してみると良いと思います。
これでPHPで使えるようになったのでテストしてみましょう。
<?php $result = mecab_split("テスト用文字列です"); print_r($result); ?>
あるいは以下のコードでも確認できるみたいです。
<?php $mecab = new MeCab_Tagger(); $nodes = $mecab->parseToNode("テスト用文字列です"); foreach($nodes as $node){ echo $node->getId()."<br />"; echo $node->getSurface()."<br />"; echo $node->getStat()."<br />"; echo $node->getLength()."<br />"; echo $node->getFeature()."<br />"; } ?>
以上です。
まぁ簡単でしたね!(モジュールがPHPに読み込まれなくて詰まりましたが・・・)
それでは。
参考にさせていただいたサイト
Ruby - Macにmecabインストール - Qiita
恵比寿のベンチャーで働くエンジニアのメモ帳|【mecab】mecabにnaist-jdic辞書を入れて単語を追加してみる
ローカルでCakePHPを動かしてmecab_splitを使ってみる(mac)|SystemTelescope
さくらVPSにMeCabをインストールしてPHPから利用(CentOS6.4+PHP5.3.3/5.4.2) - 青春B■雑記blog‐青酸カリ カラメルシロップ味‐