理想未来ってなんやねん

娘可愛い。お父さん頑張る。

LeopardでMeCabを使う

Rubyで使う。

MacPortsにportが準備されているので、それを使うのが早いです。

$ sudo port install mecab +utf8
$ sudo port install rb-mecab

テストスクリプトを用意

$ vi mecab-test.rb
#!/opt/local/bin/ruby

require 'MeCab'
m = MeCab::Tagger.new("-Ochasen")
print m.parse("私の名前は謎のクマです。")

実行してみます。

$ chmod +x ./mecab-test.rb
$ ./mecab-test.rb 
私	ワタクシ	私	名詞-代名詞-一般		
の	ノ	の	助詞-連体化		
名前	ナマエ	名前	名詞-一般		
は	ハ	は	助詞-係助詞		
謎	ナゾ	謎	名詞-一般		
の	ノ	の	助詞-連体化		
クマ	クマ	クマ	名詞-一般		
です	デス	です	助動詞	特殊・デス	基本形
。	。	。	記号-句点		
EOS

PHPで使う。

MeCabMacPortsで、
PHP extensionはid:rskyさんが公開しているPHP MeCab extensionを使います。

$ sudo port install mecab +utf8
$ wget http://www.opendogs.org/pub/php_mecab-0.3.0.tgz
$ tar xzf php_mecab-0.3.0.tgz
$ cd php_mecab-0.3.0/
$ phpize
$ ./configure --with-php-config=`which php-config` --with-mecab=`which mecab-config`
$ make
$ sudo make install

/opt/local/etc/php.iniに、extensionを追記

extension_dir=/opt/local/lib/php/extensions/no-debug-non-zts-20060613/
extension=mecab.so

テストスクリプトを用意

$ vi test-mecab.php
<?php
$mecab = mecab_new();
$str = '私の名前は謎のクマです。';
echo mecab_sparse_tostr($mecab, $str);
mecab_destroy($mecab);

実行してみます。

$ php mecab-test.php
私	名詞,代名詞,一般,*,*,*,私,ワタクシ,ワタクシ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
名前	名詞,一般,*,*,*,*,名前,ナマエ,ナマエ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
謎	名詞,一般,*,*,*,*,謎,ナゾ,ナゾ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
クマ	名詞,一般,*,*,*,*,クマ,クマ,クマ
です	助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。	記号,句点,*,*,*,*,。,。,。
EOS

今日のところはこんな感じで。
もう遅いので寝ます。

追記

第2回PHP拡張勉強会でzend_extension_entry構造体とコールバックについて説明していただいたid:rskyさんがあらためて凄い人だと実感しました。
疎くてすみません。