python-mecabで文字列をパースしてみる
環境はPython2.7, mecab0.98
def extract_keyword(string, word_class=['名詞']): tagger = MeCab.Tagger('mecabrc') nodes = tagger.parse(u'テスト文字列です')
のように文字列をパースしようとすると、下記のエラーが出た。
Traceback (most recent call last): File "hoge.py", line 35, in <module> extract_keyword(text) File "hoge.py", line 16, in extract_keyword nodes = tagger.parse(u'テスト文字列です #JAISTFES') File "/usr/lib/python2.7/dist-packages/MeCab.py", line 220, in parse def parse(self, *args): return _MeCab.Tagger_parse(self, *args) TypeError: in method 'Tagger_parse', argument 2 of type 'char const *'
ちなみに、tagger.parseでもtaggaer.parseToNodeでも同様。
ユニコード文字を渡すとこのエラーが出るらしい。
バイト文字列だとうまくパースできた^^