防脱洗发水是个伪命题?8979 条数据告诉你答案!

作者 | 周志鹏

责编 | maozz

最近,小Q陷入了一个脱发死循环。

照镜子隐隐若现的头皮,洗完头地上乌压压的断发,让他无时无刻不担心自己的发量,一担心怎么办呢?挠头呗!

越脱发,越担忧;越担忧,越挠头;越挠头,越脱发...

“为什么不试试防脱洗发水呢?我有好几个同事在用。”我实在不忍心小Q继续循环下去。

小Q义正言辞:“我听说那些玩意儿没什么用啊!现在产品都喜欢打概念!”

“没有调查就没有发言权,你这样下定论太主观了。要不咱们从数据的角度来论证一下,防脱洗发水是不是个伪命题?”

“有点意思!”小Q来了劲儿。

说干就干。要论证防脱洗发水是不是个伪命题,得先搞清楚谁对防脱洗发水最有发言权。答案显而易见,买过防脱洗发水的朋友,他们对产品的评价,是最简单粗暴的论据。

所以,我们以淘宝为例,爬取5款热销洗发水评价数据,综合分析效果。

数据获取

目前淘宝反爬(尤其是滑块等验证)实在让人头大,但是我发现爬取评价数据并不一定需要和登录滑块硬刚,用selenium是可以绕过的。

部分代码如下,对爬取感兴趣的同学可以在文末链接下载详细代码,不感兴趣的同学直接往下滑:

import pandas as pd
from selenium import webdriver
import random
import os
import time


driver = webdriver.PhantomJS()


def get_page(driver):


    result = pd.DataFrame()
    for i in driver.find_elements_by_xpath('//div[@class = "rate-grid"]/table/tbody/tr'):
        try:
            content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-content"]').text
            #评价日期
            date = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-date"]').text
            #购买产品
            sku = i.find_element_by_xpath('td[@class = "col-meta"]/div[@class = "rate-sku"]').text


            #用户名
            username = i.find_element_by_xpath('td[@class = "col-author"]/div[@class = "rate-user-info"]').text
            append_time = None
            append_content = None


        except:
            content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-premiere"]/div[@class = "tm-rate-content"]').text
            #评价日期
            date = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-premiere"]/div[@class = "tm-rate-tag"]/div[@class = "tm-rate-date"]').text
            #购买产品
            sku = i.find_element_by_xpath('td[@class = "col-meta"]/div[@class = "rate-sku"]').text
            #用户名
            username = i.find_element_by_xpath('td[@class = "col-author"]/div[@class = "rate-user-info"]').text


            append_time = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-append"]/div[1]').text
            append_content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-append"]/div[2]').text


        df = pd.DataFrame({'用户名':[username],'购买产品':[sku],'评价日期':[date],'初次评价内容':[content],
                         '追评时间':[append_time],'追评内容':[append_content]})


        result = pd.concat([result,df])


    return result,driver

 热门关注点

我们爬了5款产品,共计8979条评价,然后把评价中TOP15高频词做成词云图:

很明显,消费者对于防脱洗发水的诉求简单粗暴,效果是第一核心关注点。虽然“没用”也在TOP15高频词中,但整体而言,正面词汇更加集中,消费者并不吝给出不错、好评、好用等评价。

除效果外,味道成了消费者的“论点”,毕竟洗完头之后,洗发水是通过味道来散发魅力。防脱洗发水,营造的防脱希望十分重要,不少消费者在收到货后,都已经开始期待头皮变得浓密。

下面,我们从情感分析的角度来切入。

防脱洗发水情感分析

情感打分,虽然很多人自诩是一个没有感情的杀手,但说出来的每一句话却都洋溢着“感情”。

拿刚爬到的评论数据来说,任何一个消费者在评论时都带着和产品相关的主观情感,要么觉得好,要么觉得烂,只是个体对于好和烂的感知程度不同罢了。

So,这里我们用SnowNLP这个库,为每条评价进行情感打分,通过分值来量化情感倾向。(分值在0-1之间,越靠近0负面倾向越强,越接近1则正面情感越强)

from snownlp import SnowNLP


sens = []


for text in final_re['初评内容']:
    s = SnowNLP(text)
    sens.append(s.sentiments)


#final_re是评价数据源
final_re['初评情感评分'] = sens

一个回车,打分完毕!

   评分总览

看看5款热销防脱洗发水的平均情感评分:

尴尬,8000多条评论最终平均下来竟然是如此中性的倾向(我们暂且认为0.5是中性)。是大多数客户都无所谓,还是两极分化严重呢?

防脱洗发水的评价两极分化极其严重。28.95%的消费者给出了超0.8分的正向评价,他们极尽吹捧之能事,甚至可以说是“歌颂”防脱洗发水,感谢再“生”之恩。32.81%的消费者评价情感小于0.2,他们恨不得跳脚大骂,觉得智商受到了侮辱。

  品牌情感细分

除章光101外,其他品牌情感评分均值都在0.5之上,情感以积极为主。为什么章光101平均值、中位数如此之低?这么多负面评价品牌都无动于衷吗?

数据分析要敢于直面惨淡的数据,敢于正视打脸的现实。

通过进一步观察评价内容,我们发现问题出在情感评分本身。不少消费者给出好评时,会先诉说自己被脱发折磨的多么苦不堪言,最后话锋一转开始夸洗发水。(章光101此类评价尤多)

很遗憾,snownlp这个库的脑回路转的太慢,它总是沉浸在悲痛的前奏不能自拔,给出了低分。再加上我们并未针对洗发水评价进行训练,会存在一些评分疏漏。

这里是抛砖引玉,给出评价分析,建议大家尝试更多的评分玩法。

最后,小Q开始用肉眼检索评价。许久之后,甩了甩稀薄的刘海,自信的总结:

“如果剔除掉评分误判,消费者对于防脱洗发水的使用情感会更加正向。所以,从评价角度来看,我觉得防脱洗发水并不是一个伪命题,哥已经下单了!”

注:文中爬取评价代码和数据源,已上传至github(https://github.com/seizeeveryday/DA-cases/tree/master/Hair)。

作者:周志鹏,2年数据分析,深切感受到数据分析的有趣和学习过程中缺少案例的无奈,遂新开公众号「数据不吹牛」,定期更新数据分析相关技巧和有趣案例(含实战数据集),欢迎大家关注交流。

声明:本文为作者投稿,版权归作者个人所有。

【End】

还在担忧Python的就业前景?快来看看这些!

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

热 文 推 荐 

携号转网移动用户转出最多;微软称 8 万台电脑感染病毒;TensorFlow 2.1 rc0 发布 | 极客头条

Java 9 ← 2017,2019 → Java 13 ,Java 两年来都经历了什么?| CSDN 博文精选

二十年的编程,教会我的五件事!

自学编程、玩 vlog,90 后程序员们的冠军之路

警惕!程序员万字揭露被空姐骗到香港做传销的来龙去脉!

【经典必看】14个实用的数据库设计技巧

贾扬清:为什么说数据智能和云原生之间是“天作之合”?

大白话讲解比特币白皮书,十年后它依然是学习区块链的最佳资料,你真的读懂了吗?

击阅读原文,即刻参加调查!

你点的每个“在看”,我都认真当成了喜欢

专为程序员设计的数学课

11-11
<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值