2010-08-11 256 views
8

你能告诉我一个简单的例子,用http://www.nltk.org/code来判断一个字符串是关于一个快乐还是不安的情绪?我可以使用NLTK来确定评论是正面评论还是负面评论?

+0

可能。你应该研究分类器的功能;在给定训练集的情况下,你可以将心情分类为正面或负面。 – 2010-08-11 23:16:03

+0

参见http://stackoverflow.com/questions/2162718/python-nltk-code-snippet-to-train-a-classifier-naive-bayes-using-feature-freque http://stackoverflow.com/questions/ 1082789/simple-sentiment-analysis http://stackoverflow.com/questions/573768/sentiment-analysis-for-twitter-in-python http://stackoverflow.com/questions/2832394/sentiment-analysis-with-nltk- python-for-sentences-using-sample-data-or-webservice – 2010-08-17 20:38:35

回答

0

不确定。

这是一项任务,远远超出了NLTK或任何已知或可以实际想象的语法分析器的能力。查看NLTK Book,看看它可以完成哪些任务,这远远不符合你陈述的目的。

作为一种廉价的例子:

我真的使用纸张来训练我的狗喜欢。

解析了NLTK,你可以得到

[('I', 'PRP'), ('really', 'RB'), ('enjoyed', 'VBD'), 
('using', 'VBG'), ('your', 'PRP$'), ('paper', 'NN'), 
('to', 'TO'), ('train', 'VB'), ('my', 'PRP$'), ('dog', 'NN')] 

凡解析树会告诉我,“享受”是简单句的中心(过去时态)动词。享受一些东西很好。培训一些东西通常是一件好事。名词,名词,比较词等都是相对中性的。所以给这个0.90的好成绩。

除了我真的是指我用纸打我的狗,或者让它在你可能认为不是好东西的纸上排泄。

雇用一个人进行此识别任务。

增加对那些谁想到,即使是训练的分类是多大用处的:

分类从客户的真正检讨语料用你喜欢上你喜欢的任何数据集训练的任何分类这个真实的项目:

本相机在 自动模式下持续自动聚焦,发出嗡嗡声, 无法停止。这将是真的 好,如果他们已经给了一个选项 停止这种自动聚焦。如果您希望 在 图片上有日期和时间,则只能通过它们的 软件从图像的元数据中读取图像的日期 和时间。 所以,如果你使用你的读卡器和 复制图像 - 你必须再次 打开他们通过他们的软件到 把日期和时间。在这方面, 没有直接的方式来添加日期 和时间 - 你必须说'打印图像'到不同的目录,其中有 一个选项来指定日期和时间 。即使是最轻微的摇晃 完全扭曲了你的形象。室内 图像不是很清楚。你得到 有闪光灯'开'来得到它,即使 你的房间很亮。镜头盖是 真的很烦人。拍摄的电影剪辑 在 中总会有一些“噪音” - 你无法避免。

我得到的最糟糕的情绪分类是“完全模棱两可”,但人类可以很容易地确定这是什么,但不是免费的。这不是一个随机挑选的数据,而是一个没有“仇恨”或“suxz”或类似情况而被选择为负面偏见的数据。

+2

另请参阅http://en.wikipedia.org/wiki/Sentiment_analysis – msw 2010-08-11 23:08:49

+2

我不会说这超出了NLTK。我的第一个想法是情绪分析,你连接到。给定一个相当大的训练语料库,你可以训练一个分类器给你一个体面的“心情”的近似值。 – Cerin 2010-08-12 12:07:42

+0

@Chris S:但这不是问题的问题;它要求一个没有的简单例子。即使是分类器,也可以根据维基百科链接的各种语料库进行真实的文本输入。对于那些简单的陈述仍然很麻烦的领域来说,应付细微的差别,讽刺,暗示,以及吝啬的赞美是非常困难的。 – msw 2010-08-12 12:34:12

4

NLTK不能开箱即用,但如果您正在寻找该领域的一些相关研究,请参阅Offensive Language Detection上的这篇论文。可以采用相同的方法来检测不冒犯/无害的评论,而是感到高兴/不高兴。此项目中用于文本分类的主要软件包称为WEKA,并使用多个分类器(根据前面的示例进行培训)来确定语言是否令人反感(并且此方法使用可调阈值)。

0

您正在寻找一种技术,使用机器学习分类器来确定一段文字是正面还是负面。许多研究小组(例如http://research.yahoo.com/pub/2387http://lingcog.iit.edu/doc/appraisal_sentiment_cikm.pdf)对此进行了各种不同的尝试,我们可以在确定产品评论是正面还是负面时获得约80%至90%的准确性。

由于您的问题很简短,对于我来说,确定产品评论是正面还是负面与您尝试完成的任务相同还是仅仅是相关任务并不明显,但我建议您使用贝叶斯分类器(NLTK应该能够处理)进行袋分类分类很简单,然后根据精确度如何改进您的技术。

不幸的是,我从来没有使用NLTK(也不是Python),所以我不能给你一个如何使用NLTK的代码示例。

+0

NLTK“自然语言处理”书中包含了一个关于文本是否为正面的例子。 OP的问题和应用对于讨论和演示的算法可能太微妙了,但这只是一个开始。 – winwaed 2010-10-28 20:27:08