前段时间发表了一篇文章《
分析了中国高校2万名教授的名字,来看看哪个姓的人最聪明
》,我发现不少同学对教授的名字挺感兴趣。
为了能让大家也感受一把,我会给大家提供一份包含一万个教授名字的文件,让大家亲自运行代码试一试。同时,我也会给大家介绍怎么来做相关的统计和可视化。
数据资源和代码资源我都放在文末,需要的同学自取。
好了,废话不多说,我们直接开始吧~
先来看看我们今天的输入文件:
10000个正副级高校教授的姓名。
上图显示的是10000个教授中的最后10个,各位可以试试查找二胖提供的文件中有没有自己老师的名字(*^▽^*)。
那么有了输入文件,输出文件是什么呢?
我们一步一步来。
先来统计一下重复度最高的前10个名字。
这里顺便提一个小知识,下面的代码用到了python的计数器Counter(),Counter是dict的一个子类,可以方便的用来计数。
它和dict最大的区别就是我们使用它的时候不用像dict那样去初始化key,可以直接访问dict[key],这一点和Go语言中的dict很相似。
代码片段如下:
调用该函数后输出的结果:
[('王勇', 7), ('王剑', 7), ('赵勇', 7), ('张磊', 6), ('杨帆', 6), ('李勇', 6), ('王伟', 6), ('张巍', 5), ('李伟', 5), ('王斌', 5)]
看来勇哥和伟哥占据了榜首,姓王的不得了。
好像只统计名字也没有意思,我们再来统计一下姓。
原理其实很简单,就是把每个名字的第一个字取出来,不过这样的话也有一个缺点,就是把复姓的同学的姓分开了。
当然,如果力求准确也不是没有办法,就是将中国的所有姓做个词典,然后通过这个词典来分割教授的姓名。这里我们就不这样做了,直接把第一个字作为姓,我们主要是为了展示代码,并且复姓出现的概率是极低的。
代码片段如下:
结果是:
[('王', 784), ('张', 679), ('李', 669), ('刘', 579), ('陈', 385), ('杨', 261), ('赵', 220), ('吴', 206), ('周', 204), ('黄', 184)]
符合人口普查的结果,王张李刘果然是大姓。
问题又来了,上面的结果看着不具体,不直观,怎么办?
可视化代码片段如下:
运行后的可视化结果:
看到你的姓了吗?
没看到没问题,你可以自行统计一下前200个最容易出现的姓。
是不是整个流程很简单?
以上程序完整代码如下所示:
以上功能不过50行Python代码就实现了,感兴趣的同学赶紧下载下来看看吧。
二胖一共提供了三个文件,如下图所示:
main.py 文件就是python程序了。
name_list.txt就是10000个教授的名字。
233.html是运行程序生成的可视化文件,用浏览器打开就能看到相关图表。
需要注意的是二胖的运行环境是python3,使用python2的同学可能运行有点问题,那么就自己解决一下吧。
然后还需要安装一下依赖库:
pip3 install pyecharts
然后直接运行:
python3 main.py
就能得到生成的可视化词云了。
噢,对了,二胖把公众号里面的文章都分类整理了一下,还有不少有意思的文章,比如教你做下方那个会动的二维码。
领取专属 10元无门槛券
私享最新 技术干货