我一直在读刘冰的情感分析书。他提到了自 2004 年以来在研究中看到的所有这些略有不同的方法,但根本没有过多谈论功效。
这让我——一个以前没有做过任何情绪分析的人——想知道目前哪些方法能看到最好的结果。它特别需要一种能够提取文本中各个主题的情绪的方法,而不仅仅是文档/句子是正面的还是负面的。
如果它产生巨大差异:分析对象将是 reddit 评论,而不是似乎是最常见数据来源的推文或评论。
我一直在读刘冰的情感分析书。他提到了自 2004 年以来在研究中看到的所有这些略有不同的方法,但根本没有过多谈论功效。
这让我——一个以前没有做过任何情绪分析的人——想知道目前哪些方法能看到最好的结果。它特别需要一种能够提取文本中各个主题的情绪的方法,而不仅仅是文档/句子是正面的还是负面的。
如果它产生巨大差异:分析对象将是 reddit 评论,而不是似乎是最常见数据来源的推文或评论。
如果不将方面级别的情感分析分解为其子任务,很难说一般来说什么是最先进的:
1)方面提取
2) 情绪分类
正如您可能在 Liu 的书中读到的那样,通过提取最常见的名词短语并添加一些启发式方法,可以相对较好地完成方面提取。当您处理围绕几个主题的文本时,这特别有效。基于主题模型的技术(LDA 等)更好,但实现起来更复杂。
至于分类,所有当前最先进的方法都使用神经网络(循环神经网络或卷积神经网络)。在句子级别,Kim (2014) 在几个数据集上仍然是 soa。Wang等人有一篇论文。关于去年在 EMNLP 中用于方面级情感分析的基于注意力的 LSTM。
我建议在基于方面的情绪分析中查看最近的 SemEval 任务(2014 任务 4、2015 任务 12、2016 任务 5)。那里有很多好主意,你可以从中汲取灵感。
基本上,有两种类型的情绪分析。
无论是粗分类(正面 - 负面)还是精细分类(其中的情绪类型),如果您要通过矢量模型处理它,则需要一个训练数据集,因为它更容易使用。
谷歌基于循环神经网络语言模型开发的skip-gram模型和连续词袋模型在自然语言处理方面取得了突破,似乎是分布式表示中最先进的模型。
由于代码已经开源,c代码在这里可用,python库在这里维护。
如果您要使用 reddit 评论、推文或评论,这并不重要。重要的是句子对训练数据的分类程度。因为垃圾进就是垃圾出。