1.分析背景

任何2C的产品都避免不了海量的用户评论/反馈,这恐怕对普通用户来说,是最直接的向产品表达看法的途径了,用户的评价可能会间接影响相应产品的销量以及产品的整体排名,如果能正确分析这些评论,就可以及时发现产品存在的问题并进行优化了。

2.数据集介绍

数据集来自kaggle,是一个女装电子商务数据集,包含了2万多条评论数据,共有11个字段:

3.提出问题

1.整体打分情况是怎么样的,差评中哪些产品占比较高

2.给差评的用户遇到了什么问题

3.是否有错评的客户,是什么原因

4.什么样的评价会被阅读者认为有用

分析思路

4.数据清洗

首先:导入文件

import pandas as pd

import matplotlib as plt

womenData=pd.read_csv('C:/Users/LENOVO/Desktop/data/Womens Clothing E-Commerce Reviews.csv')

womenData.head()

1.选择子集

我们发现第一列序号列没有命名,且和索引列重复了,我们将其删除

womenData.drop('Unnamed: 0',axis=1,inplace=True)

2.列名重命名

这里发现英文的列名并不是很好理解,因此把列名转换成中文,方便理解和后续操作

littleDic={'Clothing ID':'服装ID','Age':'年龄','Title':'标题','Review Text':'内容','Rating':'评分',

'Recommended IND':'是否推荐','Positive Feedback Count':'认可数','Division Name':'第一大类',

'Department Name':'第二大类','Class Name':'第三大类'}

womenData.rename(columns=littleDic,inplace=True)

womenData.head()

3.缺失数据处理

womenData.info()我们发现内容、评分、类别都有缺失

因为评价的标题是有字数限制的,且缺失的较多,所以我们以内容为主

womenData1=womenData.dropna(subset=['内容'],how='any')

womenData1=womenData1.dropna(subset=['第一大类'],how='any')

womenData1.info()

4.数据类型转换

转换字符串的类型

womenData1['标题']=womenData1['标题'].astype('str')

womenData1['内容']=womenData1['内容'].astype('str')

womenData1['第一大类']=womenData1['第一大类'].astype('str')

womenData1['第二大类']=womenData1['第二大类'].astype('str')

womenData1['第三大类']=womenData1['第三大类'].astype('str')

5.数据排序

这里不需要排序

6.异常值处理

womenData1.describe()

没有异常值,不需要处理

7.计算部分列

def count_string(x):

list=[]

for i in x:

i1=i.replace(' ','')

i2=len(i1)

list.append(i2)

list1=pd.Series(list)

return list1

x=womenData1['内容']

womenData1['内容字数']=count_string(x)

womenData1.head()

x=womenData1['内容']

womenData1['内容字数']=count_string(x)

#将内容字数中为空值的删除

womenData1=womenData1.dropna(subset=['内容字数'],how='any')

womenData1.shape()

5.分析内容

问题1:总体评分的情况怎么样?

import matplotlib.pyplot as plt

rating=womenData1.groupby('评分').agg({'评分':'count'})

labels=rating.index

sizes=rating.values

colors='lightgreen','gold','lightskyblue','lightcoral','grey'

explode=0,0,0,0,0

plt.pie(sizes,explode=explode,labels=labels,

colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)

plt.axis('equal')

plt.show()从图中可以看出约77%的人打了好评(4-5星),约10%的用户打了差评,总体评分尚可

问题2:在差评中占比较高的产品是什么?

这里我们用首先看下第一大类,观察是否有分布集中的现象:

#首先将差评的行筛选出来

judge2=(womenData1.loc[:,'评分']<=2) & (womenData1.loc[:,'是否推荐']==0)

bad_comment=womenData1.loc[judge2,:]

bad_comment1=bad_comment.loc[:,'内容']

bad_1=bad_comment.groupby(['第一大类']).agg({'评分':'count'})

bad_1.plot(kind='bar')

plt.show()从图中我们可以看到intimates(贴身内衣的差评较少),差评集中在另外两类产品中

因此对于这两类产品我们需要单独分析出现了什么问题?

