3

我想尝试创建一个应用程序,根据内容(情绪分析)对用户的 Facebook 帖子进行评分。我最初尝试自己创建一个算法,但我觉得它不是那么可靠。创建一个单词字典列表,并根据字典扫描帖子,并对其进行正面或负面评价。但是,我觉得这是最小的。我想根据帖子评估此人的情绪或感受/个性特征。这有可能做到吗?

希望利用一些在线API,请协助。谢谢 ;)

4

4 回答 4

3

正如@Jared 所指出的,在某些情况下使用基于字典的方法可以很好地工作,具体取决于您的训练语料库的质量。这实际上就是 CLIPS模式TextBlob的实现方式。

下面是一个使用 TextBlob 的示例:

from text.blob import TextBlob
b = TextBlob("StackOverflow is very useful")
b.sentiment  # returns (polarity, subjectivity)
# (0.39, 0.0)

默认情况下,TextBlob 使用模式的基于字典的算法。但是,您可以轻松更换算法。例如,您可以使用在电影评论语料库上训练的朴素贝叶斯分类器。

from text.blob import TextBlob
from text.sentiments import NaiveBayesAnalyzer

b = TextBlob("Today is a good day", analyzer=NaiveBayesAnalyzer())
b.sentiment  # returns (label, prob_pos, prob_neg)
# ('pos', 0.7265237431528468, 0.2734762568471531)
于 2013-08-27T22:59:08.027 回答
1

您可以轻松地将许多情绪分析 API 整合到您的应用程序中,其中许多 API 还提供免费使用限额(通常每天 500 个请求)。我开始了一个小项目,比较每个 API(目前支持 10 种不同的 API:AIApplied、Alchemy、Bittext、Chatterbox、Datumbox、Lymbix、Repustate、Semantria、Skyttle 和 Viralheat)如何将一组给定的文本分类为正面、负面或中性:https ://github.com/skyttle/sentiment-evaluation

每个特定的 API 都可以提供许多其他功能,例如对情绪进行分类(高兴、愤怒、悲伤等)或将情绪与情绪归因的实体相关联。您只需要浏览可用功能并选择适合您需求的功能即可。

TextBlob是另一种可能性,尽管它只会将文本分类为 pos/neg/neu。

于 2013-10-07T10:01:03.600 回答
1

您描述的算法实际上应该运行良好,但结果的质量很大程度上取决于使用的单词列表。对于Sentimental,我们对 Facebook 帖子发表评论并根据情绪对其进行评分。使用 AFINN 111 单词列表逐字对评论进行评分,这种方法(也许令人惊讶)有效。通过首先对单词进行规范化和词干化,您应该能够做得更好。

于 2013-08-20T18:33:44.713 回答
0

如果您正在寻找基于 C# 中朴素贝叶斯分类器的情绪分析引擎的开源实现,请查看https://github.com/amrishdeep/Dragon。它最适用于博客文章或多段产品评论等大型语料库。但是,我不确定它是否适用于包含少量单词的 Facebook 帖子

于 2014-03-07T05:04:28.040 回答