PythonのMeCabが残念過ぎる件について

はじめに

Twitterの発言をベイズ分類器で解析しようかと、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

これなら格好良い!