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