赞
踩
snownlp是Python中的一类库,功能很多,这篇笔记涉及到其中的情感分析模块。
snownlp文本分类功能将原始评论分为正负情感两个数据集,返回值为情绪的概率。情感评分在[0,1]之间,越接近1,情感表现越积极,越接近0,情感表现越消极。
举个例子:
- from snownlp import SnowNLP
- from snownlp import sentiment
-
- s=SnowNLP(u'这个东西真的很赞')
- print(s.words) #返回分词结果
- print(s.sentiments) #返回该句话的情感得分
输出情感得分结果为:0.96733,靠近1,说明这条评论是积极的,用户评价偏好!
开始进入案例,运用调查数据的评论文字:
- # 读如数据并显示数据的前五条
- import pandas as pd
- df = pd.read_excel("C:/Users/admin/Desktop/pinglun.xlsx") #去掉一些特殊符号,只留下纯文本评论,去掉无
- df.head()
注:1.考虑到有些用户有刷评论的原因,故去掉整句为特殊符号的句子;2.“无”本身的情感得分为0.4,偏消极,但实际过程中“无”为目前没有评价,变中性,故本次中“无”的占比较大,以防对最后结果产生影响,在此处去掉。实际应用时,视具体情况而定!
- from snownlp import SnowNLP
-
- def get_sentiment_cn(text):
- s = SnowNLP(text)
- return s.sentiments
-
- df["sentiment"] = df.comments.apply(get_sentiment_cn)
- df.head()
将得分apply在comments后面。
round(df.sentiment.mean(),2) #返回情感得分的均值
返回情感得分的均值,并保留两位小数。
- pos=0
- neg=0
- for i in df.sentiment:
- if i >=0.5:
- pos +=1
- else:
- neg +=1
- print(f"积极的评论占比:{round(pos/len(df.comments)*100,2)}%")
- print(f"消极的评论占比:{round(neg/len(df.comments)*100,2)}%")
以0.5为分界点,大于为积极,小于为消极,进行两面的评论占比计算。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。