我想尝试创建一个应用程序,该应用程序根据内容对用户的facebook帖子进行评级(情感分析)。我最初试着自己创建一个算法,但我觉得它并不那么可靠。创建了一个单词的字典列表,并根据字典扫描帖子,如果它是积极的或消极的。然而,我觉得这是微不足道的。我想根据帖子给这个人的情绪或感觉/个性特征打分。这有可能做到吗?
希望能利用一些在线API,请协助。谢谢;)
发布于 2013-08-28 06:59:08
正如@Jared指出的,使用基于字典的方法在某些情况下可以很好地工作,这取决于训练语料库的质量。这实际上是CLIPS、pattern和TextBlob的实现如何工作的。
下面是一个使用TextBlob的示例:
from text.blob import TextBlob
b = TextBlob("StackOverflow is very useful")
b.sentiment # returns (polarity, subjectivity)
# (0.39, 0.0)默认情况下,TextBlob使用pattern的基于字典的算法。但是,您可以很容易地交换算法。例如,您可以使用在电影评论语料库上训练的朴素贝叶斯分类器。
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-21 02:33:45
你描述的算法实际上应该工作得很好,但结果的质量在很大程度上取决于所使用的单词列表。对于Sentimental,我们接受Facebook帖子上的评论,并根据情绪对它们进行评分。使用AFINN 111单词列表逐个单词地对评论进行评分,这种方法(可能令人惊讶)是有效的。通过先对单词进行规范化和词干处理,您应该能够做得更好。
发布于 2013-10-07 18:01:04
有很多情绪分析API,你可以很容易地将它们整合到你的应用程序中,而且其中许多都有免费的使用额度(通常,每天500个请求)。我开始了一个小项目,比较每个API (目前支持10个不同的API: AIApplied、Alchemy、Bitext、Chatterbox、Datumbox、Lymbix、Repustate、Semantria、Skyttle和Viralheat)如何将给定的文本集分类为正面、负面或中性:https://github.com/skyttle/sentiment-evaluation
每个特定的API可以提供许多其他功能,比如对情绪(高兴、愤怒、悲伤等)进行分类,或者将情绪与情绪所属的实体联系起来。您只需浏览可用的功能并选择适合您需求的功能即可。
TextBlob是另一种可能性,尽管它只会将文本分类为pos/neg/neu。
https://stackoverflow.com/questions/18181675
复制相似问题