码迷,mamicode.com
首页 > 编程语言 > 详细

python实现电商评论的情感分析

时间:2020-06-17 23:34:43      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:遍历   读取文本   入门   imp   port   百分比   lazy   atp   预测   

  现如今各种APP、微信订阅号、微博、购物网站等网站都允许用户发表一些个人看法、意见、态度、评价、立场等信息。针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息。例如对商品评论的分析,可以了解用户对商品的满意度,进而改进产品;通过对一个人分布内容的分析,了解他的情绪变化,哪种情绪多,哪种情绪少,进而分析他的性格。怎样知道哪些评论是正面的,哪些评论是负面的呢?正面评价的概率是多少呢?

  利用python的第三方模块SnowNLP可以实现对评论内容的情感分析预测,SnowNLP可以方便的处理中文文本内容,如中文分词、词性标注、情感分析、文本分类、提取文本关键词、文本相似度计算等。大概大于等于0.5,可以判断为正面评价——积极情感,小于0.5,可以判断为负面评价——消极情感。

  下面分析一组京东上某产品的评论数据并生成折线图:

部分源数据:

技术图片

 

 实现过程:

#加载情感分析模块
from snownlp import SnowNLP
#from snownlp import sentiment
import pandas as pd
import matplotlib.pyplot as plt
#导入样例数据
aa =F:\\python入门\\python编程锦囊\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\09\\data\\京东评论.xls
#读取文本数据
df=pd.read_excel(aa)
#提取所有数据
df1=df.iloc[:,3]
print(将提取的数据打印出来:\n,df1)
#遍历每条评论进行预测
values=[SnowNLP(i).sentiments for i in df1]
#输出积极的概率,大于0.5积极的,小于0.5消极的
#myval保存预测值
myval=[]
good=0
bad=0
for i in values:
   if (i>=0.5):
       myval.append("正面")
       good=good+1
   else:
       myval.append("负面")
       bad=bad+1
df[预测值]=values
df[评价类别]=myval
#将结果输出到Excel
df.to_excel(F:\\python入门\\python编程锦囊\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\09\\data\\result2.xls)
rate=good/(good+bad)
print(好评率,%.f%% % (rate * 100)) #格式化为百分比
#作图
y=values
plt.rc(font, family=SimHei, size=10)
plt.plot(y, marker=o, mec=r, mfc=w,label=u评价分值)
plt.xlabel(用户)
plt.ylabel(评价分值)
# 让图例生效
plt.legend()
#添加标题
plt.title(京东评论情感分析,family=SimHei,size=14,color=blue)
plt.show()

Excel结果:

技术图片

 

 作图的结果:

技术图片

 

 技术图片

 

python实现电商评论的情感分析

标签:遍历   读取文本   入门   imp   port   百分比   lazy   atp   预测   

原文地址:https://www.cnblogs.com/xiao02fang/p/13155124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!