ナイーブベイズ
「機械学習 はじめよう」のベイジアンフィルタを参考にナイーブベイズを実装してみました。
ついでだったので、他の方もやっていた、形態素解析をmecabに変えてみました。
# coding: utf-8
import MeCab
partsDic = {}
for par in [u"名詞", u"動詞", u"形容詞", u"副詞", u"連体詞", u"感動詞",]:
partsDic[par] = True
def split(sentence):
sentence = sentence.encode("utf-8")
tgr = MeCab.Tagger("")
node = tgr.parseToNode(sentence)
nodes = []
while node:
if partsDic.has_key(unicode(node.feature, "utf-8").split(",")[0]):
nodes.append(unicode(node.surface, "utf-8").lower())
node = node.next
return nodes
コメントにもありましたが一番目のが正しいカテゴリに分類されないみたいです。
理由は色々ありますがbowだと出現確率が少ないものは、期待する結果にならないみたいですね。