CentOS Python アプリ

Python3でMeCabを使用するための設定手順

2017年11月30日

Linux上のPythonでMeCabを使用するための設定手順を紹介します。

最終的には、Pythonを使用して「マルコフ連鎖」を使用して自動文章作成ツールを作成したいと思います。

Pythonのインストール手順は以下になります。

LinuxにPython3系をインストールする手順

こんにちは!シミダイ(@shimidai2100)です。 LinuxにPythonをインストールする手順を紹介します。 ...

MeCabをLinuxにインストール手順は以下になります。

LinuxにMeCabをインストールする手順

LinuxにMeCabをインストールする手順を紹介します。 最終的には、Pythonを使用して「マルコフ連鎖」を使用して ...


MeCabとは?なぜPythonで使用する?

MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓(さん)によって開発されている。名称は開発者の好物「和布蕪(めかぶ)」から取られた。
開発開始当初はChaSenを基にし、ChaSenTNGという名前で開発されていたが、現在はChaSenとは独立にスクラッチから開発されている。ChaSenに比べて解析精度は同程度で、解析速度は平均3-4倍速い。

Wikipediaより

すごいざっくり説明すると「文章を意味単位で単語にぶつ切りにする」ライブラリです。

なぜPythonでMeCabを利用する理由は

  • Python特有の統計ライブラリと組み合わせることが出来る
  • 将来的には機械学習に利用できる

です。これは一個人の意見です。

インストール環境

今回のインストール環境は以下になります。

  • CentOS:CentOS Linux release 7.4.1708 (Core)
  • Python:Python 3.6.3
  • MeCab:MeCab 0.996
  • IPA 辞書:ipadic-2.7.0-20070801

MeCabには辞書が必要になります。

例えば、「私は朝にご飯を食べます。」という言葉は、

「私」、「は」、「朝」、「に」、「ご飯」、「を」、「食べる」、「ます」という単語に分けることが出来ます。

文章を分割するために、どこで分割するか?それが動詞か?名詞か?などを識別するために必要になります。

設定手順

インストールの流れは以下になります。

  1. Pythonバインディングのインストール
  2. 共有ライブラリの依存関係を更新

今回の手順は以下の手順を実施していることを前提に行っています。

LinuxにMeCabをインストールする手順

LinuxにMeCabをインストールする手順を紹介します。 最終的には、Pythonを使用して「マルコフ連鎖」を使用して ...

まずはPythonバインディングである、mecab-python3」をインストールします。

pip install mecab-python3

次に共有ライブライの依存関係を更新します。

まず、システム全体でライブラリパスを設定します。「/etc/ld.so.conf」にユーザライブライパスを指定します。

vi /etc/ld.so.conf

以下を追記する
/usr/local/lib

ファイルの更新が終了したら、「ldconfig」コマンドで依存関係を更新しましょう。

ldconfig

仮に共有ライブラリが設定されていないと以下のエラーが出ますので注意してください。

[root@centos7-local ~]# python
Python 3.6.3 (default, Nov 19 2017, 07:26:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MeCab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python/lib/python3.6/site-packages/MeCab.py", line 26, in <module>
    _MeCab = swig_import_helper()
  File "/usr/local/python/lib/python3.6/site-packages/MeCab.py", line 22, in swig_import_helper
    _mod = imp.load_module('_MeCab', fp, pathname, description)
  File "/usr/local/python/lib/python3.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/local/python/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory
>>> exot
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'exot' is not defined
>>> 

ImportError: libmecab.so.2: cannot open shared object file: No such file or directory」が出ている場合の解消方法になります。

設定確認

インストールの確認をしてみたいと思います。

インタプリタモードでPyhtonを使用して実行してみます。

$ python
import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print(m.parse ("<文字列>"))

↓が実行ログです。

[root@centos7-local python]# python
Python 3.6.3 (default, Nov 19 2017, 07:26:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import MeCab
m = MeCab.Tagger ("-Ochasen")
>>> m = MeCab.Tagger ("-Ochasen")
>>> print(m.parse ("これはPythonでMeCabを使用するためのテストです。"))
これ    コレ    これ    名詞-代名詞-一般
は      ハ      は      助詞-係助詞
Python  Python  Python  名詞-一般
で      デ      で      助詞-格助詞-一般
MeCab   MeCab   MeCab   名詞-一般
を      ヲ      を      助詞-格助詞-一般
使用    シヨウ  使用    名詞-サ変接続
する    スル    する    動詞-自立       サ変・スル      基本形
ため    タメ    ため    名詞-非自立-副詞可能
の      ノ      の      助詞-連体化
テスト  テスト  テスト  名詞-サ変接続
です    デス    です    助動詞  特殊・デス      基本形
。      。      。      記号-句点
EOS

以上でPythonでMeCabを使用するための設定順はです。お疲れ様です。

参考Python3で形態素解析エンジンMeCabを使えるようにする(2016年3月版)

 

関連記事

-CentOS, Python, アプリ

Copyright© shimidai2100 , 2020 All Rights Reserved.