■インストール
以下のコマンドでインストールできる。
wget https://mecab.googlecode.com/files/mecab-0.994.tar.gz tar xvzf mecab-0.994.tar.gz cd mecab-0.994 ./configure make make install
辞書
utf-8で使用したいので以下のconfigureオプションを使用する。
wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz cd mecab-ipadic-2.7.0-20070801 ./configure --with-charset=utf8 make make install
libiconvが必要になる。
macにインストールする
以下のコマンドでmacにインストールできる。
brew install mecab brew install mecab-ipadic
■実行
以下のようにして使用する。
mecab にわにはにわにわとりがいる に 助詞,格助詞,一般,*,*,*,に,ニ,ニ わに 名詞,一般,*,*,*,*,わに,ワニ,ワニ はにわ 名詞,一般,*,*,*,*,はにわ,ハニワ,ハニワ にわとり 名詞,一般,*,*,*,*,にわとり,ニワトリ,ニワトリ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ いる 動詞,自立,*,*,一段,基本形,いる,イル,イル EOS
ちょっと意地悪すぎたので入力を漢字にする。
庭には二羽鶏がいる 庭 名詞,一般,*,*,*,*,庭,ニワ,ニワ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 二 名詞,数,*,*,*,*,二,ニ,ニ 羽 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ 鶏 名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ いる 動詞,自立,*,*,一段,基本形,いる,イル,イル EOS
正しく分類できた。
■Pythonで実行
久しぶりのPythonで遊ぶ。
python-devel
セットアップスクリプトを実行するのに必要になる。
yum insatll python-devel
mecab-python
以下のコマンドでインストールできる。
wget https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz tar xvzf mecab-python-0.98.tar.gz cd mecab-python-0.98 python setup.py build python setup.py install
テストスクリプトの文字コードを指定する。
vi test.py
2行目に以下のコードを加える。
# -*- coding: utf-8 -*-
以下のコマンドで実行する。
python test.py
■PHPで実行
php_mecabのインストール
su pear channel-discover pecl.opendogs.org pear install opendogs/mecab-beta vim /private/etc/php.ini
Mountain LionにしたらPEARごと消滅してた
brew install autoconf
mecab.soが無いと言われて何もできなくなるので、php.iniを開いて一旦コメントアウトする。
su vim /private/etc/php.ini
再度インストールする。
php /usr/lib/php/install-pear-nozlib.phar #PEARのインストール pear channel-discover pecl.opendogs.org pear install opendogs/mecab-beta #php-mecabのインストール vim /private/etc/php.ini
ちなみに以下のようにパスを指定しないと
specify pathname to mecab-config [no] : /usr/local/bin
以下のようなエラーが出る。
checking for mecab-config... configure: error: not found ERROR: `/var/tmp/mecab/configure --with-mecab=/usr' failed
以下の一行をextensionに付加する。
extension=mecab.so
実行
$mecab = new MeCab_Tagger(); for($node = $mecab->parseToNode($tag); $node; $node = $node->getNext()){ var_dump($node->getSurface()); var_dump($node->getFeature()); }