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


# 検証環境
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
```

以下、修正前ファイル

```python
#!/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"))
                        ])
```


修正後ファイル

```python
#!/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をインストール　その１](http://d.hatena.ne.jp/fuyumi3/20120113/1326383644)
### トラブルシューティング2

```
$ python test.py 
```

結果

```
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory
```


参考ページ：[Mecab Pythonを使ったTF・IDFによるWikipediaの重要単語抽出](http://d.hatena.ne.jp/yutakikuchi/20130215/1360884220)