Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

概要

形態素解析エンジンの「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

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

grachro
某ネットショップでJava全般担当のプログラマ
oisix
こだわりの有機野菜や無添加の自然食品など「体に良くて美味しい食品」を販売するECサイト「Oisix(おいしっくす)」を開発・運営しています。
https://www.oisixradaichi.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした