之前试着做了这个文本情感分析,百度过一些方法,通过实际操作,本文记录的是正确率比较高且不繁琐的一种方法,现在也记录一下吧,希望以后能养成这个习惯,一些小tips要记录好。
随机抽取的某APP内2000条评论内容(中文形式)作为样本,目的是得出每条评论为正向评论的概率,打分范围是[0-1],此次定义[0,0.5]为负向评论,(0.5,1]为正向评论,观察其分布。
步骤一:
安装snownlp包和pandas包
原因:由于snownlp是使用淘宝评论语料,利用贝叶斯机器学习方法训练出来的模型,所以应用于本次分析比较合适。当然还是使用自己打标的样本训练出的模型正确率会更高啦~
步骤二:
下面是运行的python程序:
from snownlp import SnowNLP
import pandas as pd
#读取2000条评论内容的.txt文件
txt = open('C:/Users/admin/Desktop/评论内容.txt')
text = txt.readlines()
print(text)
#确认读取文件成功,并关闭文件节省资源
print('读入成功')
txt.close()
#遍历每一条评论,得到每条评论是positive文本的概率,每条评论计算完成后输出ok确认执行成功
comments = []
comments_score = []
for i in text:
a1 = SnowNLP(i)
a2 = a1.sentiments
comments.append(i)
comments_score.append(a2)
print('ok')
#将结果数据框存为.xlsx表