【问题标题】:Sentiment Analysis with 3 classes (positive, neutral, and negative)?情绪分析有 3 个类别(正面、中性和负面)?
【发布时间】:2018-04-29 06:40:00
【问题描述】:

我想对 3 个类别(正面、中性和负面)进行情绪分析。我已经看到了很多关于两个类别(正面和负面)的情绪分析的工作,但对于 3 个类别来说就更少了。如果我想在 Scikit-learn 中使用词袋方法和分类器,例如逻辑回归或 SVM,这将如何工作?我的输出预测 3 个类的步骤是什么?

我是否必须将每个类视为一个二元分类并做一些事情来组合结果,还是 sklearn 能够为我做一些处理,所以我不必指定这个?

【问题讨论】:

标签: python scikit-learn sentiment-analysis multiclass-classification


【解决方案1】:

有三种可能的方法:

  1. 使用multiclass algorithms,例如逻辑回归或决策树(它们本质上是多类的)或用于 SVM 等二进制算法的一对一或一对一包装器。
  2. 如果您想利用中性文本“介于”正负文本之间这一事实,您可以使用有序分类模型,例如 mord 包中的有序逻辑回归。
  3. 如果您想利用类的顺序,但又想留在 scikit-learn 中,我建议先将任何回归模型拟合到您的数据(例如梯度提升回归器),然后在其之上使用逻辑回归预测。

【讨论】:

  • 只是对第 3 点的跟进:您能否阐明逻辑回归在预测之上的作用?给定第一步回归中的预测 yhat,您是否再次面临有序分类问题(sklearn 尚未实现)?我假设对于这一步,您将通过“四舍五入”到最接近的情绪(-1、0、1)来标记回归模型中的 yhat。为什么不首先使用这些四舍五入的值作为预测?
  • 我建议使用逻辑回归,因为它明确地预测概率。当回归预测例如-0.3,类(-1,0,1)的实际概率分别为(0.5,0.3,0.2),所以最可能的标签是-1,虽然预测更接近0而不是-1。
  • 好的点。因此,如果我理解您的建议是正确的,那么它是:1) 对原始数据运行回归并获得连续的 yhat 2) 对上一步预测的一个特征运行原始标签的 unordered 逻辑回归。听起来很有趣。我担心的是由于第 2 步中的无序模型导致的信息丢失。无论如何,感谢您的澄清!
  • 是的,您理解正确。我将其计算为经典有序逻辑回归的近似值。您可以将第 2 步视为只是在回归输出上放置正确的切点,因此不会有太多机会丢失信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 2017-11-29
  • 2013-08-28
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多