情感分析问题

3 投票
3 回答
1836 浏览
提问于 2025-04-16 16:09

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

现在,我收集了一些通过Twitter搜索API得到的推文。因为我使用了自己的搜索词,所以我知道我想关注的主题或人物(人名)。我想了解别人对这些人的看法。

首先,我下载了一份包含已知情感分数的英文单词列表,并根据这些单词在推文中的出现情况来计算情感(正面或负面)。但这样计算出来的情感,其实我更多的是在看推文的语气,而不是关于这个人的情感。

比如,我有这样一条推文:

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

这条信息显然是积极的,但这个人A其实应该是负面的。

为了改善我的情感分析,我可能需要考虑否定词和修饰词。但我该如何让我的情感分析更关注信息的主题(还有可能的讽刺)呢?

如果有人能给我一些资源的建议,那就太好了……

3 个回答

2

我对nightcracker

比如说,“词性”可以帮助你找出句子中的主语、动词和宾语。而“n-grams”可以帮助你在“丰田”和“惊悚片”的例子中理解上下文。你可以看看TagHelperTools。这个工具是基于weka开发的,可以提供词性标注和n-grams标注。

不过,想要得到提问者想要的结果还是挺困难的,但不会需要40年那么久。

3

在现在的技术水平下,这个事情是不可能的。

英语(以及其他任何语言)是非常复杂的,程序目前还无法“理解”它。为什么呢?因为每一个情况都得特别处理。比如说,称某人是个笑话,这就是一个特例,而这个特例又需要在你的程序中单独处理。类似的情况还有很多,等等等等。

一个很好的例子(由ScienceFriction在这里的某个地方提到):

同样,词语“不可预测”在惊悚片的语境中可能是积极的,但在描述丰田的刹车系统时却是消极的。

如果你愿意花大约40年的时间来研究这个话题,那就去吧,大家会非常感激你的 :)

5

在等待人工智能领域研究人员的回答时,我可以给你一些快速的建议。

虽然这个话题需要自然语言处理、机器学习甚至心理学的知识,但你不必从零开始,除非你非常着急或者对这个领域的研究质量没有信心。

一种可能的情感分析方法是把它当作一个监督学习的问题来处理,也就是说,你需要一些小的训练数据,这些数据里有人工标注的内容(稍后会提到),然后再用一个测试数据集来测试你的方法或系统的表现。为了训练,你需要一些分类器,比如支持向量机(SVM)、隐马尔可夫模型(HMM)等,但保持简单。我建议从二分类开始:好和坏。你也可以为意见的连续范围做同样的事情,从积极到消极,像谷歌那样给出排名,最有价值的结果排在前面。

首先可以看看libsvm分类器,它可以进行分类(好、坏)和回归(排名)。标注的质量会对你得到的结果产生很大影响,但这些标注从哪里来呢?

我发现了一个关于情感分析的项目,它涉及餐厅。这个项目里有数据和代码,你可以看到他们是如何从自然语言中提取特征的,以及哪些特征在分类或回归中得分较高。这个数据集包含了顾客对他们最近光顾的餐厅的意见,反馈内容包括食物、服务或氛围。顾客的意见和数字世界之间的联系通过他们给餐厅的星级评分来表达。一边是自然语言,另一边是餐厅的评分。

通过这个例子,你可以为所提到的问题设计自己的解决方案。也可以看看nltk。使用nltk,你可以进行词性标注,如果运气好,还能提取出名字。完成这些后,你可以为你的分类器添加一个特征,如果在n个词内(跳过n-gram)有表达意见的词,就给名字打分(参考餐厅的数据集),或者使用你已有的权重,但最好还是依赖分类器来学习权重,这正是它的工作。

撰写回答