検証環境
CentOS release 6.5 (Final)
Python 2.7.6
インストール
mecab 0.996
ipadic 2.7.0
meacbのインストール
$ cd /var/tmp
$ curl -O https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ sudo make install
ipadicのインストール
$ cd /var/tmp
$ curl -O https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ sudo make install
mecab-pythonのインストール
$ cd /var/tmp
$ curl -O https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz
$ tar zxfv mecab-python-0.996.tar.gz
$ cd mecab-python-0.996
トラブルシューティング1
のための以下のファイルを修正する
$ vi setup.py
修正前
mecab-config
修正後
/var/tmp/mecab-0.996/mecab-config
以下、修正前ファイル
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "mecab-python",
version = cmd1("mecab-config --version"),
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
include_dirs=cmd2("mecab-config --inc-dir"),
library_dirs=cmd2("mecab-config --libs-only-L"),
libraries=cmd2("mecab-config --libs-only-l"))
])
修正後ファイル
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "mecab-python",
version = cmd1("/var/tmp/mecab-0.996/mecab-config --version"),
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
include_dirs=cmd2("/var/tmp/mecab-0.996/mecab-config --inc-dir"),
library_dirs=cmd2("/var/tmp/mecab-0.996/mecab-config --libs-only-L"),
libraries=cmd2("/var/tmp/mecab-0.996/mecab-config --libs-only-l"))
])
python-mecabを構築
$ python setup.py build
python-mecabをインストールする
$ python setup.py install
テスト
トラブルシューティング2のための修正する
libmecab.so.2があることを確認する
$ ls /usr/local/lib/libmecab.so.2
/usr/local/lib/libmecab.so.2
ld.so.conf
に/usr/local/lib
を追記する
$ vi /etc/ld.so.conf
修正後ファイル
ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
ld.so.confの設定を反映する
$ sudo ldconfig
mecab-pythonのテストを実行する
$ cd /var/tmp/mecab-python-0.996
$ python test.py
実行結果
0.996
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS
BOS/EOS,*,*,*,*,*,*,*,*
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
BOS/EOS,*,*,*,*,*,*,*,*
EOS
EOS
filename: /usr/local/lib/mecab/dic/ipadic/sys.dic
charset: utf8
size: 392126
type: 0
lsize: 1316
rsize: 1316
version: 102
トラブルシューティング
トラブルシューティング1
$ python setup.py build
結果
$ python setup.py build
sh: mecab-config: command not found
Traceback (most recent call last):
File "setup.py", line 13, in <module>
version = cmd1("mecab-config --version"),
File "setup.py", line 7, in cmd1
return os.popen(str).readlines()[0][:-1]
IndexError: list index out of range
参考ページ: MeCab&mecab-pythonをインストール その1
トラブルシューティング2
$ python test.py
結果
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory