やりたいこと
-
形態素解析にMeCabを使う
-
新語辞書を使う
-
Pythonスクリプト内で他のモジュールと組み合わせて使う
環境
- 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バインディングのセットアップスクリプトやサンプルスクリプトをPython 3.5に対応させる作業
- バインディング自体をSWIGで3.5対応させる作業
- それでもなおUnicode関連のエラーが出る
できれば3.5でやりたかったけどいろいろハマって脱出できなかったのでとりあえず2.7でやった。