因此,我正在尝试情绪分析。我在很多地方听说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"..并且期望比在most_frequent否定词上使用NaiveBayes更好的结果。还有比这些方法更好的方法吗?
发布于 2014-12-13 01:42:35
这不是解决问题的方法。你假设在400条负面评论的语料库中,你会发现大部分是负面的词,对吧?这个假设在大多数情况下是不正确的。你会发现最常见的单词是stopwords,比如“我”,“它”,“你”,“我们”等等,还有一些单词表示你的语料库的一般主题。然而,如果你想遵循你的方法,你应该做的是首先删除前N个常用词(N取决于数据集)。然后,找到最常用的单词可能会把你带到极地单词。我之所以说可能,是因为尽管这种方法是正确的(根据数据的概率),但它有一个巨大的噪音。现在,如果你想做情感分析,为什么不使用情感词典来训练NB呢?你可以阅读我关于情感词典here的答案。有很多方法可以解决你的问题,但因为我对你的数据集一无所知,所以我不能判断。如果您有进一步的问题,请告诉我。
https://stackoverflow.com/questions/27443852
复制相似问题