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之折腾一下目录
Oct 24 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
Python简单实现区域生长方式
Jan 16 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 Python
Python 下载Bing壁纸的示例
Sep 29 Python
python 单机五子棋对战游戏
Apr 28 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
Python递归遍历列表及输出的实现方法
2015/05/19 Python
python动态网页批量爬取
2016/02/14 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python Flask基础教程示例代码
2018/02/07 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
python合并多个excel文件的示例
2020/09/23 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
护士自我鉴定总结
2014/03/24 职场文书
新品发布会策划方案
2014/06/08 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers