当前位置:   article > 正文

日常笔记-snownlp情感分析计算情感得分

snownlp情感分析

snownlp是Python中的一类库,功能很多,这篇笔记涉及到其中的情感分析模块。

snownlp文本分类功能将原始评论分为正负情感两个数据集,返回值为情绪的概率。情感评分在[0,1]之间,越接近1,情感表现越积极,越接近0,情感表现越消极。

举个例子:

  1. from snownlp import SnowNLP
  2. from snownlp import sentiment
  3. s=SnowNLP(u'这个东西真的很赞')
  4. print(s.words) #返回分词结果
  5. print(s.sentiments) #返回该句话的情感得分

输出情感得分结果为:0.96733,靠近1,说明这条评论是积极的,用户评价偏好!

开始进入案例,运用调查数据的评论文字:

  1. # 读如数据并显示数据的前五条
  2. import pandas as pd
  3. df = pd.read_excel("C:/Users/admin/Desktop/pinglun.xlsx") #去掉一些特殊符号,只留下纯文本评论,去掉无
  4. df.head()

注:1.考虑到有些用户有刷评论的原因,故去掉整句为特殊符号的句子;2.“无”本身的情感得分为0.4,偏消极,但实际过程中“无”为目前没有评价,变中性,故本次中“无”的占比较大,以防对最后结果产生影响,在此处去掉。实际应用时,视具体情况而定!

  1. from snownlp import SnowNLP
  2. def get_sentiment_cn(text):
  3. s = SnowNLP(text)
  4. return s.sentiments
  5. df["sentiment"] = df.comments.apply(get_sentiment_cn)
  6. df.head()

   

将得分apply在comments后面。

round(df.sentiment.mean(),2)   #返回情感得分的均值

 返回情感得分的均值,并保留两位小数。

  1. pos=0
  2. neg=0
  3. for i in df.sentiment:
  4. if i >=0.5:
  5. pos +=1
  6. else:
  7. neg +=1
  8. print(f"积极的评论占比:{round(pos/len(df.comments)*100,2)}%")
  9. print(f"消极的评论占比:{round(neg/len(df.comments)*100,2)}%")

以0.5为分界点,大于为积极,小于为消极,进行两面的评论占比计算。

文章参考:[Python][snownlp]基于情感词典的情感分析 - 小白的学习笔记 (corina.cc)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/72761
推荐阅读
相关标签
  

闽ICP备14008679号