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模拟sql语句对员工表格进行增删改查
Jul 05 Python
python遍历序列enumerate函数浅析
Oct 17 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 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
是否存在第一台收音机的说法
2021/03/01 无线电
新版PHP极大的增强功能和性能
2006/10/09 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
php浏览历史记录的方法
2015/03/10 PHP
php编写简单的文章发布程序
2015/06/18 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
java解析json方法总结
2019/05/16 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
彻底搞懂Python字符编码
2018/01/23 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
厂办主管岗位职责范本
2014/02/28 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书