Twitter在Python中的情感分析[关闭]
machine-learning
nlp
python
6
0

我正在寻找文本情感分析http://en.wikipedia.org/wiki/Sentiment_analysis )的开源实现,最好是Python。有谁熟悉我可以使用的这种开源实现?

我正在编写一个应用程序,该应用程序在Twitter上搜索某个搜索词,例如“ youtube”,并计算“快乐”推文与“悲伤”推文的数量。我正在使用Google的appengine,所以它在python中。我希望能够对来自Twitter的返回搜索结果进行分类,并且希望在python中进行分类。到目前为止,我还没有找到这种情感分析器,特别是在python中。您熟悉我可以使用的这种开源实现吗?最好是已经在python中了,但是如果没有,希望我可以将其翻译成python。

请注意,我正在分析的文本非常简短,它们是推文。因此,理想地,此分类器针对此类短文本进行了优化。

顺便说一句,twitter确实在搜索中支持“ :)”和“ :(”运算符,其目的只是为了做到这一点,但是不幸的是,它们提供的分类并不是那么好,所以我想自己可以尝试一下。

谢谢!

BTW,早期的演示是在这里和我至今的代码是在这里 ,我很愿意和任何有兴趣的开发者开源它。

参考资料:
Stack Overflow
收藏
评论
共 7 个回答
高赞 时间 活跃

许多研究论文表明,情感分析的一个很好的起点是寻找形容词,例如,它们是肯定形容词还是否定形容词。对于一小段文字,这几乎是您唯一的选择...有些论文可以查看整个文档或句子级别的分析,但是正如您所说的那样,tweet相当短...没有真正的魔术方法可以理解因此,我认为您最好的选择是寻找其中一份研究论文,并尝试获取其正面/负面定位形容词的数据集。

现在,已经说过,情感是特定于领域的,您可能会发现很难用通用数据集获得高级别的准确性。

祝好运。

收藏
评论

看一下Twitter情绪分析工具 。它是用python编写的,并且将Naive Bayes分类器与半监督机器学习结合使用。来源可以在这里找到。

收藏
评论

我已经建立了一个带有情感标签的单词表。您可以从这里访问它:

http://www2.compute.dtu.dk/pubdb/views/edoc_download.php/6010/zip/imm6010.zip

您会在我的博客上找到一个简短的Python程序:

http://finnaarupnielsen.wordpress.com/2011/06/20/simplest-sentiment-analysis-in-python-with-af/

这篇文章显示了如何在单个句子以及Twitter上使用单词列表。

单词列表方法有其局限性。您可以在文章“新的ANEW:评估微博中用于情感分析的单词列表”中找到我的单词列表的局限性调查。该文章可从我的主页获得。

请注意unicode(s, 'utf-8')代码中缺少unicode(s, 'utf-8') (出于教学目的)。

收藏
评论

祝你好运。

情感在很大程度上取决于上下文,而在Twitter上发布文化会使问题变得更糟,因为大多数推文都没有提供上下文信息 。 Twitter的全部意义在于,您可以利用大量共享的“真实世界”上下文,以非常短的消息形式进行有意义的交流。

如果他们说视频很差,那意味着差还是

一位语言学教授有一天在上课。她说:“在英语中,双重否定构成肯定。在某些语言中,例如俄语,双重否定仍然是否定。但是,没有语言可以使双重肯定构成否定。”

房间后面传来一个声音,“是的。。。对。”

收藏
评论

感谢大家的建议,它们确实非常有用!我最终使用了朴素贝叶斯分类器,该分类器是我从这里借来的。我首先给它提供了好/坏关键字列表,然后通过利用用户反馈添加了“学习”功能。原来工作得很好。

我的工作的完整细节,如博客文章中所述

同样,您的帮助非常有用,非常感谢!

收藏
评论

对于大多数这类应用程序,您必须投放大量自己的代码来进行统计分类任务。正如Lucka所建议的那样,只要您的目标不干扰其许可证的非商业性质,NLTK就是在Python中进行自然语言操作的理想工具。但是,我建议使用其他软件包进行建模。我还没有找到许多可用于Python的强大高级机器学习模型,因此我将建议一些易于与Python配合使用的独立二进制文件。

您可能对Advanced Discriminative Modeling的工具包感兴趣, 该工具包可轻松与Python交互。这已用于自然语言处理各个领域中的分类任务。您还可以选择许多不同的模型。我建议您从最大熵分类开始,只要您已经熟悉实现朴素贝叶斯分类器即可。如果不是这样,您可能希望对其进行研究并编写代码,以真正真正地了解作为机器学习任务的统计分类。

得克萨斯大学奥斯汀分校的计算语言学小组开设了课程,其中大多数项目都使用了这一出色的工具。您可以查看Computational Linguistics II的课程页面,以了解如何使其发挥作用以及它以前服务于哪些应用程序。

相同的另一个很好的工具是Mallet 。 Mallet之间的区别是,有更多的文档和更多可用的模型(例如决策树),并且它使用Java,在我看来,这会使它变慢一些。 Weka是一个大包装中的一整套整套不同的机器学习模型,其中包含一些图形化内容,但实际上主要是出于教学目的,并不是我真正要投入生产的东西。

祝您工作顺利。真正困难的部分可能是您需要预先进行知识工程的数量,以便您对模型可以从中学习的“种子集”进行分类。它需要相当大,这取决于您是在进行二进制分类(快乐还是悲伤)或整个情绪范围(这将需要更多)。确保保留一些工程数据以进行测试,或者运行十倍测试或删除一项测试,以确保在将数据发布之前,您实际上在预测方面做得很好。最重要的是,玩得开心!我认为,这是NLP和AI的最佳部分。

收藏
评论

我认为您可能会发现很难找到想要的东西。我所知道的最接近的东西是LingPipe ,它具有一些情感分析功能 ,可以在有限的开放源代码许可下使用,但使用Java编写。

同样,情感分析系统通常是通过对产品/电影评论数据进行培训而开发的,该数据与平均推文存在显着差异。它们将针对带有多个句子的文本进行优化,所有句子都围绕同一主题。我怀疑您最好自己建立一个基于规则的系统,也许基于匹兹堡大学提供的情感术语词典。

请查看We Feel Fine以非常漂亮的界面(和twitrratr )实现类似想法的实现。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号