预测推特上未来推文的情感倾向

4
我试图预测Twitter用户发布的下一条推文的情感。目前我已经实现了以下步骤(步骤1和2已在Python中实现):
  1. 学习如何将推文分类为积极(1)、中性(0)或消极(-1)。我使用朴素贝叶斯分类器,效果非常好。
  2. 对用户的现有推文进行分类。这会产生一系列数字,例如:[0, 1, -1, -1, -1, 0, 1, 1, ..],还有关于发布时间的信息。
是否可能预测下一条推文的情感(1、0或-1)?
我可以使用什么算法来实现这个功能?
我还不知道这个算法是如何工作的,但隐马尔可夫模型适合吗?还是某种回归?

2
一个想法:简单地创建另一个分类器,其中一个特征是 k-1 类标签(即前一个推文的类别),k-2 类标签,...,并查看是否有足够的数据来得出有效的预测。(我个人猜测这不够,但除非你尝试,否则我们不知道。)基本上,你正在做的是时间序列分析 - Wesley Baugh
4
您可以尝试这样做,但是人类通常不是那么容易预测的。下一条推文的情绪很可能不会太依赖于先前的推文,而更多地取决于您在Twitter上不能观察到的外部因素。在评估时,注意不要让机器人出现在您的数据中。 - Has QUIT--Anony-Mousse
2个回答

3
我认为一个吸引人的思考方式是通过情感的先验概率和似然来思考。朴素贝叶斯是一个似然模型(假设这条推文是积极的,我看到它的可能性有多大?)。你正在询问在已经观察到一定的情感序列的情况下,下一条推文为积极的先验概率。你可以用以下几种方式来做到这一点:
- 最朴素的方法是用户发出的积极推文占全部推文比例就是下一条推文积极的概率。 - 然而,这忽略了最近的情感。你可以想出一个基于转换的模型:从每个可能的前一个状态,下一个推文是积极、消极还是中立的概率不同。因此,您有一个3x3的转移矩阵,给定上一条推文为积极状态时下一条推文为积极状态的条件概率是转移概率pos->pos。这可以通过计数来估计,并且是马尔可夫过程(只需要关心之前的状态)。 - 您可以使用这些转换模型变得越来越复杂,例如当前的“状态”可以是最后两个或者是最后n个推文的情感,这意味着您可以得到更特定的预测,但这会以模型中越来越多的参数为代价。您可以通过平滑方案、参数绑定等方法克服这一点。
最后,我认为@Anony-Mousse有关先验概率的弱证据的观点是正确的:实际上,无论您的先验概率告诉您什么,我认为似然函数(实际上在推文中的内容)将主导结果。如果您也能看到推文,请像@Neil McGuigan建议的那样考虑使用CRF。

0

HMM不适合,因为“状态”(情感)并没有隐藏,至少根据问题概述所述。我们实际上可以观察到情感序列。同样,只有当我们看到有关推文的信息时,CRF才真正有用,但我相信原帖想要在不看推文的情况下得到情感的先验概率分布。 - Ben Allison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接