1. Qiita
  2. 投稿
  3. Python

igo-pythonでmecab-ipadic-neologdをつかう

  • 13
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

MeCabはインストール済みだと仮定します。

手順

  1. igo-pythonをインストールするpip install igo-python 
  2. igo-0.4.5.jarをダウンロードする
  3. mecab-ipadic-neologdをダウンロードする(git clone)
  4. mecab-ipadic-neologdに移動して./bin/install-mecab-ipadic-neologdを実行。するとbuildディレクトリができる。
  5. mecab-ipadic-neologd/build/mecab-ipadic-2.7.0-20070801-neologd-20150401igo-0.4.5.jarをコピーして次のコマンドを実行 java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic neologd . "utf-8"

以上で終わりです。
うまく行ったかどうか試してみます。

Python 2.7.8 (default, Mar 31 2015, 12:51:47)
Type "copyright", "credits" or "license" for more information.

IPython 3.0.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import igo

In [2]: t  = igo.tagger.Tagger('neologd')  # 先ほどjava ~ で作成したディレクトリへのパス

In [3]: for i in t.parse(u'アップルは Apple Watchを4月24日に国内発売します。'):
   ...:     print i.surface
   ...:
アップル
は
Apple Watch
を
4月24日
に
国内
発売
し
ます
。

Apple Watchは通常のMeCabではまとめて取得できませんが、mecab-ipadic-neologdのお陰で取得できていますね。今回はneologdを作成したディレクトリで実行したので問題ありませんでしたが、コメントにも書いたように実際に利用するときは作成したneologディレクトリにパスを通す必要があります。

これでMeCabをインストールしなくても柔軟に形態素解析できるので便利です。

注意点

igo用辞書コンパイルのコマンドの解説

igo-0.4.5.jarがあるディレクトリで、
java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic 辞書保存ディレクトリのパス mecab-ipadic-neologd内のbuidディレクトリへのパス 文字コード

igo用の辞書コンパイル時のエラー

Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceというようなエラーが出た場合、オプションに-Xmx1024mを追加してやってください。詳細は把握していませんが、ヒープが足りないらしいのでサイズ指定して足りるようにしている見たいです。

java -Xmx1024m -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic neologd . "utf-8"

こちらを参考にさせていただいたのですが、僕は1024では同様のエラーが出たのでなんとなく倍の2048にするとエラーが無くなりました。

参考

下記の記事を参考にさせていただきました。ありがとうございます。
* メモ
* BackedMemo