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

  • 98
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

形態素解析エンジンの「MeCab」をMac上のpyenvで入れたPython3から使えるようにします。

基本的に、既にあるまとめ記事の内容そのままですが、GitHubの公式リポジトリにパッチが当たって、元記事では手動でパッチを当てていた作業が、Pythonのバインディングコードを1行修正するだけで良い状態になっていました。2016/3/2 改訂)全て不要になりました。

元記事の情報を総合しただけですが、何度かインストールをリトライしたので、手順を残しておきます。

公式サイト http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html
リポジトリ https://github.com/taku910/mecab

元記事
- MeCabをPython3上から使えるようにする
- Python3でMeCab
- MeCabをPython3から使う(続報)(パッチをプルリクされた方の記事)

インストール

MeCab (和布蕪)インストール

git clone https://github.com/taku910/mecab.git
cd mecab/mecab
./configure  --enable-utf8-only
make
make check
sudo make install

インストールが終わるとmecabが配置されます。

/usr/local/etc/mecabrc
/usr/local/bin/mecab
/usr/local/bin/mecab-config

コンソールからmecabを起動し、続けて日本語を入れると形態解析結果が表示されるようになります。
2016/3/2追記 初版ではここでmecabコマンドを使っている説明を書いていましたが、辞書をインストールしてからでないと使えませんでした。

辞書のインストール

公式サイトから「IPA 辞書」をダウンロードします。
http://taku910.github.io/mecab/#install
http://taku910.github.io/mecab/#download

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

_2016/3/2追記その2 ここも飛ばしてください。
ダウンロードしなくてもgitプロジェクトに含まれていました。 
cd ../mecab-ipadic
./configure --with-charset=utf8
make
sudo make install

_2016/3/2追記その2 こっちが最新

この時点でコンソールからmecabを起動し、続けて日本語を入れると形態解析結果が表示されるようになります。

$ mecab
MeCab はフリーソフトウェアです
MeCab   名詞,固有名詞,組織,*,*,*,*
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
フリー   名詞,一般,*,*,*,*,フリー,フリー,フリー
ソフトウェア  名詞,一般,*,*,*,*,ソフトウェア,ソフトウェア,ソフトウェア
です  助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS

Python3バインディングのインストール

2016/3/2追記 初版より簡単な方法がありました。しばらく読み飛ばして下さい。

続けて、MeCabをPythonから使用する準備をします。先ほどgit cloneしたディレクトリに各種言語のバインディングが準備されているのでpythonディレクトリまで移動します。

cd [MeCabのgitクローンしたディレクトリ]
cd mecab/mecab/python

#2016/3/2追記 ここは、飛ばしてください

ここで、setup.pyのコードを1行修正が必要です。returnの前のタブを消さないように気をつけて下さい。

本記事「Python3でMeCab

vi setup.py

def cmd2(str):
    return string.split (cmd1(str))

を以下に変更

def cmd2(str):
    return cmd1(str).split()

#2016/3/2追記 ここも、飛ばしてください

修正が終わったら、インストールします。

python setup.py build
sudo python setup.py install

#2016/3/2追記 ここも、飛ばしてください

2016/3/2追記
もっと簡単な手順がありました。下記記事で書かれている通り、pipコマンドでPython3から使えるようになります。

pip install mecab-python3

使ってみる

公式サイトのPythonサンプルを実行してみます。オリジナルは、Python2用のコードなので、printだけ変えてます。

import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print(m.parse ("今日もしないとね"))

実行結果

今日  キョウ   今日  名詞-副詞可能     
も モ も 助詞-係助詞        
し シ する  動詞-自立   サ変・スル 未然形
ない  ナイ  ない  助動詞   特殊・ナイ 基本形
と ト と 助詞-接続助詞     
ね ネ ね 助詞-終助詞        
EOS

手順がどこか間違ってたら教えて下さい。