之后我们就可以简单的考验不合分类器和不合的特点选择的结不雅
- import sklearn
- .....
- print 'NuSVC`s accuracy is %f' %score(NuSVC())
1. 我选择了六个分类算法,可以先看到它们在应用所有词作特点时的效不雅:
数据是人工已经标注好的文本,有一部分积极的文本,一部分是消极的文本。
- BernoulliNB`s accuracy is 0.790000
- MultinomiaNB`s accuracy is 0.810000
- LogisticRegression`s accuracy is 0.710000
- SVC`s accuracy is 0.650000
- LinearSVC`s accuracy is 0.680000
- NuSVC`s accuracy is 0.740000
2. 再看应用双词搭配作特点时的效不雅(代码修改如下处所即可)
结不雅如下:
- BernoulliNB`s accuracy is 0.710000 MultinomiaNB`s accuracy is 0.750000 LogisticRegression`s accuracy is 0.790000 SVC`s accuracy is 0.750000 LinearSVC`s accuracy is 0.770000 NuSVC`s accuracy is 0.780000
3. 再看应用所有词加上双词搭配作特点的效不雅
posFeatures = pos_features(bigram_words) negFeatures = neg_features(bigram_words)
结不雅如下:
- BernoulliNB`s accuracy is 0.710000
- MultinomiaNB`s accuracy is 0.750000
- LogisticRegression`s accuracy is 0.790000
- SVC`s accuracy is 0.750000
- LinearSVC`s accuracy is 0.770000
- NuSVC`s accuracy is 0.780000
可以看到在不选择信息量丰富的特点时,仅仅应用全部的词或双词搭配作为特点,分类器的效不雅并不睬想。
接下来将应用卡方统计量(Chi-square)来选择信息量丰富的特点,再用这些特点来练习分类器。
4. 枷⒚鹋息量丰富的词,并以此作为分类特点
- word_scores = create_word_scores()
- best_words = find_best_words(word_scores, 1500) #选择信息量最丰富的1500个的特点
- posFeatures = pos_features(best_word_features)
- negFeatures = neg_features(best_word_features)
结不雅如下:
- BernoulliNB`s accuracy is 0.870000
- MultinomiaNB`s accuracy is 0.860000
- LogisticRegression`s accuracy is 0.730000
- SVC`s accuracy is 0.770000
- LinearSVC`s accuracy is
推荐阅读
进修怎么在保护 root 暗码的安然性的同时,为可托用户付与所治理的收集功能和特定办事的权限。我比来写了一个简短的 Bash 法度榜样来将 MP3 文件大年夜一台收集主机的 USB 盘中拷贝到另一台收集主机上去。拷贝出来的>>>详细阅读
本文标题:使用python+机器学习方法进行情感分析(详细步骤)
地址:http://www.17bianji.com/lsqh/40229.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示