MeCabで形態素解析

自然言語処理の過程で「形態素解析」が必要になります。ここでは、MacにMeCab(形態素解析エンジン)をインストールして、Python(3系)で利用する方法について紹介します。

MeCab本体をインストール

まず、MeCab本体をインストールします。

$ brew install mecab
Updating Homebrew...
^C==> Downloading https://homebrew.bintray.com/bottles/mecab-0.996.high_sierra.bottle.3.tar.gz

######################################################################## 100.0%
==> Pouring mecab-0.996.high_sierra.bottle.3.tar.gz
🍺  /usr/local/Cellar/mecab/0.996: 20 files, 4.2MB

早速、実行してみます。

$ mecab
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc

mecabの辞書がないというエラーが発生しました。

辞書のインストール

辞書をダウンロードして、展開します。

wget -O mecab-ipadic-2.7.0-20070801.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM'
tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
sudo make install

今度は、mecabを実行することができました。

$ mecab
明日、スカイツリーに行く予定です。
明日    名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
、      記号,読点,*,*,*,*,、,、,、
スカイ  名詞,一般,*,*,*,*,スカイ,スカイ,スカイ
ツリー  名詞,一般,*,*,*,*,ツリー,ツリー,ツリー
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
行く    動詞,自立,*,*,五段・カ行促音便,基本形,行く,イク,イク
予定    名詞,サ変接続,*,*,*,*,予定,ヨテイ,ヨテイ
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。      記号,句点,*,*,*,*,。,。,。
EOS

Pythonライブラリをインストール

3系の場合、mecab-python3 をインストールします。

pipenv install mecab-python3

サンプルプログラムで動作確認

下記プログラムで動作確認してみます。

import MeCab

text = "明日、スカイツリーに行く予定です。"
print(text)
print("----------------------")

m1 = MeCab.Tagger()
print(m1.parse(text))
print("----------------------")

m2 = MeCab.Tagger('-Owakati')
print(m2.parse(text))
明日、スカイツリーに行く予定です。
----------------------
明日	名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
、	記号,読点,*,*,*,*,、,、,、
スカイ	名詞,一般,*,*,*,*,スカイ,スカイ,スカイ
ツリー	名詞,一般,*,*,*,*,ツリー,ツリー,ツリー
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
行く	動詞,自立,*,*,五段・カ行促音便,基本形,行く,イク,イク
予定	名詞,サ変接続,*,*,*,*,予定,ヨテイ,ヨテイ
です	助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。	記号,句点,*,*,*,*,。,。,。
EOS

----------------------
明日 、 スカイ ツリー に 行く 予定 です 。