Posted at

mecab-python3でUnicodeDecodeErrorがでる

More than 1 year has passed since last update.

Unicodeの問題から逃げたくて、Python3にしたのに、mecab-python3の調子がおかしいのかUnicodeDecodeErrorがでる

しかも、テストを走らせるとランダムに出る


事例

import MeCab

mecab = MeCab.Tagger()
node = mecab.parseToNode("すもももももももものうち")
while node:
print(node.surface)
node = node.next

とすると、

UnicodeDecodeError                        Traceback (most recent call last)

<ipython-input-11-1f88b1ec9c08> in <module>()
1 while node:
----> 2 print(node.surface)
3 node = node.next

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte

というエラーが・・・


治し方

治し方もなかなかなぞで、先にmecab.parse("")をやっておくという

import MeCab

mecab = MeCab.Tagger()
mecab.parse("") # 追加
node = mecab.parseToNode("すもももももももものうち")
while node:
print(node.surface)
node = node.next

すると

すもも


もも

もも

うち

できた。よくわからないけど、動くようになった。