Nekkoneko Blog

ITに関することや自分の趣味について書きます.

MeCabをPythonで使ってみる

MeCabって?

形態素解析をするためのツールです

じゃあその形態素解析ってなに?

コマンドラインで実行した結果です.

$ mecab
君の名は  ← 入力
君      名詞,代名詞,一般,*,*,*,君,キミ,キミ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
名      名詞,一般,*,*,*,*,名,ナ,ナ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
EOS

こんな感じで,文書を単語ごとに分割することです.

そういえば,君の名はがテレ朝で1月3日に公開されますね!(今は関係ない)

やり方

  • まずはMeCabとその関連パッケージをインストールします
$ sudo apt-get install mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8
  • MeCabがインストールできたか確認
$ mecab
(入力待になります)

これで,コマンドライン上での実行は完了です.

PythonMeCabを実行

次はPythonMeCabを実行しましょう!

  • 環境に合わせて選択してください ↓

Python 2の場合

$ pip install mecab-python

Python 3の場合

$ pip3 install mecab-python3
  • 確認

以下のソースコードをコピペして実行してみてください.

import sys
import MeCab
m = MeCab.Tagger()
text = m.parse("君の名前は")
print(text)

これができれば,PythonMeCabを使うことができるようになります!

ですが,インストールした時の辞書は固有名詞などの形態素解析に弱いです.

というわけで! 辞書を変えていきましょう

辞書を変更する

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a

これで辞書の取得は完了です.

確認のため,以下のコードを実行してみてください.

import sys
import MeCab
# Taggerの引数に-dオプションとmecab-ipadic-neologdの場所を指定する
m = MeCab.Tagger("-d ../mecab-ipadic-neologd")
text = m.parse("君の名は")
print(text)
  • MeCab.Taggerの引数には,先ほどインストールした mecab-ipadic-neologdの場所を指定します.

  • 忘れた・わからないという方はこちらのコマンドで確認できます.

$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"

以上です!