因为第二大类和第三大类的描述差不多,因此我选择更细分的第三大类,

首先我们来看,General的类别中,哪些产品的差评较多

minjudge=bad_comment.loc[:,'第一大类']=='General'

bad_comment_G=bad_comment.loc[minjudge,:]

bad_2=bad_comment_G.groupby(['第三大类']).agg({'评分':'count'})

bad_2.plot(kind='bar')

plt.show()

使用同样的方法,将General petite的产品也提取出来

minjudge1=bad_comment.loc[:,'第一大类']=='General Petite'

bad_comment_GP=bad_comment.loc[minjudge1,:]

bad_3=bad_comment_GP.groupby(['第三大类']).agg({'评分':'count'})

bad_3.plot(kind='bar')

plt.title('General Petite')

plt.show()

我们发现General petite/General(一个是小号,一个是普通尺码)这两类,虽然尺码不同,但是差评较多的产品是一致的,因此我们后续不进行细分,统一分析手套、裙子、针织衫遭到差评较多的原因是什么。

现在我们将负面评价的内容进行关键词摘取,分析大部分用户遇到了什么问题

首先我们来看裙子的问题:

#提取裙子的负面评价

judge3=(womenData1.loc[:,'评分']<=2) & (womenData1.loc[:,'是否推荐']==0) & (womenData1.loc[:,'第三大类']=='Dresses')

bad_comment_D=womenData1.loc[judge3,:]

bad_comment_D1=bad_comment_D.loc[:,'内容']

from jieba.analyse import *

#因为我只想要形容词,因此将一些副词以及代词删除

list5=['was','and','so','like','me','my','I','but','have','has','really','would','will','just','much','or','they','them',

'because','then','than','more','look','looked','wear','up','done','no','large','cute','didn','did','top','too','no',

'am','even','love','when','were','also','looks','had','very','dress','could','Ordered','out','there']

#写一个提取关键词的函数,后续就可以直接使用了

def catch_comment(x):

list1=[]

for i in x:

list1.append(i)

str1=''.join(list1)

for keyword, weight in extract_tags(str1,topK=100,withWeight=True):

if keyword in list5:

continue

else:

print('%s %s' % (keyword, weight))

catch_comment(bad_comment_D1)

我们发现其中排名比较靠前的关键词有形容材质的(fabric,material,made),也有尺寸的(fit,size,small,petite),也有形容身体部位的(back,waist),也有颜色的问题

现在我们来看看Knits,针织衫有什么问题

judge4=(womenData1.loc[:,'评分']<=2) & (womenData1.loc[:,'是否推荐']==0) & (womenData1.loc[:,'第三大类']=='Knits')

bad_comment_K=womenData1.loc[judge4,:]

bad_comment_K1=bad_comment_K.loc[:,'内容']

catch_comment(bad_comment_K1)

根据关键词,我们发现针织衫也有类似的问题,也有尺寸、材质、颜色的问题

最后,我们来看下Blouses,女士衬衫

judge5=(womenData1.loc[:,'评分']<=2) & (womenData1.loc[:,'是否推荐']==0) & (womenData1.loc[:,'第三大类']=='Blouses')

bad_comment_B=womenData1.loc[judge5,:]

bad_comment_B1=bad_comment_B.loc[:,'内容']

catch_comment(bad_comment_B1)我们发现也是同样的问题

3.是否有错评的客户,占比多少

部分用户可能存在打了差评,却推荐的情况,这种我们将其视为错误评价

miss_comment=(womenData1.loc[:,'评分']<=2) & (womenData1.loc[:,'是否推荐']==1)

total=womenData1.shape[0]

miss=womenData1.loc[miss_comment,:].shape[0]

miss_rating=miss/total*100

miss_rating,miss这种情况占比虽然不大,但是单独来看还是有将近100位用户打了低分却推荐的

因为可用的信息较少,这里只假设用户可能按错了:

假设1:用户在选择推荐时选择错误

假设2:用户打分时打错了

根据这两种假设,我们来看下这部分评价错误内容时什么(处理方法和前面一致,不赘述)

