3

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

现在,我有一堆通过 twitter 搜索 api 收集的推文。因为我使用了搜索词,所以我知道我想要查看的主题或实体(人名)是什么。我想知道其他人对这些人的看法。

对于初学者,我下载了一个具有已知价/情绪分数的英语单词列表,并根据推文中这些单词的可用性计算情绪 (+/-)。问题是情绪是这样计算的——我实际上更多地关注推文的语气,而不是关于这个人。

例如,我有这条推文:

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

消息显然是积极的,但 A 人应该得到否定。

为了改进我的情绪分析,我可能会考虑我的单词列表中的否定和修饰符。但是我怎样才能让我的情绪分析来查看消息的主题(可能还有讽刺)呢?

如果有人可以指导我获取一些资源,那就太好了....

4

3 回答 3

5

在等待人工智能领域研究人员的答案时,我会给你一些关于你可以快速做些什么的线索。

尽管该主题需要自然语言处理、机器学习甚至心理学方面的知识,但除非您绝望或对该领域正在进行的研究质量不信任,否则您不必从头开始。

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

对于开始检查libsvm 分类器,它能够进行分类 {good, bad} 和回归(排名)。注释的质量将对您获得的结果产生巨大影响,但是从哪里获得呢?

我发现了一个与餐馆有关的情绪分析项目。既有数据又有代码,所以你可以看到他们是如何从自然语言中提取特征的,以及哪些特征在分类或回归中得分高。该语料库包含顾客对他们最近访问过的餐馆的意见,并就食物、服务或氛围提供了一些反馈。他们的观点和数字世界的联系以他们给餐厅的星数来表达。您在一个站点上有自然语言,在另一个站点上有餐厅的价格。

查看此示例,您可以针对所述问题设计自己的方法。看看nltk。使用 nltk,您可以进行词性标注,运气好的话,您还可以获取名称。完成此操作后,您可以向分类器添加一个功能,如果在 n 个单词(跳过 n-gram)中有表达意见的单词(查看餐厅语料库)或使用您已经拥有的权重,它将为名称分配分数,但它是最好依靠分类器来学习权重,那是他的工作。

于 2011-04-21T09:38:18.907 回答
3

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

英语(和任何其他语言)非常复杂,还不能被程序“解析”。为什么?因为一切都必须是特殊情况。说某人是个笑话是笑话的一个特例,这在你的程序中是另一个例外。等等等等等等。

一个很好的例子(由 ScienceFriction 在 SO 的某处发布):

同样,情感词“不可预测”在惊悚片的语境中可能是正面的,但在描述丰田的休息系统时可能是负面的。

如果您愿意在这个主题上花费 +/-40 年的时间,请继续,我们将不胜感激 :)

于 2011-04-21T07:55:33.010 回答
2

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

例如,“词性”可以帮助你找出句子中的主语、动词和宾语。在丰田与惊悚片的例子中,“n-gram”可能会帮助您弄清楚上下文。查看TagHelperTools。它建立在 weka 之上,并提供词性和 n-gram 标记。

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

于 2012-12-14T21:53:38.953 回答