2011-04-21 99 views
3

我有一个关于情感分析的问题,我需要帮助。关于情感分析的问题

现在,我收集了许多通过twitter搜索api收集的推文。因为我使用了我的搜索条件,所以我知道我想查看哪些主题或实体(人名)。我想知道别人对这些人的感受。

对于初学者来说,我下载的与已知的化合价/情绪分数英语单词的列表,并计算情绪(+/-)的基础上在鸣叫这些词的可用性。问题在于情感以这种方式计算 - 我实际上更多关注推文的语气,而不是关于这个人。

举例来说,我有这样的tweet:

"lol... Person A is a joke. lmao!" 

的消息显然是一个积极的基调,但一个人应该得到一个负数。

为了改善我的情绪分析,我可以考虑从我的单词列表中的否定和修饰语。但是,我如何才能将情绪分析看作是消息主题(可能是讽刺)呢?

这将是巨大的,如果有人能告诉我对某些资源....

+0

“是的,没错。”分析这条消息的语气是一个挑战。你需要意识到,你的分析总是会有**方式关闭并产生错误结果的情况(或者没有正确结果存在!) – 2011-04-21 08:04:11

+0

由于大多数人无法在书面文本中检测到讽刺,所以很难一个算法来实现这个目标。 – Simon 2011-04-21 10:35:43

回答

4

在等待从人工智能领域的研究人员,我会给予解答你有些线索可以快速做到。

即使这个话题需要自然语言处理,机器学习甚至心理学方面的知识,除非您绝望或对现场研究质量不信任,否则您不必从头开始。

情感分析的一种可能方法是将其视为一个监督学习问题,其中包含一些包含人工注释的小型训练语料库(稍后会对此进行介绍)和一个测试语料库,您可以在其上测试您的方法/系统正在执行。对于训练,您需要一些分类器,如SVM,HMM或其他一些分类器,但要保持简单。我会从二进制分类开始:好,坏。您可以对连续的意见范围进行相同的处理,从正面到负面,即获得排名,如谷歌,其中最有价值的结果是最重要的。

一开始检查libsvm classifier,它能够进行这两项分类{好的,坏},并回归(排名)的。 注释的质量将对您获得的结果产生巨大影响,但从何处获得?

我发现one project about sentiment analysis与餐厅交易。既有数据又有代码,所以你可以看到他们如何从自然语言中提取特征,以及哪些特征在分类或回归中得分高。 该语料库由顾客对他们最近访问过的餐厅的意见组成,并对食物,服务或氛围给予了一些反馈。 关于他们的意见和数字世界的联系是用他们给餐厅的明星人数来表示的。您在一个网站上拥有自然语言,在另一个网站上拥有餐厅的价格

望着这个例子中,你可以设计你自己的说明这个问题的方法。 请看nltk。使用nltk,你可以做一些词性标记,并且有一些好运的名字也可以。完成后,您可以为分类器添加一个功能,如果在n个单词内(跳过n-gram),会有一个分数给一个名称,这个单词有表达意见的单词(查看餐厅语料库)或使用您已有的权重,但它是最好依靠一个分级学习权重,这是他的工作。

2

在目前的技术状态,这是不可能的。

英语(和其他语言)是非常复杂,不能被程序“解析”。为什么?因为一切必须是特殊的。说别人是笑话是一个特殊的笑话,这是你程序中的另一个例外。诸如此类,等等,等等

一个很好的例子(由ScienceFriction张贴在这里的某个地方SO):

同样,描述当情绪词“不可预知”可能是一部惊悚片的背景下积极的,但负面丰田的休息制度。

如果你愿意花+/- 40你人生早期阶段对这个问题,继续前进,这将是非常赞赏:)

2

我不完全赞同nightcracker表示同意。我同意这是一个难题,但我们正在朝着解决方案迈进。

例如,“部分的语音”可以帮助你找出主语,动词和宾语的句子。而'n-grams'可能会帮助你在丰田与惊悚的例子中找出背景。看看TagHelperTools。它建立在weka之上,提供词性和n-gram标记。

尽管如此,也很难拿到OP想要的结果,但它不会需要40年。