我们在关键词截取中发现,排名靠前的关键词并没有出现比较负面的词语,比如disappointed这类,却出现了评价是较好的词语:(great,well,loved,beautiful,pretty),因此对于客户来说,打分时会有手滑按错的可能性,比如商品很好很满意,却打了差评,但评价对于一件商品来说,如果有这种手滑出现的差评,就会拉低出现整体评价,因此后续需要采取优化措施。

4.什么样的评价会被阅读者认为有用?

这里我们只选取有用,指哪些高分的评价并且受到阅读者认可的内容,

假设1.描述越长,阅读者越认可我们发现内容字数和认可数并没有太大的关系

假设2.和推荐有关,只要显示推荐,认可数就会高相关性也不是很大

我们来看下被阅读者认为有用的评价的内容是什么样的

首先认可数中最小的为0,这种指的就是不被认可,无人认可,所以我们在取平均值的时候需要把为0的认可数排除掉

agree=womenData1.loc[:,'认可数']>0

h=womenData1.loc[agree,:]

h.loc[:,'认可数'].describe()我们可以看到平均值是5左右

ave_score=5

high_score=(womenData1.loc[:,'评分']>=4) & (womenData1.loc[:,'评分']<=5) & (womenData1.loc[:,'是否推荐']==1) & (womenData1.loc[:,'认可数']>=ave_score)

high_comment=womenData1.loc[high_score,:]

catch_comment(high_comment.loc[:,'内容'])

我们发现,最靠前的是尺寸,因此相较于之前差评的原因,可能正确描述尺寸会更受到阅读者的青睐,其次是材质的描述,最后是感受的描述,比如(great,perfect,nice,soft)这种切实的感受更容易引起阅读者的注意。

得出结论:

1.整体评分情况尚可,差评率约10%左右,差评率需要和之前以及行业的整体情况进行比较,但是由于部分数据不足,本文无法进行比较。

2.差评中占比较高的产品是女士衬衫,裙子,以及针织衫,普通尺寸和小尺寸都出现了同样的问题,差评较多的原因是尺寸不合适,因此需要在主页面上标注清楚尺寸或者重新测量尺寸,也有对材质不满意的问题,因此对于材质需要标注清楚,或者重新选择舒适度较高的材

3.会有用户对产品满意但是打了低分的情况,对于已打低分的客户,可以发送邮件或其他方式提醒修改相应评分,以及为了避免再次出现这种情况,打分界面需要标注每分对应的情况。

4.受到阅读者认可的评价特征有:尺寸描述、材质描述以及自身感受描述,因此评价框可以设置评价模板,可以让用户自行选择对以上3个维度的描述。

python 好用的库存尾货女装_利用python对女装评价进行分析相关推荐

  1. python好用的库存尾货女装_服装库存尾货生意怎么做?

    有一些朋友想做品牌库存服装尾货生意,但是对这方面又不是很懂,服装八场整理了一些进货注意事项,希望对大家有所帮助.对初入行朋友们来讲,一定要多做一些了解. 最应该注意以下进货事项: 1.是要低价 其实既 ...

  2. python 好用的库存尾货女装_品牌女装库存尾货服装赚钱的秘密你们怎么可以不知道呢?...

    很多人都觉得服装是一个很赚钱的行业,其实小编也是这么觉得的.想起当年自己的同情心就想拍自己一巴掌,你们买衣服的时候会觉得讲价而心有愧疚的吗?想当年小编都是不讲价的,因为感觉自己讲价之后他们就会亏了.现 ...

  3. python好用的库存尾货女装_日用百货尾货库存回收给您好的建议

    义乌市敬居日用百货商行从事饰品.箱包.服装.鞋帽.围巾.布料等货物积压库存尾货回收,我们热情的期盼与您的合作,随时帮您解决积压库存的困扰. 回收库存,库存指的是仓库中处于暂时停滞状态的物资.这里要明确 ...

  4. python好用的库存尾货女装_服装淡季,店主如何处理库存尾货?

    服装淡季,很多实体店主,一批货卖下来,总有那么十几件尾货库存死活卖不动,收起来吧,又怕发霉,特价也甩卖不出,那么,建群秒杀是个不错的方法! 这是我们服装社群群主 @东北涛哥在杭州 ,点开这个就可以看到 ...

  5. python 好用的库存尾货女装_女装店主:做尾货有人能赚大钱,新手千万别碰,文茵告诉你原因...

    大家好,我是时尚女装买手文茵. ---- 前面这些衣服看起来很舒服吧? 新款看起来就是更漂亮的. 最近有很多个朋友都在说,尾货的衣服价格很便宜,甚至有的衣服平均下来一两块钱就能拿到,为什么不去做这种生 ...

  6. python好用的库存尾货女装_品牌女装尾货实体店经营要学会用这4大店铺布局方法!...

    品牌女装尾货实体店经营要学会用这4大店铺布局方法! 店铺布局是指营业设备,如货架.柜台.陈列橱等的摆设.店铺布局的目的是什么?合理的店铺布局,能够充分利用营业面积,便利商品陈列,美化店铺环境,从而吸引 ...

  7. python找列表中相邻数的个数_利用python求相邻数的方法示例

    前言 本文主要给大家介绍了关于利用python求相邻数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 什么是相邻数? 比如5,相邻数为4和6,和5相差1的数,连续相差为1的 ...

  8. python为啥爬取数据会有重复_利用Python来爬取“吃鸡”数据,为什么别人能吃鸡?...

    原标题:利用Python来爬取"吃鸡"数据,为什么别人能吃鸡? 首先,神装镇楼 背景 最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波 ...

  9. python好用的库存尾货女装_Python抓取淘宝女装信息(一)

    本次实战案例以抓取淘宝上连衣裙信息为切入点,共抓取4356件连衣裙产品信息.在此基础上进行初步分析.这里首先感谢@大宇,后期的数据处理与图表制作全靠大神帮助.下面我们进入正式介绍环节. 淘宝.京东.链 ...

最新文章

  1. python中notebook_Jupyter Notebook--学习python必不可少的工具
  2. 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
  3. IE11 统治浏览器市场 Chrome 终超 Firefox
  4. 在python中、列表中的元素可以是_在Python中存储一个列表的元素,在另一个列表中 – 通过引用?...
  5. java的数组查找算法_java数组、排序算法、查找算法详解
  6. 使用Spring Roo进行概念验证
  7. HDOJ 2037 今年暑假不AC 【贪心】
  8. 为Pokémon Go而生的聊天软件GoChat,坐拥百万用户却快要破产
  9. Java内存模型与Jvm内存模型
  10. 网友发给我一个游戏钓鱼网站,我用python渗透了该网站所有信息!
  11. Arduino-LiquidCrystal_I2C 液晶库
  12. python许可证过期_x-pack许可证过期问题解决
  13. Vue路由的页面跳转打开新页面
  14. 上海,夜访大一女生宿舍,满足。
  15. Pygame实战:这款“欢乐打地鼠”小游戏让几亿人“上瘾“?不玩绝对是你的损失。
  16. 医学图像笔记(八)窗宽窗位
  17. SpringBoot企业级开发
  18. wangeditor: 上传图片+上传视频+上传附件(自定义)完整使用
  19. IOS 应用内打开三方地图app直接导航(高德坐标)
  20. AppleScript 实现 imessage 批量推送 苹果推 (亲测通过)

热门文章

  1. HTML快速入门-02-css
  2. 企业快车道上的3个信号灯
  3. ms office excel2013教程 - 合并计算
  4. Win10中如何把语言栏缩到系统托盘
  5. linux安装系统如何查看硬盘,如何检查Linux系统服务器的硬盘是SSD还是HDD?
  6. 初步了解区块链技术落地——FISCO BCOS 快速搭建区块链
  7. 使用r语言进行excel表格的分类与汇总
  8. photoshop使用技巧_如何使用Photoshop创建逼真的漫画
  9. OpenCV入门笔记-更新篇
  10. U-Net论文阅读(逐句翻译+精读)