Python实现爬取并分析电商评论


Posted in Python onJune 19, 2020

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

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

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

部分源数据:

Python实现爬取并分析电商评论

实现过程:

#加载情感分析模块
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实现爬取并分析电商评论

作图的结果:

Python实现爬取并分析电商评论

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过shutil实现快速文件复制的方法
Mar 14 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
python 类之间的参数传递方式
Dec 20 Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python解决12306登录验证码的实现
Apr 18 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 #Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 #Python
Keras设置以及获取权重的实现
Jun 19 #Python
Python包和模块的分发详细介绍
Jun 19 #Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 #Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 #Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 #Python
You might like
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python可跨平台实现获取按键的方法
2015/03/05 Python
分享vim python缩进等一些配置
2018/07/02 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
基于python实现学生信息管理系统
2019/11/22 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
优秀士兵先进事迹
2014/02/06 职场文书
《识字五》教学反思
2014/03/01 职场文书
项目经理岗位职责
2015/01/31 职场文书
《法国号》教学反思
2016/02/22 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
一行Python命令实现批量加水印
2022/04/07 Python