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分割文件的常用方法
Nov 01 Python
python使用super()出现错误解决办法
Aug 14 Python
Python 多核并行计算的示例代码
Nov 07 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
python调用java的jar包方法
Dec 15 Python
Python File(文件) 方法整理
Feb 18 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
NumPy排序的实现
Jan 21 Python
python使用多线程+socket实现端口扫描
May 28 Python
python cookie反爬处理的实现
Nov 01 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
生成静态页面的PHP类
2006/07/15 PHP
php动态变量定义及使用
2015/06/10 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
node跨域请求方法小结
2017/08/25 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
python 多个参数不为空校验方法
2019/02/14 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
Python多线程获取返回值代码实例
2020/02/17 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
锦旗标语大全
2014/06/23 职场文书
安全月宣传标语
2014/10/07 职场文书
迎国庆主题班会
2015/08/17 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers