Mecab インストール方法(CentOS6編)

PukiWiki Advance インストール方法(Ubuntu12.04編) | hiro345」に関係して、CentOS6でのMecabのインストールが面倒そうだったのですが、なくてもPukiWiki Advanceは動くようなのでCentOS6編はなくてもいいような気がしてたのですが、こちらも簡単にインストールできるようなのでインストールをしてみました。Mecabがインストールできれば、PukiWiki AdvanceをインストールするのはUbuntu版と同様にできるので、そちらは省略します。

Mecabインストール
Groongaという全文検索エンジン用のリポジトリがあるので、これを使います。
Mecabのインストールはこれだけで出来ます。

$ sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
$ sudo yum install -y mecab mecab-ipadic mecab-devel

コマンドラインからmecab -vと入力してバージョンが表示されればOKです。

php_mecabインストール
次にphp_mecabをインストールします。こちらも、下記ですぐにできます。
phpおよびpearはあらかじめインストールしてあるという前提です。

$ sudo pear channel-discover pecl.opendogs.org
$ sudo pear install opendogs/mecab-0.5.0

実際にはコンパイルが動いて、下記が用意されます。

/usr/lib64/php/modules/mecab.so

/etc/php.d/mecab.ini を作成します。
CentOS6ではここにPHP拡張用の初期設定をいれておけば反映されます。

; Enable mecab extension module
extension=mecab.so

設定ができたら、httpdのgracefulリスタートで反映します。

$ sudo service httpd graceful

反映されない場合はrestartしましょう。

確認
phpinfo()を使ってMecabがPHPでつけるようになっているか確認します。/var/www/html/info.phpがhttp://localhost/info.phpで参照できるとして、下記のようなファイルを用意します。

<?php
phpinfo();

なお、確認ができたら削除しておきましょう。

Mecabを使ってみる
Mecabを使うプログラムは下記のようになります。splitで分割、parseToNodeでノードへ分割してそれぞれのノード情報を取得、といった処理をしています。

<?php
$mecab = new MeCab_Tagger();
$s = 'PHPでMecabを使って日本語形態素解析の結果を取得';
$r = $mecab->split($s);
print_r($r);
echo "\n<br />\n";
echo "\n<br />\n";
$rs = Array();
for($n = $mecab->parseToNode($s); $n; $n = $n->getNext()){
  if($n->getStat() != 2 && $n->getStat() != 3){
    $rs[] = $n->getFeature();
  }
}
foreach($rs as $e) {
  $data = explode(',', $e);
  print_r($data);
  echo "\n<br />\n";
}

結果は次のようになります。

Array ( [0] => PHP [1] => で [2] => Mecab [3] => を [4] => 使っ [5] => て [6] => 日本語 [7] => 形態素 [8] => 解析 [9] => の [10] => 結果 [11] => を [12] => 取得 )

Array ( [0] => 名詞 [1] => 一般 [2] => * [3] => * [4] => * [5] => * [6] => * )
Array ( [0] => 助詞 [1] => 格助詞 [2] => 一般 [3] => * [4] => * [5] => * [6] => で [7] => デ [8] => デ )
Array ( [0] => 名詞 [1] => 一般 [2] => * [3] => * [4] => * [5] => * [6] => * )
Array ( [0] => 助詞 [1] => 格助詞 [2] => 一般 [3] => * [4] => * [5] => * [6] => を [7] => ヲ [8] => ヲ )
Array ( [0] => 動詞 [1] => 自立 [2] => * [3] => * [4] => 五段・ワ行促音便 [5] => 連用タ接続 [6] => 使う [7] => ツカッ [8] => ツカッ )
Array ( [0] => 助詞 [1] => 接続助詞 [2] => * [3] => * [4] => * [5] => * [6] => て [7] => テ [8] => テ )
Array ( [0] => 名詞 [1] => 一般 [2] => * [3] => * [4] => * [5] => * [6] => 日本語 [7] => ニホンゴ [8] => ニホンゴ )
Array ( [0] => 名詞 [1] => 一般 [2] => * [3] => * [4] => * [5] => * [6] => 形態素 [7] => ケイタイソ [8] => ケイタイソ )
Array ( [0] => 名詞 [1] => サ変接続 [2] => * [3] => * [4] => * [5] => * [6] => 解析 [7] => カイセキ [8] => カイセキ )
Array ( [0] => 助詞 [1] => 連体化 [2] => * [3] => * [4] => * [5] => * [6] => の [7] => ノ [8] => ノ )
Array ( [0] => 名詞 [1] => 副詞可能 [2] => * [3] => * [4] => * [5] => * [6] => 結果 [7] => ケッカ [8] => ケッカ )
Array ( [0] => 助詞 [1] => 格助詞 [2] => 一般 [3] => * [4] => * [5] => * [6] => を [7] => ヲ [8] => ヲ )
Array ( [0] => 名詞 [1] => サ変接続 [2] => * [3] => * [4] => * [5] => * [6] => 取得 [7] => シュトク [8] => シュトク ) 

おもしろいですね。

同じタグの記事: CentOS6
同じタグの記事: Linux
同じタグの記事: Mecab
同じタグの記事: PHP
同じタグの記事: PukiWiki Advance
同じカテゴリの記事: Linux
関連書籍: PHP