情感分析问题解答

3

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

现在,我通过Twitter搜索API收集了一堆推文。因为使用了我的搜索词,我知道我想要查看哪些主题或实体(人名)。我想知道其他人对这些人的感受。

首先,我下载了一个包含已知极性/情感得分的英语单词列表,并基于这些单词在推文中的可用性计算情感(+/-)。问题在于,这种方式计算的情绪 - 我实际上更多地关注推文的语气而不是关于人本身。

例如,我有这条推文:

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

这条信息显然是积极的,但A应该得到负面评价。

为了改进我的情感分析,我可以考虑从我的词汇表中考虑否定和修饰语。但是,如何让我的情感分析关注信息的主题(可能还包括讽刺)呢?

如果有人能指引我一些资源,那就太好了...


“没错。”分析这条信息的语气是一个挑战。你需要意识到你的分析总会有一些情况它偏离了预期,导致错误的结果(或者根本没有正确的结果!) - Joachim Sauer
1
由于大多数人在书面文本中都很难识别出讽刺,因此对于算法来说,实现这个目标将是困难的。 - Simon Bergot
3个回答

5
在等待人工智能领域的研究者回答时,我将给您一些快速入门的线索。尽管这个话题需要自然语言处理、机器学习甚至心理学方面的知识,但除非您绝望或不信任该领域正在进行的研究质量,否则您无需从头开始。
情感分析的一个可能的方法是将其视为监督学习问题,其中您拥有一些小的训练语料库,其中包括人工注释(稍后再谈),以及一个测试语料库,在其中测试您的方法/系统的表现如何。为了训练,您将需要一些分类器,如SVM、HMM或其他一些简单的分类器。我会从二元分类开始:好、坏。您可以对观点范围进行连续光谱的相同操作,从积极到消极,即获得排名,例如谷歌,其中最有价值的结果排在前面。
首先检查libsvm classifier,它能够进行分类{好、坏}和回归(排名)。注释的质量将对您获得的结果产生巨大影响,但从哪里获取呢?
我找到了一篇关于餐厅情感分析的项目,其中包含数据和代码,因此您可以看到他们如何从自然语言中提取特征以及哪些特征在分类或回归中得分较高。该语料库由顾客对他们最近访问并对食品、服务或氛围提供反馈意见的餐厅意见组成。他们的意见与数字世界的联系用餐厅评分的星级数量来表示。您有一个自然语言和另一个是餐厅评分的场景。
通过观察这个例子,您可以设计自己的解决方案。同时,也可以看看nltk。使用nltk,您可以进行词性标注并有机会获得名称。完成这些后,您可以向分类器添加一个特征,如果在n个单词内(跳过n-gram)有表达意见的单词(查看餐厅语料库),则为名称分配分数,或者使用您已经拥有的权重,但最好依靠分类器来学习权重,那是它的工作。

3
在当前技术状态下,这是不可能的。
英语(以及任何其他语言)非常复杂,目前无法通过程序进行“解析”。为什么?因为“所有东西”都必须特别处理。说某人是一个笑话是程序中的另一个例外情况。等等,等等。
一个很好的例子(在SO上由ScienceFriction发布):
同样,“不可预测”的情感词汇在惊悚片的背景下可能是积极的,但用来形容丰田汽车的制动系统则是消极的。
如果您愿意花费大约40年的时间研究此主题,请继续,这将受到高度赞赏:)

2

我不完全同意夜莺所说的话。我认为这是一个难题,但我们正在朝着解决方案取得良好进展。

例如,“词性”可以帮助你找出句子中的主语、动词和宾语。“n-grams”可能会在Toyota vs. thriller的例子中帮助您找到上下文。看看TagHelperTools。它建立在weka之上,提供了词性和n-grams标记。

尽管如此,要得到OP想要的结果仍然很困难,但不需要40年。


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