LoginSignup
40
40

More than 5 years have passed since last update.

Pythonからmecab-ipadic-neologdを使う

Last updated at Posted at 2015-12-28

やりたいこと

環境

  • OSX 10.10.5
  • Conda 3.19.0
  • Python 2.7.11
  • MeCab 0.996

Python 2.7

Condaを使う。

$ conda create -n py27con python=2.7 anaconda
$ conda info -e
$ source ~/.pyenv/versions/miniconda3-3.16.0/envs/py27con/bin/activate py27con

mecab-ipadic

あとでmecab-ipadic-neologdを使うのでUTF-8で入れる

$ cd ~/path/to/mecab-ipadic-2.7.0-20070801/
$ make clean
$ ./configure --with-charset=utf8
$ make
$ make install

mecab-ipadic-neologd

$ cd ~/path/to/mecab-ipadic-neologd/
$ bin/install-mecab-ipadic-neologd 

mecab-python

MeCabのPythonバインディング

$ pip install https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz

動作確認

test.py
# -*- coding: utf-8 -*-
import MeCab
m = MeCab.Tagger(' -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')

text = '''
『アイドルマスター シンデレラガールズ』(THE IDOLM@STER CINDERELLA GIRLS)は、バンダイナムコエンターテインメント(旧バンダイナムコゲームス)とCygamesが開発・運営する『THE IDOLM@STER』の世界観をモチーフとする携帯端末専用のソーシャルゲーム。
'''
print(m.parse(text))

文章はWikipediaより。

$ python test.py
『 記号,括弧開,*,*,*,*,『,『,『
アイドルマスター シンデレラガールズ    名詞,固有名詞,一般,*,*,*,アイドルマスターシンデレラガールズ,アイドルマスターシンデレラガールズ,アイドルマスターシンデレラガールズ
』 記号,括弧閉,*,*,*,*,』,』,』
( 記号,括弧開,*,*,*,*,(,(,(
THE IDOLM@STER CINDERELLA GIRLS 名詞,固有名詞,一般,*,*,*,THE IDOLM@STER CINDERELLA GIRLS,アイドルマスターシンデレラガールズ,アイドルマスターシンデレラガールズ
) 記号,括弧閉,*,*,*,*,),),)
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
、 記号,読点,*,*,*,*,、,、,、
バンダイナムコエンターテインメント 名詞,固有名詞,一般,*,*,*,バンダイナムコエンターテインメント,バンダイナムコエンターテインメント,バンダイナムコエンターテインメント
( 記号,括弧開,*,*,*,*,(,(,(
旧 接頭詞,名詞接続,*,*,*,*,旧,キュウ,キュー
バンダイナムコゲームス   名詞,固有名詞,一般,*,*,*,BANDAI NAMCO Games,バンダイナムコゲームス,バンダイナムコゲームス
) 記号,括弧閉,*,*,*,*,),),)
と 助詞,並立助詞,*,*,*,*,と,ト,ト
Cygames 名詞,固有名詞,一般,*,*,*,Cygames,サイゲームス,サイゲームス
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
開発  名詞,サ変接続,*,*,*,*,開発,カイハツ,カイハツ
・ 記号,一般,*,*,*,*,・,・,・
運営  名詞,サ変接続,*,*,*,*,運営,ウンエイ,ウンエイ
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
『 記号,括弧開,*,*,*,*,『,『,『
THE IDOLM@STER  名詞,固有名詞,一般,*,*,*,THE IDOLM@STER,アイドルマスター,アイドルマスター
』 記号,括弧閉,*,*,*,*,』,』,』
の 助詞,連体化,*,*,*,*,の,ノ,ノ
世界観   名詞,固有名詞,一般,*,*,*,世界観,セカイカン,セカイカン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
モチーフ    名詞,一般,*,*,*,*,モチーフ,モチーフ,モチーフ
と 助詞,格助詞,一般,*,*,*,と,ト,ト
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
携帯端末    名詞,固有名詞,一般,*,*,*,携帯端末,ケイタイタンマツ,ケイタイタンマツ
専用  名詞,サ変接続,*,*,*,*,専用,センヨウ,センヨー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
ソーシャルゲーム    名詞,固有名詞,一般,*,*,*,ソーシャルゲーム,ソーシャルゲーム,ソーシャルゲーム
。 記号,句点,*,*,*,*,。,。,。
EOS

ちなみに、-d /usr/local/lib/mecab/dic/mecab-ipadic-neologdを抜かして違いを見ると、新語辞書がいい感じに仕事してくれているのがよくわかる(主に固有名詞)。

保留したところ

頻発問題のリスト:

  • 出力が化ける
    • ちゃんとUTF-8の辞書を使えばいいだけかも
  • Conda PythonとSystem Pythonの何らかの差異・コンフリクト
    • 例:pythonをsource activateする際にシェルが落ちる
      • これは、activateのパスをちゃんと指定すればよい
  • 入手したPythonバインディングのセットアップスクリプトやサンプルスクリプトをPython 3.5に対応させる作業
  • バインディング自体をSWIGで3.5対応させる作業
  • それでもなおUnicode関連のエラーが出る

できれば3.5でやりたかったけどいろいろハマって脱出できなかったのでとりあえず2.7でやった。

40
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
40