LoginSignup
45
47

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-07-02

検証環境

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の重要単語抽出

45
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
47