PythonのMeCabが残念過ぎる件について
MeCabのここが残念
tagger = MeCab.Tagger("-Ochasen") node = tagger.parseToNode("PythonからMeCabの形態素解析機能を使ってみました。") while node: print node.surface print node.feature node = node.next
node = node.nextとかダサい…ダサ過ぎる…。
改良してみた
ここは是非イテレータちっくに書きたい。ので、ジェネレータ式使ってこんな感じに
def eachNode(node): while node: if not node.surface == "": yield node node = node.next if __name__ == "__main__": tagger = MeCab.Tagger("-Ochasen") node = tagger.parseToNode("PythonからMeCabの形態素解析機能を使ってみました。") for n in eachNode(node): print n.surface print n.feature
これなら格好良い!