发际线堪忧的小Q,为了守住头发最后的尊严,深入分析了几十款防脱洗发水的评价,最后综合选了一款他认为最完美的防脱洗发水。

一星期后,他没察觉到任何变化。

一个月后,他用卷尺量了量,发际线竟然后退了0.5cm!难道防脱要经历一个物极必反的过程,先脱再长?小Q不甘心,决定继续坚持。

两个月后,小Q心如死灰,忍不住和小Z抱怨。

!!!!!!

这句话,平地一惊雷,炸出了小Q惨痛的网购回忆。

他,屡屡冲着卖家秀而去,却屡屡化身买家秀而归。

说好的椰子!?

我想买两个杯子来着,怎么变成了一个!?

小Q曾经因为网购吃亏太多,而为自己的颜值和智商担忧。但经过小Z的点拨,他认定了一件事:活成卖家秀,并不是自身的问题,而是万恶的假评价误导了自己的消费决策。

为了自己,为了让更多的朋友免受误导,他和小Z一拍即合,决定用数据思维来鉴定刷单。

经过一番翻云覆雨,终于总结出了用数据鉴定刷单的两板斧。

第一板斧:评销比

购买——使用——评价是一个完整的购后链路。消费者在购买了产品之后,一定会使用,但评价则需要一定场景来触发。

比如这个产品超出预期,我要感谢卖家!或者这个产品在侮辱我的智商,我要骂街!

当然,还存在一部分为了刷积分而评价的人,不过正常情况下,主动评论的人占总人数的比重是维持在稳定水平的。

 

如果有通过大规模红包返现或其他人为手段刷的好评,在同样购买人数的前提下,参与评价的人大概率是高于正常的。

怎么衡量这个比例是否合理呢?这里,我们引入一个叫做评销比的指标。

评销比 = 单款产品总评论数 / 单款产品总销量 * 100,以此来衡量平均每卖出100单位的产品,对应着多少条评价。

接下来,我们导入爬取的脱敏真实数据(为了去重广告嫌疑脱的敏)来实践一下:

增加一列计算评销比:

看看评销比分布形态,数据在20左右分散开来,略微偏右:

从评销比分布图,可以看出在40处有二次下跌,我们暂且把40(一般也可以尝试平均值)设置为一个筛选阈值,高于阈值的判定为有刷单嫌疑。

第一版斧挥过,12%疑似刷单的产品应声倒下,小Z露出了欣慰的微笑。

小Q却眉头紧锁:“这个鉴定逻辑是有一定道理,但是,我买的那款洗发水竟然逃过了筛选!”

不要慌,我们还有第二板斧保驾护航。

第二板斧:内容重复度

第二板斧整个判别逻辑极其简单粗暴:对于一款产品,如果存在不同的用户,在不同的时间,评论了相同的内容,那妥妥的是刷啊!

直接上案例数据,我们爬取了小Q购买的那款防脱洗发水评价,共计1706条:

为了让鉴别更加科学,先换位思考:除极端情绪外,我们自己在评论时总会用“还行”、“一般般”、“刚收到,还没用”等短评来敷衍。这些短评非常容易重复,但也不能说是刷的评价。

so,我们在用重复度鉴别时,可以先预设一个评论长度作为筛选标准,比如只对超过15个字的评论进行重复度匹配:

长度筛选之后,正好还剩下1200条评价,下面开始正式匹配。大家如果想更精细,可以考虑用文本挖掘等高阶方法,在这里我们用最最最简单粗暴的文本排序:

前6条评价,有3个不同的客户,分别在19年的10月16日、24日和21日发表了相同的内容,他们都受高考压力影响,脱发严重,每天房间、床铺、地上掉满他们的头发。

幸好!!!他们在秃顶前遇到了这款洗发水!用了几次不仅比之前掉的少,还新长出来了一些小碎发!

177个字,洋洋洒洒,令人动容!

但这到底是偶然的巧合还是有组织刷的评价呢?我们不能这么简单下定论。

继续看一看,这些长篇大论一字不差的重复评论有多少条:

注:A,B,C三条内容完全一样,则统计为3条重复评价

1200条超过15个字的评价,有378条是虚伪的,占比高达31.5%。

