【发布时间】:2015-12-31 00:24:58
【问题描述】:
我正在尝试使用 python 的 sklearn 包构建情绪分析引擎。 问题是分析烂番茄对这个 Kaggle 比赛的评论
https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews
情绪可以取 5 个可能的值
我正在使用以下分类器
- 多项朴素贝叶斯
- 逻辑回归
- 随机梯度下降
由于这些都是适合二元分类的线性分类器,因此我必须采取以下步骤
将训练集和测试集分成 5 个部分,每个情绪一个部分。 假设情绪的可能值为 a,b,c,d,e。因此,在我的数据的第一部分中,我将拥有所有评论,但情绪为“a”的评论将被标记为正面,而所有其他评论将被标记为负面。同样,我为其他情绪值创建其他部分。
清理所有5个部分的数据
创建一个管道并将所有测试集部分一个接一个地提供给我的分类器。我将每个部分存储一个结果。所以第一部分的分类结果是partOneRes等等。在 partOneRes 中被标记为正面的任何东西都属于情绪“a”。其他部分也一样。
最后我想合并所有 5 个部分的结果。我会看看partOneRes。任何标记为正面的东西都将更改为情绪“a”。我会为所有其他部分做同样的事情。然后我简单地合并结果。
如果我没有重叠或重复,那将是理想的。但是我得到了少量重复,这很好。我可以添加一些逻辑来处理它。
我会对所有三个分类器都这样做,最后我想找出哪个分类器给我最好的结果。
我的问题是我可以看到有很多评论我的分类器无法放入任何类别!为什么会发生这种情况?会不会是数据集太小了?
【问题讨论】:
标签: python machine-learning nlp sentiment-analysis