前几天闲来没事,翻看微信好友,惊讶的发现从12年开始到现在,我已经坐拥600+好友。150定律(Rule Of 150),即著名的“邓巴数字”,说人类的社交人数上限为150人,精确交往深入跟踪交往的人数为20人左右。然而在今天,社交网络的发展无疑扩展了这个数字,作为一款国民级APP,微信几乎占了我100%的在线社交渠道同学、朋友、同事、上司、猎头、各类旅游、潜水、滑雪、理财圈子、微商、等等,有常常联系的亲朋好友,也有一面之缘的陌生人,还有素未谋面的群友。相逢是缘,也许我们互加好友后从未联系,但他们都是我人生中每一段经历和足迹的印证,下面就来看看我的“好友”们都是怎样的构成。本文用刚学的python完成了从数据获取、数据清洗、数据分析、数据展示的全过程,分析对象为好友性别、好友位置、好友签名。
本文主要结构如下
1. 需要安装的python模块
2. 数据获取&分析:
a.好友性别分布
b.好友位置分布
c.好友签名关键词和情绪
1. 工欲善其事,必先利其器
先来看看需要哪些python模块来帮我们:
itchat:一个开源的微信个人号接口,可以获取好友的昵称、性别、头像、位置、签名等信息(官方文档:http://itchat.readthedocs.io/zh/latest/);除此之外还能实现自动收发信息等机器人功能;
pandas:Python中 的数据处理模块,可将接口文件转为csv,进行数据离线处理;并可以取行、列切片等等
jieba:python里一个强大的分词库,可以针对中文长句①进行分词,并且②统计词语出现的频率以及对应的词性(动词、名词等等),③自定义词库等等;以后可以用来试试提取10W+公众号文章的关键词,然后组合出一篇爆款文?(原谅我有一颗想红的心)、爬取微博豆瓣热点等等(吃瓜蹭热点本性已深入骨髓)https://www.jianshu.com/p/cdea68108cbf;
snownlp:一个 Python 中的中文分词模块,除了可以完成jieba相似功能的分词、词频统计外,还能进行词句的情绪分析。商品评论挖掘、电影推荐、餐厅推荐、股市预测……情感分析大有用武之地。
wordcloud:生成词云,可以自定义背景图像和颜色。
matplotlib:数据可视化模块,各种pie chart, bar chart, line chart等等应有尽有。
re: 正则表达式,可以替换掉签名中的表情等
2.万事俱备
a.性别构成
共计好友694人,下面这个结果我一点也不意外,毕竟凭实力单身的哈哈。文科大学、商科专业、工作以来从事财务相关工作,一直以来男生都是稀有的环境,所以好友多为女生。给自己立个flag,年底比例到1:1哈哈。
b.有朋自远放来,不亦乐乎
原来我的好友已遍布四海八荒。西北地区的朋友你们在哪里??好友最多的地儿来自大帝都,我的第二故乡,陪伴我走过成年后80%时光。还记得第一次来北京的那秋天,背着行李灰头土脸却有充满期待的开始了四年的学习时光,那时候的我从没想过在这里能够一呆就是**年(为了不暴露年龄,马赛克一下^^),经历了大学和工作的磨砺,北漂多年遇到了一群可爱的同学、朋友、同事,增长了许多的见识和眼界,住的地儿从三环、四环,搬到了五环外,从6人宿舍、4人合租再到独租,不变的是高企的房价,愈加拥堵的交通和窒息的生活压力,即使北京有诸多让人诟病的地方,依然有源源不断年轻人为她而来,只因为这里有给人一种“今日努力,明日可期”的希望。
要对我的故乡说声抱歉,近年来每次回乡都来也匆匆,去也匆匆,有种莫名的与日俱增的陌生感虽然好友人数位列第二,但只有少少的33好友,里面有我的亲人、幼时小伙伴。有种无奈叫“回不去的地方叫故乡,到不了的地方叫远方”
C. 你的logo就是你的态度-签名词频分析
词频较高的几个词是快乐、温柔、世界、自由、人生、坚强、开心、优秀。果然我的微信好友都是积极阳光正能量的好青年!等等那个黑暗和寂寞是什么%¥#@,其实人家是不怕黑暗,无惧寂寞啦。logo一定程度反映了态度,相应的态度也可以成为一个人的logo。柱形图显示积极的词性占比超过50%,这也和词云的数据相匹配。近年来越发觉得生活不易,"心中有理想,脚下有力量”
3. 小结
大数据时代,我们可以获得的数据实在太多了。仅仅是大众点评、豆瓣和亚马逊上海量的评论信息就足够我们挥锹抡镐,深挖一通了。作为非计算机专业的宝宝,看着这大把的数据不能用,心急如焚。从前数据分析还只是实验室或者大公司的独门秘籍。现在早已飞入寻常百姓家。门槛的降低使得我们普通人也可以用Python的几行代码,完成大量文本的分析处理。通过数据看世界,似乎打开了一扇新的解决问题的大门。