一万名教授的名字以及相关分析代码

前段时间发表了一篇文章《

分析了中国高校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

就能得到生成的可视化词云了。

噢,对了,二胖把公众号里面的文章都分类整理了一下,还有不少有意思的文章,比如教你做下方那个会动的二维码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180821G07X3L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券