python评论情感分析计算分数值_使用python+机器学习方法进行情感分析(详细步骤)...

best_words = set([wforw, sinbest_vals])

returnbest_wordsword_scores_1 = create_word_scores()

word_scores_2 = create_word_bigram_scores()

3. 把选出的┞封些词作为特点(这就是选择了信息量丰富的特点)def best_word_features(words):returndict([(word,True)forwordinwords if wordinbest_words])

三、检测哪中特点选择办法更优

见构建分类器,考验分类精确度,选择最佳分类算法

第一步,载入数据。

要做情感分析,重要的是要稀有据。

文本是已经分词去停用词典商批评论,情势大年夜致如下:[[word11, word12, ... word1n], [word21, word22, ... , word2n], ... , [wordn1, wordn2, ... , wordnn]]

这是一个多维数组,每一维是一条评论,每条评论是已经又该评论的分词构成。

我用pickle 存储了响应的数据,这里直接载入即可。

第二步,使积极文本的数量和消极文本的数量一样。fromrandom import shuffle

shuffle(pos_review) #把积极文本的分列随机化

size=int(len(pos_review)/2 - 18)

pos = pos_review[:size]

neg = neg_review

我这里积极文本的数据正好是消极文本的2倍还多18个,所认为了均衡两者数量才如许做。def pos_features(feature_extraction_method):

posFeatures = []

....

negFeatures.append(negWords)

returnnegFeatures

这个须要用特点选择办法把文本特点化之后再付邮攀类标签。

第四步、把特点化之后的数据数据瓜分为开辟集和测试集train = posFeatures[174:]+negFeatures[174:]

devtest = posFeatures[124:174]+negFeatures[124:174]

test = posFeatures[:124]+negFeatures[:124]

这里把前124个数据作为测试集,中心50个数据作为开辟测试集,最后剩下的大年夜部分数据作为练习集。

在把文本转化为特点表示,并且瓜分为开辟集和测试集之后,我们就须要针对开辟集进行情感分类器的开辟。测试集就放在一边临时不管。

开辟集分为练习集(Training Set)和开辟测试集(Dev-Test Set)。练习集用于练习分类器,而开辟测试集用于考验分类器的精确度。

为了考验分类器精确度,必须比较“分类器的分类结不雅”和“人工标注的┞俘确结不雅”之间的差别。

所以:第一步,是要把开辟测试集中,人工标注的标签和数据瓜分开来。

第二步是使悠揭捉?练集练习分类器;

第三步是用分类器对开辟测试集琅绫擎的数据进行分类,给出分类猜测的标签;第四步是比较分类标签和人工标注的差别,计算出精确度。

一、瓜分人工标注的标签和数据

二到四、可以用一个函数来做def score(classifier):

classifier = SklearnClassifier(classifier) #在nltk 中应用scikit-learn 的接口

classifier.train(train) #练习分类器

pred = classifier.batch_classify(testSet) #对开辟测试集的数据进行分类,给出猜测的标签

returnaccuracy_score(tag_test, pred) #比较分类猜测结不雅和人工标注的┞俘确结不雅,给出分类器精确度

推荐阅读

进修怎么在保护 root 暗码的安然性的同时,为可托用户付与所治理的收集功能和特定办事的权限。我比来写了一个简短的 Bash 法度榜样来将 MP3 文件大年夜一台收集主机的 USB 盘中拷贝到另一台收集主机上去。拷贝出来的>>>详细阅读

地址:http://www.17bianji.com/lsqh/40229.html

你可能感兴趣的:(python评论情感分析计算分数值_使用python+机器学习方法进行情感分析(详细步骤)...)