oggataの日記 このページをアンテナに追加 RSSフィード Twitter

 | 

2016-12-06 Python3 + MeCabで parseToNodeでエラー このエントリーを含むブックマーク このエントリーのブックマークコメント

yield node.surface.lower()

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

import MeCab
node = mecab.parseToNode(text)

を実行した時になぜか怒られる...。surfaceが読めてない?

(原因)

https://shogo82148.github.io/blog/2015/12/20/mecab-in-python3-final/

こちらの記事によると解析対象の文字列がPythonの管理下から外れGCされてしまっていて、

メモリ管理をMeCabに任せるように変更が必要とのこと。。

Python3 + MeCabで起こる。

import MeCab
mecab = MeCab.Tagger("-Ochasen")
mecab.parse('') #<---これを1行いれる
text = "犬と猫のどちらが好きですか?"
node = mecab.parseToNode(text)
while node:
    print (node.surface, node.feature)
    node = node.next

(memo)

ただし、

http://qiita.com/yukinoi/items/81a707c1317c97f5fdf9

によるとparseToNodeはだいぶ遅いとのこと。

 | 
Connection: close