Python
CentOS
mecab

CentOSにmecab-pythonをインストールする

More than 3 years have passed since last update.


検証環境

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

参考ページ:Mecab Pythonを使ったTF・IDFによるWikipediaの重要単語抽出