作者 | 周志鹏

责编 | 伍杏玲

【CSDN 编者按】今天520,朋友圈一秒变成大型“虐狗现场”,单身程序员表示“也想谈恋爱”啊,那么如何找到心仪的TA,程序员当然要用程序员的办法啦!(小预告:文末有精彩哦!

最近很多关于晒择偶标准的帖子,活脱脱把知乎变成了另一个“世纪佳缘”,回答清一色的爆照和晒条件,这对于单身狗来说是妥妥的福利。

母胎SOLO的程序员小Q就沉迷其中不能自拔,这是他第100次感慨“你说说!这些小姐姐是真好看!但回答实在太太太多了,怎么才能在这些回答中找到合适的人选呢?Z哥,你能不能从数据分析角度给我点思路啊?”

小Z不胜其扰,被迫接受了这个艰难的任务——基于数据打造一份择偶指南

 数据获取

首先,我们要拿到这些小姐姐们的数据,小Z找到了择偶/相亲相关内容下最热门的一个问题——你的择偶标准是怎样的?

说是问择偶的标准,其实全是希望找到另一半的小哥哥、小姐姐们在答题。目前已经有27000+回答了:

回答爬取这一块,知乎还是比较友善的,只需要在XHR里面找到回答的动态网址,伪装headers的User-Agent就能够欢乐的批量爬取了。

小Z不费吹灰之力就爬到了问题下27664条回答,还包括每条回答的答主昵称、关注人数、点赞数、性别等一大票字段。

数据初窥


1、匿名情况和性别占比

截至日前,这个回答下有13527个用户是匿名的,占比(48.90%)接近半数。需要注意的是,所有匿名用户的性别默认都是男(知乎性别1表示男,0表示女,-1代表未知)。出于职业习惯,小Z以迅雷不及掩耳之势分析了男女占比(剔除了匿名用户的占比):

小Z发现,这个问题下,已经有大神基于内容进行了匹配,在未剔除匿名的情况下,发现男性占比较大。

而我们剔除掉匿名的用户,只基于爬取的性别源数据进行分析,发现男、女、未知三分天下,性别占比相对均衡,可以确定的是,目前回答下有4758个不匿名的小姐姐。(这两套逻辑下的统计结果并不冲突)

2、回答创建时间分布

在看回答创建时间分布前,需要先把知乎默认的时间戳格式转换成我们习惯的时间格式:

回答时间分布:

  • 2018年4月30号,随着问题的提出,第一个哥们开始答题,前期这个问题一直处于日回答数不过50的不温不火状态。时间来到了18年国庆节,可能是单身狗返乡受到亲友们的疯狂质询,导致回答数暴增,10月7日当天,日回答数突破300大关,随后回答数稳定在100左右。

  • 无从考证2018年12月13日发生了什么,那一天有506颗悸动的心将脱单的希望交给了知乎。

  • 19年春节前的返乡期,又是一次情感大拷问,也是回答数的第三个小高潮。及至今日,每天还有60+新增回答。

 缩小脱单范围

“哥们,你看看吧”一番标准汇报式的操作完成之后,小Z有些嘚瑟。

“Emmm,这都哪儿跟哪儿啊!你别给我看这些有的没的行吗!什么男女占比,什么发布时间分布,都关我屁事啊,我需要的是切实的!可以帮助我在上面找到女朋友的数据建议!”

纳尼?这跟我预想的他会猛夸我一顿的结果完全不一样啊!不过他说的确实在理。小Z顿时没了底气。“那行,数据都拿到了,你说说你找女朋友什么条件吧”

小Q45度角仰望天空,露出了少男怀春般的甜笑“什么条件不条件的,我只想找到一个我愿意为她放弃所有预设条件的灵魂伴侣。”

噗!“这才是他单身的根本原因啊!这个人可能被需求压成傻子了,要包容,要包容,要包容”小Z吐完一口老血后不断安慰自己。

小Q继续补充道:“这样吧,你能帮我列一个清单吗?我觉得可能还是要自己聊聊,看合不合拍。哦对了,匿名的就算了,我不喜欢太害羞的”。

得!匿名算了是吧,那我直接筛掉!灵魂伴侣是吧,那肯定接受异地,地区匹配先省略了!能放弃所有预设条件是吧,那学历年龄身高哥也不用给你去正文苦哈哈的匹配了!

问题的重点,就在于如何设计一套合适的逻辑来从数据中清洗和筛选出目标小姐姐们。

沉思片刻,小Z制定了一个四步脱单法来解决这个问题:

1、既然是灵魂伴侣,那如果回答连30字都没有超过,不是抖机灵就是敷衍,怎么能承担起“灵魂”二字呢!必须PASS掉!

搞定,这一步下来,目标群体还有4244个小姐姐

2、数据最重要的特性之一就是时效性,别看回答数量这么多,真正抓得住的幸福才是属于自己的幸福,如果一个答主最近一次更新答案的时间超过了一个月,那只有两种可能,要么是她已经找到了,要么她已经对这个方式失去了兴趣。所以,加上时间条件,筛选出最近30天还活跃的小姐姐们。

经过本轮筛选,小姐姐的数量直接从4244个缩小到598个。

3、小Z发现,有一些小姐姐在回答中强调照片OR内容已删,已经找到。这类回答当然要继续PASS。

还剩下562位~

4、对于相貌平平无奇,条件一般的小Q来说,去追已经被众星捧月的小姐姐们,难度实在是太大了。于是小Z根据经验暴力设置了两个阈值:

  • 知乎账号被关注人数超过1500以上的,对小Q来说算是大V了,PASS!

  • 回答点赞超过150或评论条数超过100的,说明已经有狼群盯上,激烈的竞争不适合与世无争的小Q。

四步走下来,名单已经成功锐减到480了,剩下的都是些走心的(回答字数多)、热乎的(最近更新)、正在择偶中且竞争还不算激烈的小姐姐们。小Z长舒一口气后,又有了新的困惑:“这样筛选得到的名单,虽然说范围精确多了,能不能再进一步,给他一个优先级排序呢?

 引入指数,暴力排序

问题的核心要给他找一份相对不错,又竞争尚小的名单。而相对不错,又竞争压力尚小,怎么量化呢?将发际线挠退了2厘米后,小Z有所顿悟。

在这个回答下,点赞越多说明答主在某个方面越受青睐,评论越多则表示主动出击的人越多,竞争可能更激烈。而前面已经对点赞和评论数进行了清洗,大热不在,如何在小热中进行排序呢?

这里,小Z用每个回答的点赞数除以评论数,得到一个赞评指数,用来衡量平均一个评论能够获得多少赞,数值是越高越好的。

举个栗子:

回答A有130个赞,30条评论,回答B有130个赞,60条评论,点赞数相同的情况下,B的评论更多,竞争更加激烈,从竞争的角度看,选择A更加明智;回答C和D分别有50条评论,而C的点赞数要高于D,在评论数相同的情况下(竞争激烈程度相近),我们应该选择更受青睐的C。

从赞评指数来看,A的4.33 > B的2.17;C的2.24 > D的1.70,看来,评赞指数能够为我们的选择提供优先级指导。

于是,小Z用暴力的赞评指数对剩下的小姐姐进行排序,并取TOP30,得到了最终的脱单大名单。

不错不错,有心了有心了。”小Q接过名单,忍俊不禁,去按ID搜索,至于后续嘛,外号铁公鸡的小Q破天荒的请小Z吃了一顿丰盛的烧烤。

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

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

源码:https://pan.baidu.com/s/1H9UQfKudfdfk-hXKzSW-Iw 提取码:7uwb

520 送福利啦!

程序员也要撒狗粮!

文末留言#520,你想对TA说……#

留言点赞数前 5 位可获得CSDN精美纪念笔记本一份

点赞数 6-10 位可获得科技图书一本

截止时间 5 月 21 日 17:00

快来留言吧!

【END】

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

Linux 之父:我就是觉得苹果没意思!| 人物志

面试官绝杀:系统是如何支撑高并发的?

高通盛世危言录

☞厉害!女学生偷师男子学校,变身区块链开发工程师

520 这天,我突然意识到,她根本配不上我这么聪明的男人

刷了一个半月算法题,我薪资终于Double了

确实, 5G与物联网离不开区块链!

掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程

中国AI开发者真实现状:写代码这条路,会走多久?

☞刺激!华为程序员年薪200万 ?真相让人心酸!

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

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

程序员 520 脱单指南!相关推荐

  1. 程序员情人节脱单指南

    又要到了普(sang)天(xin)同(bing)庆(kuang)的情人节了,情侣们又要开始一轮轰轰烈烈地秀恩爱. 对于程序员来说,"单身"依然是人生最大的bug,关键是还无法调试. ...

  2. 程序员哇,你想在下个情人节或者520脱单么?这个秘籍不能错过

    简评:对于程序员来说,"单身"依然是人生最大的bug,关键是还无法调试.虽然俗话说"自古英雄多寂寞",但是缺少另一半的人生总是不完整的.被虐,那已是过去式了.这 ...

  3. 最强脱单指南:如何通过区块链应用快速找到女朋友?

    本文由微信公众号DappVision原创首发,转载请联系授权 混了这么久链圈,你听说过区块链应用还能助力脱单吗?马云在给阿里巴巴员工做证婚时,讲过一个故事:蚂蚁金服有一位工程师,在相亲简历上写自己是工 ...

  4. 完全拷贝的一份,程序员阅读书单

    Apocalypsa Rumination Introspection 博客园 首页 新随笔 联系 订阅 管理 随笔 - 28  文章 - 1  评论 - 1046 程序员必读书单 作者:Lucida ...

  5. 程序员必读书单1.0

    原文:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必 ...

  6. 转:程序员必读书单 1.0

    本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a ...

  7. 程序员必读书单 1.0 ----转自Lucida

    本文转载自:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书 ...

  8. 程序员必读书单 (仅供参考)

    转载:http://zh.lucida.me/blog/developer-reading-list/ 程序员必读书单 1.0 发表于 2015-02-25    |   分类于 阅读    |   ...

  9. 程序员年入百万指南(二)之为什么程序员应该懂点销售

    本文为[程序员年入百万指南]系列之VOL.2 为什么程序员应该懂点销售 作者:胡嵩 提起销售,各位同学是不是头脑中立刻浮现出四个大字:                                 ...

最新文章

  1. bzoj1131: [POI2008]Sta
  2. 何为消息队列,为何使用消息队列,有什么消息队列插件
  3. gateway路由网关,zuul的替代品
  4. Leaflet文档阅读笔记-Using GeoJSON with Leaflet笔记
  5. mysql视频第一课_MYSQL 第一课
  6. 当 Messaging 遇上 Jepsen
  7. 收藏一个好看的单选多选样式
  8. 禁止tomcat的Catina.out的累计输出
  9. Android 编辑 mhtml,Html Editor下载-Html Editor(Html编辑器)下载v1.0 安卓版-西西软件下载...
  10. uni-app 对接企业微信登录
  11. 基于PHP+MySQL的志愿者管理系统
  12. 我在雷军2021年度演讲上,依稀仿佛看到了老罗的影子
  13. 洛谷 P3373 线段树模板题
  14. 阿里数据分析师面试准备二:对阿里数据分析师岗位的理解
  15. java hevc和heif_HEVC和HEIF区别是什么 HEVC和HEIF哪些设备可以兼容
  16. Redis实现在线用户列表(按登录时间排序、可查询、踢人)
  17. C语言中变量的作用域和生存期
  18. 网络偷窥者很多,如何消除上网的浏览痕迹?
  19. tanx的3次方的不定积分:两种方法
  20. 纯前端实现下载xlsx.js实现下载

热门文章

  1. oracle从删库到跑路,Mysql入门二十小题(DBA老司机带你删库到跑路)2018.11.26
  2. e记法 python 底数_干货满满,30个Python源代码!
  3. centos查看文件修改历史_Linux环境下查看历史操作命令及清除方法
  4. 新机发布会用鸿蒙吗,鸿蒙操作系统及华为全场景新品发布会即将到来,硬件生态发展有望迎来加速度...
  5. Lua笔记2 变量、循环和流程控制
  6. 2021年中国船舶甲板市场趋势报告、技术动态创新及2027年市场预测
  7. 动物笼行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. mysql几种备份恢复_mysql多种备份与恢复方式一
  9. Vue生命周期和钩子函数的一些理解
  10. 从入门到入土:[linux实践]-pam|编写基于libpam的用户认证程序|编写基于PAM认证的应用程序|详细说明|实验步骤|实验截图