他们文风多变,除了“高考压力”,还有“为父分忧而买”、也有“被微博广告安利”、甚至有“担心被骗,用第二套才敢评价的”。

可谓情真而意切,感人而至深!

小Z看过评价,深深不能自拔,瞬间理解了小Q为什么被忽悠。

幸好,以后有了这两板斧保驾护航,再也不用担心这些虚评假意了。

注:文章所涉及所有源数据和代码,已上传至github

https://github.com/seizeeveryday/DA-cases/tree/master/Comments

拒绝被坑!如何用Python和数据分析鉴别刷单!?的更多相关文章

  1. python时序数据分析--以示例说明

    Python时间序列数据分析--以示例说明 标签(空格分隔): 时间序列数据分析 本文的内容主要来源于博客:本人做了适当的注释和补充. https://www.analyticsvidhya.com/ ...

  2. 大数据学习:Spark是什么,如何用Spark进行数据分析

    给大家分享一下Spark是什么?如何用Spark进行数据分析,对大数据感兴趣的小伙伴就随着小编一起来了解一下吧.     大数据在线学习 什么是Apache Spark? Apache Spark是一 ...

  3. Python文本数据分析与处理

    Python文本数据分析与处理(新闻摘要) 分词 使用jieba分词, 注意lcut只接受字符串 过滤停用词 TF-IDF得到摘要信息或者使用LDA主题模型 TF-IDF有两种 jieba.analy ...

  4. 如何用Python从海量文本抽取主题?

    摘自https://www.jianshu.com/p/fdde9fc03f94 你在工作.学习中是否曾因信息过载叫苦不迭?有一种方法能够替你读海量文章,并将不同的主题和对应的关键词抽取出来,让你谈笑 ...

  5. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  6. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  7. 利用Python进行数据分析(9) pandas基础: 汇总统计和计算

    pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计:   sum() 方法传入 axis=1 指定为横向汇总,即行小计:   idxmax() 获取最大值对应的索 ...

  8. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  9. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

随机推荐

  1. mariadb(第二章)增删改 MariaDB 数据类型

    MariaDB 数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的 常用的数据类型 整数:int, bit 小数:de ...

  2. 一加手机2 进入recovery 模式无法挂载USB存储器通过命令窗口上传ROM镜像

    试过3.0.3-0和3.0.3-1的recovery都无法使用“挂载USB大容量存储器”模式,这肯定让很多清掉系统(就是system分区)的小伙伴无力吐槽,因为这样子rom就无法在rec里面从电脑拷到 ...

  3. c++ | final

    C++11的关键字final有两个用途:(1).禁止虚函数被重写:(2).禁止基类被继承. 在派生类中,可以同时使用overried和final.

  4. 通道的分离与合并,ROI,

    通道的分离与合并 class Program { static void Main(String[] args) { Mat img = CvInvoke.Imread(@"C:\Users ...

  5. spring配置文件拆分策略及方法

    一.拆分策略 如果一个开发人员负责一个模块,我们采用公用配置(包括数据源.事务等)+每个系统模块一个单独配置文件(包括Dao.Service.Web控制器)的形式 如果是按照分层进行的分工,我们采用公 ...

  6. c++学习之对象和类——构造函数和析构函数

    再认真理一遍~ 0.类 这里先来定义一个类,便于后面的理解.参考C++ Primer Plus class Stock { private: std::string company; long sha ...

  7. 下载安装npm和cnpm

    下载安装npm http://nodejs.cn/download/ 下载安装cnpm 完成npm的安装后,再安装cnpm https://npm.taobao.org/ 切换源为 taobao 源 ...

  8. phpmyadmin出现空密码登录被禁止 (参见 允许空密码)的解决办法

    在Windows或者Linux下mysql安装后默认的密码为空,又当我们又安装了mysql的管理工具phpmyadmin后登陆时出现“空密码登陆呗禁止(参见允许密码为空)”.不能登录成功        ...

  9. Python-RabbitMQ-topic(细致消息过滤的广播模式)

    生产者:topic_publiser.py import pika,sys connection = pika.BlockingConnection(pika.ConnectionParameters ...

  10. leecode100热题 HOT 100

    # 题名 题解 通过率 难度 出现频率     1 两数之和       46.5% 简单     2 两数相加       35.5% 中等     3 无重复字符的最长子串       31.1% ...