标题说明了一切; 我有一个SQL数据库的在线交谈文本水泄不通。 我已经做了最该项目在Python的,所以我想做到这一点使用Python的NLTK库(除非有强有力的理由不)。
该数据是由主题 , 用户名和邮政主办。 每个线程都或多或少的重点是我感兴趣的分析范畴的讨论一个“产品”。 最终,当这结束后,我想有从每个用户对任何他们在某些时候讨论了产品的估计意见(喜欢/不喜欢那种交易)。
所以,我想知道:
1) 我如何去确定每一个线程是什么产品? 我正在读关于关键字提取...是正确的方法是什么?
2) 如何确定根据自己的岗位特定用户的情绪? 从我有限的了解,我必须首先“列车” NLTK认识到舆论的某些指标,然后我简单地确定这些话的背景下,当他们出现在文本?
正如您现在可能已经猜到了,我和NLP没有现成的经验。 从我的阅读,到目前为止,我觉得我能处理虽然学习它。 哪怕只是现在基本和原油的工作模式将是巨大的,如果有人能在正确的方向指向我。 谷歌是不是对我很有帮助。
PS我有权分析这些数据(如果它的事项)
培训的分类要求标签数据的训练集和特征提取获得的功能集为每个文本。 之后,你有一个训练有素的分类,可以将其应用到以前看不见的文本(无标签),并获得基于所使用的机器学习算法的分类。 NLTK 提供了一个很好的解释和一些样品一起玩 。
如果你有兴趣的建设正/负情绪的分类,使用自己的训练数据集,我会避免简单的关键字数量,因为它们是不准确的一些原因 (例如积极词的否定:“不开心” )。 另一种,你仍然可以使用大的训练集,而不必手动标注什么,是遥远的监督 。 基本上,这种方法使用的表情符号或其他特定的文本元素嘈杂的标签 。 你还是要选择哪些功能是相关的,但许多研究都具有良好的结果与简单的(分别为个别单词或单词对的)使用对unigram或双字母组 。
所有这一切都可以用Python和NLTK相对容易地实现。 您也可以选择使用类似的工具NLTK培训师 ,这是NLTK的包装,需要更少的代码。
我认为这项研究围棋等。 是最容易理解的一个。 您还可以阅读其他研究遥远的监督 , 遥远的监督情绪分析和情感分析 。
有在NLTK一些内置的分类与培训和分类方法( 朴素贝叶斯 , 最大墒等),但如果你有兴趣使用支持向量机(SVM),那么你应该看看其他地方。 技术上NLTK提供了一个SVM类 ,但它实际上只是一个包装PySVMLight ,这本身就是一个包装SVMLight ,用C写的,我与这种方法的许多问题虽然,而会建议LIBSVM 。
为了确定话题,许多人使用简单的关键词,但也有一些更复杂的方法。
你可以培养具有类似的数据集的任何分类看,当你把它应用到你的数据的结果是什么。 例如,NLTK包含电影评论语料库包含1000正面和负面1000评论。 下面是关于如何培养朴素贝叶斯分类器与它的一个示例 。 像亚马逊产品评测数据的一些其他的评论数据集都可以在这里 。
另一种可能性是采取像正反字列表这一个和数据集中的计算它们的频率。 如果你想有一个完整列表,请使用SentiWordNet 。