LoginSignup
10
11

More than 5 years have passed since last update.

はじめての人工知能。自然言語処理をやってみたくなったので、python3 で MeCab を使って形態素解析をやってみる。

Last updated at Posted at 2016-09-03

経緯

python3 でMeCab をインストールする色々な記事を参考にしてきました。
短気な性格なので、ページの頭から順番にコピペしてうまく動作するページが大好きです。「めんどくさい」が口癖で、「無いなら作る」がモットーでございます。(後半どうでもいい戯言だな。)

環境設定

CentOS7

MeCab をインストール

MeCabをクローンするのが速かった。

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

下記のページからMeCabをダウンロードしてきてもいいのですが、結構面倒くさいですよ。色々なMeCabがありましたけど。

参考:MeCab
https://drive.google.com/drive/folders/0B4y35FiV1wh7fjQ5SkJETEJEYzlqcUY4WUlpZmR4dDlJMWI5ZUlXN2xZN2s2b0pqT3hMbTQ

辞書のインストール

辞書がないと使い物になりませんので、こちらもサクッとインストールします。

# cd mecab-ipadic
# ./configure --with-charset=utf8
# make
# make install

MeCabをコンソールで試してみる

インストールが終わったら、コンソールで動かせますのでやってみます。

# mecab
 MeCab はフリーソフトウェアです

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

動きました。日本語も問題なく表示されていてホッとする瞬間です。

python3.5系でMeCabを動かしてみる

ようやくここで、pip の出番です。

# pip install mecab-python3

他のサイトだと、いきなりこのコマンドを載せているページもあります。
でも、MeCabもインストールせずにこのコマンドが動くはずがありません。
pip万能説を信じていて、このコードを見て「こっちの方が楽じゃん!」とpipホイホイに捕まった私が、その後悩んだのは言うまでもありません。

問題なくインストールできます。

それでは、python ファイル test.py を書いてみます。

#test.py

# coding: UTF-8
import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print(m.parse ("めんどくさいから自分で作る"))

実行してみます。

# python test.py
めんどくさい    メンドクサイ    めんどくさい    形容詞-自立     形容詞・アウオ段        基本形
から    カラ    から    助詞-接続助詞
自分    ジブン  自分    名詞-一般
で      デ      で      助詞-格助詞-一般
作る    ツクル  作る    動詞-自立       五段・ラ行      基本形
EOS

MeCab.Taggerの引数を変えるとデータの出力形式を変えることができます。

-Ochasen
-Owakati
-Oyomi
mecabrc

といったものが他にもあります。

#test2.py

# coding: UTF-8
import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print(m.parse ("めんどくさいから自分で作る"))

m = MeCab.Tagger ("-Owakati")
print(m.parse ("めんどくさいから自分で作る"))

m = MeCab.Tagger ("-Oyomi")
print(m.parse ("めんどくさいから自分で作る"))

m = MeCab.Tagger ("mecabrc")
print(m.parse ("めんどくさいから自分で作る"))

興味があるので、ためしに表示させてみます。

# python test2.py
めんどくさい    メンドクサイ    めんどくさい    形容詞-自立     形容詞・アウオ段        基本形
から    カラ    から    助詞-接続助詞
自分    ジブン  自分    名詞-一般
で      デ      で      助詞-格助詞-一般
作る    ツクル  作る    動詞-自立       五段・ラ行      基本形
EOS

めんどくさい から 自分 で 作る

メンドクサイカラジブンデツクル

めんどくさい    形容詞,自立,*,*,形容詞・アウオ段,基本形,めんどくさい,メンドクサイ,メンドクサイ
から    助詞,接続助詞,*,*,*,*,から,カラ,カラ
自分    名詞,一般,*,*,*,*,自分,ジブン,ジブン
で      助詞,格助詞,一般,*,*,*,で,デ,デ
作る    動詞,自立,*,*,五段・ラ行,基本形,作る,ツクル,ツクル
EOS

備忘録 自力でインストールしてた時に出てきたエラー

libmecab.so.2がないよ、と言われた場合の対処法。

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

対処法

$ vi /etc/ld.so.conf.d/lib.conf
/usr/local/lib  #<-- 新規記入、もしくは追記する。

$ ldconfig #<-- 再度読み込ませる

参考:Mecab Pythonを使ったTF・IDFによるWikipediaの重要単語抽出
http://yut.hatenablog.com/entry/20130215/1360884220

参考:Python3で形態素解析エンジンMeCabを使えるようにする(2016年3月版)
http://qiita.com/grachro/items/4fbc9bf8174c5abb7bdd#_reference-f17313e8bc66cbbff3ef

10
11
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
10
11