情绪分析NaiveBayes python问题

时间:2014-12-12 12:37:28

标签: python classification nltk sentiment-analysis

所以我正在尝试情绪分析。我在很多地方都听说NaiveBayes足够好。所以我手动收集了一些负面评论(~400)。然后在清理了评论文件之后,我终于想出了这些最常见的负面评论词: -

negative_comments.most_common(40) #Similarly for positive..

[('never', 79),
 ('i', 63),
 ('restaurant', 51),
 ('it', 48),
 ('one', 47),
 ('get', 47),
 ('time', 43),
 ('would', 41),
 ('bad', 39),
 ('service', 38),
 ('don', 36),
 ('us', 36),
 ('work', 35),
 ('family', 35),
 ('day', 35),
 ('please', 32),
 ('stove', 32),
 ('you', 31),
 ('like', 31),
 ('got', 28),
 ('back', 27),
 ('customer', 27),
 ('years', 25),
 ('good', 25),
 ('people', 24),
 ('open', 24),
 ('online', 24),
 ('days', 23),
 ('right', 23),
 ('flea-market', 23),
 ('we', 21),
 ('way', 20)]

正如你所看到的,在最常见的词中几乎没有任何否定词。如果我使用这些最频繁的使用NaiveBayes生成我的功能,那么我没有看到分类器中的任何点表现出任何好处。相反,我只想搜索像这样的词: -

"dislike","bad", "awful","hate"..

并且期望比在最常见的否定词上使用NaiveBayes更好的结果。有没有比这些方法更好的方法?

1 个答案:

答案 0 :(得分:0)

这不是解决问题的方法。你假设在400个负面评论的语料库中你会发现大多数负面词,对吧?在大多数情况下,这种假设不正确。您会找到最常见的字词是stopwords,例如'我''它','您''我们'我们&#39 39;等等,以及一些显示语料库一般主题的词语。但是,如果您想要遵循您的方法,您应该首先删除前N个常用词(N取决于数据集)。然后,找到最常见的单词可能会引导你走极性词。我说可能是因为虽然这种方法是正确的(根据数据的概率)但它有很大的噪音。 现在,如果您想进行情绪分析,为什么不使用情绪词典来训练NB。您可以阅读我关于情感词典here的答案。有很多方法可以解决您的问题,但由于我对您的数据集一无所知,我无法判断。如果您有其他问题,请告诉我。