4

我试图预测 Twitter 用户发布的下一条推文的情绪。现在我有以下步骤(步骤1和2已经在python中实现):

  1. 了解如何将推文分类为正面 (1)、中性 (0) 或负面 (-1)。我为此使用了一个朴素的贝叶斯分类器,它工作得很好。

  2. 对来自用户的现有推文进行分类。这会产生一系列像这样的数字: [0, 1, -1, -1, -1, 0, 1, 1, ..] 还有关于发布时间的信息。

是否可以预测下一条推文的情绪(1、0 或 -1)?

我可以为此使用什么算法?

我还不知道这个是如何工作的,但是隐藏马尔可夫模型是合适的还是某种回归?

4

2 回答 2

3

我认为考虑这一点的一种有吸引力的方式是先验和情绪的可能性。朴素贝叶斯是一个可能性模型(考虑到它是积极的,我有多大可能看到这条确切的推文?)。鉴于到目前为止您已经观察到一定的情绪序列,您正在询问下一条推文为正面的先验概率。有几种方法可以做到这一点:

  • 最幼稚的方法是用户发出的正面推文的比例是下一条推文是正面的概率
  • 但是,这忽略了新近度。您可以提出一个基于转换的模型:从每个可能的先前状态,下一条推文都有可能是正面的、负面的或中性的。因此,您有一个 3x3 的转换矩阵,并且在最后一条推文为正的情况下,下一条推文为正的条件概率是转换概率 pos->pos。这可以从计数中估计出来,并且是一个马尔可夫过程(基本上,以前的状态很重要)。
  • 您可以使用这些转换模型变得越来越复杂,例如,当前的“状态”可能是最后两条推文的情绪,或者实际上是最后 n 条推文,这意味着您以越来越多的参数为代价获得更具体的预测在模型中。您可以通过平滑方案、参数绑定等来克服这个问题。

最后一点,我认为@Anony-Mousse 关于先验是弱证据的观点是正确的:真的,无论你的先验告诉你什么,我认为这将由似然函数(实际上在推文中的有问题)。如果你也能看到这条推文,请考虑 @Neil McGuigan 建议的 CRF。

于 2013-05-08T13:52:42.373 回答
0

在机器学习方面,您可以考虑顺序关联:

http://web.mit.edu/rudin/www/RudinEtAlCOLT11.pdf

这个站点有一些java库:

http://www.philippe-fournier-viger.com/spmf/

隐马尔可夫模型也应该有效。HMM 是条件随机场的一种特殊情况,它可以让您查看其他因素,例如天气或新闻事件。

我想知道一个人的下一条推文是否也受到a)每个人b)的当前推文或他们关注的推文的影响

于 2013-05-07T18:57:12.737 回答