2010-05-14 30 views
17

我正在着手NLP项目进行情绪分析。使用样本数据或Web服务的句子NLTK python的情感分析?

我已经成功安装了Python的NLTK(看起来像是一个很棒的软件)。但是,我很难理解如何使用它来完成我的任务。

这是我的任务:

  1. 我先从一个较长的数据块(可以说几百微博对英国大选的从他们的web服务对象)
  2. 我想打破这件事(或信息不超过100个字符)(我想我可以在python中做这个)?
  3. 然后搜索该句子中特定实例的所有句子,例如“戴维·卡梅伦”
  4. 然后我想在每个句子检查正/负面情绪,因此指望他们

注:我不是真的担心太多的准确性,因为我的数据集都很大,也不要过分担心讽刺。

下面是我遇到的麻烦:

  1. 所有数据集,我可以找到例如NLTK附带的语料库电影评论数据不在web服务格式中。看起来这已经完成了一些处理。据我所见,处理(斯坦福)是通过WEKA完成的。 NLTK不可能自己做这一切吗?这里所有的数据集已经被组织成正/负例如极性数据集http://www.cs.cornell.edu/People/pabo/movie-review-data/这是如何完成的? (通过情绪组织句子,这绝对是WEKA?还是别的吗?)

  2. 我不确定我理解为什么WEKA和NLTK会一起使用。看起来他们做同样的事情。如果我先用WEKA处理数据以找到感情,为什么我需要NLTK?有没有可能解释为什么这可能是必要的?

我发现有几个脚本可以接近此任务,但都使用相同的预处理数据。是不是可以自己处理这些数据来找到句子中的情感,而不是使用链接中给出的数据样本?

任何帮助非常感谢,并会节省我很多头发!

干杯柯

回答

12

电影审查数据已经被打上了人类为阳性或阴性(谁提出进行审查的人给了电影是用来确定极性评级)。这些黄金标准标签允许您培训分类器,然后您可以将其用于其他电影评论。您可以使用该数据在NLTK中训练分类器,但将结果应用于选择推文可能不如随机猜测正面或负面的准确。或者,您可以自行将几千条推文标记为正面或负面,并将其用作您的训练集。

对于使用朴素贝叶斯与NLTK情感分析的描述:

然后在该代码的http://streamhacker.com/2010/05/10/text-classification-sentiment-analysis-naive-bayes-classifier/,而是采用了电影的主体,使用自己的数据来计算字计数(在word_feats方法)。

+0

是的,我结束了一些搜索后,在网站上,但我想我有点卡住如何获得每个审查的统计。我如何使用nltk给我一个1或0的pos/neg的评论ID列表?欢呼声ke – 2010-05-18 13:45:24

+0

对未来的读者可能有用:电影评论语料库具有类别“pos”和“neg”。要获得“neg”类型中的fileids列表,只需使用'movies_reviews.fileids(“neg”)'。您也可以通过说出例如'movie_reviews.sents(categories = [“neg”])''直接提取否定类别中的所有文本。 (这些方法适用于所有分类的nltk语料库。要列出语料库中的类别,请使用'corpus.categories()'。) – alexis 2014-01-08 19:42:05

1

为什么不使用WSD。使用消歧工具来查找感官。并且使用地图极性来代替单词。在这种情况下,与字索引极性相比,您将获得更精确的结果。

+1

听起来很酷。你有任何文件或应用程序提及此? – mixdev 2010-07-02 12:12:41