情感分析的最佳算法方法

时间:2010-11-16 21:57:19

标签: nlp sentiment-analysis

我的要求是接受新闻文章,并确定他们对某个主题是积极的还是消极的。我正在采取下面概述的方法,但我继续阅读NLP可能在这里使用。我读过的所有内容都指出NLP从事实中发现了意见,我认为这在我的案例中并不重要。我想知道两件事:

1)为什么我的算法不能工作和/或我怎样才能改进它? (我知道讽刺可能是一个陷阱,但我再也看不到我们将会收到的新闻类型中出现的很多)

2)NLP如何帮助,我为什么要使用它?

我的算法方法(我有正面,负面和否定词的词典):

1)计算文章中正面和负面单词的数量

2)如果发现一个带有2或3个单词的否定词的否定词,(即:不是最好的)否定了分数。

3)将分数乘以手动分配给每个单词的权重。 (1.0开始)

4)将正数和负数的总和相加以获得情绪分数。

6 个答案:

答案 0 :(得分:33)

我认为你的算法没有特别的 错误的 ,这是一种相当简单实用的方法,但是在很多情况下它会犯错误。

  1. 暧昧情绪词语 - “此产品非常适用”与“此产品非常好”

  2. 错失否定 - “我绝不会在数百万年内说这款产品值得购买”

  3. 引用/间接文字 - “我父亲说这个产品很糟糕,但我不同意”

  4. 比较 - “此产品与头部漏洞一样有用”

  5. 任何微妙的 - “这个产品很丑陋,缓慢而且没有吸引力,但它是市场上唯一能完成这项工作的东西”

  6. 我正在使用产品评论来举例,而不是新闻报道,但你明白了。事实上,新闻文章可能更难,因为他们经常试图展示争论的两个方面,并倾向于使用某种风格来传达一个观点。例如,最后的例子在意见中很常见。

    就NLP帮助您完成任何此操作而言,word sense disambiguation(或者甚至只是part-of-speech tagging)可能对(1)提供帮助,syntactic parsing可能有助于长距离依赖( 2),某种chunking可能有助于(3)。这是所有研究水平的工作,但我不知道你可以直接使用。问题(4)和(5)要困难得多,我放弃了手,放弃了这一点。

    我会坚持你的方法并仔细查看输出,看看它是否正在做你想要的。当然那会引发你想要了解“情绪”定义的问题......

答案 1 :(得分:5)

我最喜欢的例子是“只读这本书”。它不包含明确的情感词,它高度依赖于上下文。如果它出现在电影评论中,那就意味着电影很糟糕 - 这是浪费你的时间而不是书本是好的。但是,如果是在书评中,它会带来积极的情绪。

那么 - “这是市场上最小的[手机]手机”。回到90年代,这是一个很好的赞誉。今天它可能表明它太小了。

我认为这是开始以获得情绪分析的复杂性的地方:http://www.cs.cornell.edu/home/llee/opinion-mining-sentiment-analysis-survey.html(康奈尔的Lillian Lee)。

答案 2 :(得分:2)

机器学习技术可能更好。

Whitelaw, Garg, and Argamon有一种技术可以达到92%的准确率,使用与你类似的技术来处理否定,并支持向量机进行文本分类。

答案 3 :(得分:2)

您可能会发现OpinionFinder系统和描述它的论文很有用。 可在http://www.cs.pitt.edu/mpqa/获取其他资源进行意见分析。

它超出了文档级别的极性分类,但试图在句子级别找到个人意见。

答案 4 :(得分:2)

我相信你提到的所有问题的最佳答案是在 Bing Liu 教授的“情感分析和意见挖掘”的标题下阅读这本书。本书是情感分析领域中最好的一本。太神奇了。只需看看它,您就会找到所有“为什么”和“如何”问题的答案!

答案 5 :(得分:-1)

为什么不尝试类似于SpamAsassin垃圾邮件过滤器的工作原理?内涵挖掘与意见挖掘之间没有太大区别。