我不知道如何提高推文情绪的准确性

数据挖掘 随机森林 情绪分析 初学者
2022-01-28 18:01:53

我正在开始尝试推文情绪分析(正面、中性、负面)。到目前为止,我已经清理了数据并使用 BoW 来了解数据(> 2.5k 条推文)。我还制作了二元组以尝试获得更清晰的情绪洞察力。

数据严重偏斜,因此我尝试了上采样和下采样来查看差异。

我最终通过一个随机森林分类器将其全部通过,上采样数据的准确度为 0.7,下采样数据的准确度为 0.3。

我在混淆矩阵中对此进行了可视化,我可以看到该模型实际上无法正确标记。我检索了 Precision、Recall 和 F1。我可以看到我首先对正面和负面情绪有问题(值<0.45)

我已经尝试回去清理数据,但在这一点上,我想不出其他任何事情要做(我已经运行了词干提取、引理、标记化、停用词并添加了保留在那里的停用词,删除了特殊字符( @、# 等)和超链接。

我还给了我的 countvectorizer 1,1 的 ngram 范围;2,2; 3,3; 但没有检测到大的变化。

这是我第一次这样做,有人可以在这里指出正确的方向吗?

1个回答

显然,到目前为止,您所做的是通过反复试验来应用各种标准技术。我建议您可以通过手动错误分析来调查您的模型和数据会发生什么。随机抽取被错误预测的实例样本,并尝试理解为什么会发生这种情况。错误可能因各种原因发生:

  • 黄金标签是错误的或有问题的,情绪可能是主观的。一条被 A 认为是中性的推文可能对 B 是负面的。如果同一种推文有不同的标签,则模型无法找到预测标签的良好模式。如果这种问题很常见,那么黄金数据质量低下,与它没有太大关系。
  • 该模型没有捕捉到一些人类显而易见的线索。确定这些线索是什么,以及为什么模型无法捕捉到它们。通过这种方式,您可以以更明智的方式设计功能以提高性能(特征工程)。

但首先你应该避免重采样,并检查过度拟合:测试集上的性能不应该比训练集低很多。当您使用像所有 n-gram 这样的复杂特征时,很可能会导致模型过拟合。