mecab
python3
文系
neologd

ド文系がMecabをMacに入れてみた

こんにちは、文系です。
卒論のために形態素解析を試してみたかったのでMecabとやらを入れてみました。
自分が使っているのはMacで、Pythonを使ってみたかったのでバインディングもしました。

今日は、

  • Mecabのインストール
  • NEologdのインストール
  • デフォルト辞書の変更
  • Pythonへのバインディング

について書いていきます。
導入記事はいろいろあるけど、私は初歩的なところも理解がなくつまづいたので、かなり優しく記録を残しておこうと思った次第です。

前提

Python3とHomebrewはインストール済み

Mecabのインストール

$ brew install mecab #このあといろいろ始まる
$ mecab -v #インストールできているか、バージョン確認する
mecab of 0.996

$ brew install mecab-ipadic #基本となる辞書をインストールする
$ ls /usr/local/lib/mecab/dic #辞書が入ったか確認する
ipadic

NEologdのインストール

NEologdって、新語や固有名詞を幅広くカバーしている辞書らしい。
例えば、先程入れたipadicのままだと

$ mecab
よつばとは最高
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
つば  名詞,一般,*,*,*,*,つば,ツバ,ツバ
と 助詞,格助詞,一般,*,*,*,と,ト,ト
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
最高  名詞,一般,*,*,*,*,最高,サイコウ,サイコー
EOS

となるところ、NEologdを使うと

$ mecab
よつばとは最高
よつばと    名詞,固有名詞,一般,*,*,*,よつばと,ヨツバト,ヨツバト
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
最高  名詞,一般,*,*,*,*,最高,サイコウ,サイコー
EOS

となる。
それでは入れ方。

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git #NEologdの素材をダウンロード
$ cd mecab-ipadic-neologd #上記でダウンロードしたフォルダに移動
$ ./bin/install-mecab-ipadic-neologd -n -a -y #インストール
$ ls /usr/local/lib/mecab/dic #辞書が入ったか確認する
ipadic          mecab-ipadic-neologd

デフォルト辞書の変更

今のままではデフォルトがipadicのままなので、NEologdに変更する。

$ open /usr/local/etc/mecabrc #Mecabのデフォルトの設定ファイルを開く

テキストエディタなどで開かれたファイルの5行目あたりにある
dicdir = /usr/local/lib/mecab/dic/ipadic/

dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
とすると、デフォルトで使われる辞書がNEologdになる。

Pythonへのバインディング

$ which pip #pipどこですか
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip #ここです
$ which pip3 #pip3どこですか
/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 #ここです

Python3に繋がっているのはpip3だと分かったので、
$  pip3 install mecab-python3 
とうつと、PythonからMecabが使えるようになる。
Pythonを開いて、以下のように実行してみてバインディングが成功したか確認する。

>>>import MeCab
>>>m = MeCab.Tagger()
>>>print(m.parse("よつばとは最高"))
よつばと    名詞,固有名詞,一般,*,*,*,よつばと,ヨツバト,ヨツバト
 助詞,係助詞,*,*,*,*,,,
最高  名詞,一般,*,*,*,*,最高,サイコウ,サイコー
EOS

参考

https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md
・兄

文系ならサイトとかを活用するのもありだったが、自分で出来たほうが面白そうと思ったので挑戦してみた。これからもがんばる。