Python 情感分类中的缺失值

Python 情感分类中的缺失值,python,machine-learning,nlp,sentiment-analysis,Python,Machine Learning,Nlp,Sentiment Analysis,我正在尝试使用python的sklearn包构建一个情绪分析引擎。 问题是分析关于这场卡格尔大赛的烂西红柿评论 情感可以有5种可能的价值观 我正在使用以下分类器 多项式朴素贝叶斯 逻辑回归 随机梯度下降 由于这些都是适合于二进制分类的线性分类器,下面是我必须采取的步骤 将训练和测试集分成5个部分,每个部分一个。 假设情绪的可能值为a、b、c、d、e。因此,在我的数据的第一部分,我将有所有的评论,但有情绪“a”的评论将被标记为积极的,所有其他评论将被标记为消极的。同样,我为其他情绪值创建其他部分

我正在尝试使用python的sklearn包构建一个情绪分析引擎。 问题是分析关于这场卡格尔大赛的烂西红柿评论

情感可以有5种可能的价值观

我正在使用以下分类器

  • 多项式朴素贝叶斯
  • 逻辑回归
  • 随机梯度下降
  • 由于这些都是适合于二进制分类的线性分类器,下面是我必须采取的步骤

  • 将训练和测试集分成5个部分,每个部分一个。 假设情绪的可能值为a、b、c、d、e。因此,在我的数据的第一部分,我将有所有的评论,但有情绪“a”的评论将被标记为积极的,所有其他评论将被标记为消极的。同样,我为其他情绪值创建其他部分

  • 清理所有5个部分中的数据

  • 创建一个管道,并将所有测试集部分一个接一个地提供给我的分类器。我将为每个部分存储一个结果。所以第一部分的分类结果是参与者等等。任何在伴侣身上被标记为积极的东西都属于情绪“a”。其他部分也是如此

  • 最后,我想结合所有5个部分的结果。我来看看产妇。任何标记为积极的内容都将更改为情绪“a”。其他部分我也会这样做。然后我简单地合并结果

  • 如果我没有重叠或重复,那就太理想了。但是我有少量的副本,这很好。我可以添加一些逻辑来处理这个问题

  • 我会对所有三个分类器都这样做,最后我想找出哪个分类器能给我最好的结果


  • 我的问题是,我可以看到,有很多评论,我的分类器不能放在任何类别!为什么会发生这种情况?这可能是因为数据集太小了吗?

    再次说明,问题是您训练的五个二进制模型并不是相互穷举的。有几种可能性。 首先,你对这五种情绪都有一个100%干净的分类,还是有一些公认的分类错误

    您需要一个相互排斥且详尽无遗的集合。你的方法暗示了这一结果,但很难保证。你可以考虑一个综合的解决方案来保证这一点。多类支持向量机就是这样一种,但可能不适合您的情况

    如果这些类不是100%准确,那么很容易让所有五个类都拒绝某个特定的观察结果。这表明您的分类算法需要调整,或者数据本身不像您希望的那样适合分类

    您还可以检查是否已适当地清理了该数据;一些错误会严重移动类边界

    我怀疑正在发生的是一个小的边界效应:当与其他四个类的组合相比较时,每个类都“拉”了自己的边界,在最后两组之间留下无人认领的区域

    您是否有办法在培训后检查分类参数?如果是的话,你能想象所选的五个边界吗?如果你确实发现了病理性差异,是否有可以调整的训练参数,比如给训练组一个更大的ε


    我希望这能有所帮助。

    谢谢你的建议!我将检查我的数据和分类器,并尝试找出是否可以正确调整它。我相信我没有太多的训练和测试数据,所以我想我可能不得不忍受这些差距。谢谢你的澄清。