MeCabをPythonから使う用事があったので、入れる手順をメモしておく。
mecabのバージョンは0.996。Pythonは3.5。Linuxで実行する想定。
mecabをダウンロードする
http://taku910.github.io/mecab/#download
解凍
$ tar xvf mecab-*.tar.gz
入る
$ cd mecab-*
MeCabをインストールする(気分的にHOMEの下に入れる。あとutf-8を指定しておく)
$ ./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only $ make $ make install
入れる場所を変えたので.bashrcあたりに下記を書いてパスを通しておく。
$ export PATH="$HOME/local/bin:$PATH"
IPA辞書をダウンロードする
http://taku910.github.io/mecab/#download
IPA辞書をインストールする(mecabをHOMEの下に入れたので、それに対応する場所にwith-dicdirを指定。あとnologdを使う際はutf-8必須)
$ tar xzvf mecab-ipadic-*.tar.gz $ cd mecab-ipadic-*/ $ ./configure --with-charset=utf8 --with-dicdir=$HOME/local/lib/mecab/dic/ipadic $ make $ make install
mecab-neologdを落とす。depth 1を指定した方が落とす量が減って良い。
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.gitインストールする(HOME配下にmecabや辞書を入れてる場合は-uする)
$ cd mecab-ipadic-neologd/ $ bin/install-mecab-ipadic-neologd -n -u
インストールパスを指定したい場合は下記のように記述。
$ bin/install-mecab-ipadic-neologd -n -u --prefix $HOME/local/lib/mecab/dic/mecab-ipadic-neologd
これで mecabインストールパス配下の lib/mecab/dic/mecab-ipadic-neologd に辞書が入ったので、--dicdirで辞書指定すれば利用可能。
$ echo "志村けん" | mecab 志村 名詞,固有名詞,人名,姓,*,*,志村,シムラ,シムラ けん 動詞,自立,*,*,五段・ラ行,体言接続特殊,ける,ケン,ケン EOS $ echo "志村けん" | mecab --dicdir ~/local/lib/mecab/dic/mecab-ipadic-neologd 志村けん 名詞,固有名詞,人名,一般,*,*,志村けん,シムラケン,シムラケン EOS
デフォルトの辞書をneologdに変える場合は、mecabインストールパス配下の etc/mecabrc を編集して dicdir に mecab-ipadic-neologd のパスを指定する。
今回はPython3を利用しているので、mecab-python3を入れる。
$ pip install mecab-python3
簡単な形態素解析のコードを動かしてみる。
import MeCab # parse MeCab.Tagger().parse('形態素解析した結果') #=> '形態素解析\t名詞,固有名詞,一般,*,*,*,形態素解析,ケイタイソカイセキ,ケイタイソカイセキ\nし\t動詞,自立,*,*,サ変・スル,連用形,する,シ,シ\nた\t助動詞,*,*,*,特殊・タ,基本形,た,タ,タ\n結果\t名詞,副詞可能,*,*,*,*,結果,ケッカ,ケッカ\nEOS\n' # parseToNode tagger = MeCab.Tagger('-Ochasen') tagger.parse('') node = tagger.parseToNode('形態素解析した結果') while node: print(node.surface) node = node.next
下記のようなエラーが出ることがある。
ImportError: libmecab.so.2: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
その場合は、mecabをインストールしたパス配下のlibディレクトリをLD_LIBRARY_PATHに入れる記述を実行するなり.bashrcに入れるなりする。
$ export LD_LIBRARY_PATH=$HOME/local/lib