java 排序stackoverflow_爬取 100 万条 StackOverflow 问答后,我得出的结论!

爬虫的具体操作流程是,打开 StackOverflow 主页,在 questions 页面下选择按 vote 排序,爬取前 20000 页,每页将问题数量设置为 50,共 100 万条,实际上用数据库去重后只有 999654 条问答信息。

他分别对votes、answers、views进行了分析,咱们来看一下他的分析结果吧。

一、votes 分析

降序排列了 votes 数,生成折线图

98d00e1195d6d4c5edb2c6367fc49901.png

2k 后的问题的 votes 数基本上就已经在 400 以下了,接着后面的就基本上是贴地飞行了。

votes 数最多 : Why is it faster to process a sorted array than an unsorted array?

votes 数的连续分布情况:

38f9b9bd1a919b9b0dc093f5c7b9546d.png

可见最多的还是集中在 1-2K 之间,从 6k 开始基本上就断层了

descriptioncountvotes >= 5001630votes >= 4002325votes >= 3003782votes >= 2007062votes >= 10019781

如果以 100 为分界线的话,会得到这样的一个饼图。

9a08a72fd495edf6cfe82582eae3c2a1.png

大于 100 的连 %2 都不到。

再来看看底层的数据。

descriptioncount1 <= votes <= 52118046 <= votes <= 1043093511 <= votes <= 1513664716 <= votes <= 2064541votes <= 20843927

可见 votes 小于 20 的,数量高达 84m。看看总体的比例吧。

7c0cc20e9e8d878a12c624661edc97c5.png

二、answer 分析

降序排列了 answers 数,生成折线图。

076cd4f868349c3105c7bde173709280.png

很明显 3k 之后的 answers 数基本上就小于 20 了。

answers 数最多: What is the best comment in source code you have ever encountered?

answer数的连续分布情况。

88502b4f038a888f29098a563e86152b.png

150 后也就断层了,实际上能达到这样的回答数极少。

具体数据。

descriptioncountanswers >= 5218059answers >= 1034500answers >= 203808answers >= 30968

大于 30 的确实少的可怜,看看总体情况。

8065140fca0eac9b79ec3bb31d64fcec.png

三、views 分析

降序排列了 views 数,生成折线图。

5fbbd9cf9b65ea34540cb2ec2be903d5.png

最高达到了 4.5m,100000 以后的基本上就不足 28000 了。

views 数最多: How to undo last commit(s) in Git?

views 数的连续分布情况。

8e1d294bf9aae8575637561b734fb850.png

进群:960410445 获取源代码!

具体数据。

descriptioncountviews >= 5000486466views >= 10000315576views >= 20000171873views >= 5000059363views >= 10000022224views >= 2000007030

大部分问答的 views 数还是集中在 20000 以内。还是得看看总体分布。

ee7f11f282f64de96b3efbba0d08e7c9.png

四、综合分析

再看看 votes,views,answers 三者的散点图对应情况。

votes - views

7c91f0a8d605f1b4e3c71b2533c891be.png

votes - answers

7e746527f2b5965b18ffb2aeffddee0f.png

views - answers

389de7af1b9177d8ec200f8ce2505ca9.png

views-answers散点图

总的来说,这三者对应关系类似于一个金字塔。三个图基本上都是左下角靠近原点的区域被填满,也就是说绝对大部分的问题的 votes,answers 和 views 都是属于最下层的。高质量活跃的问题是处于金字塔顶端的。三者的最高数好像也没特别明显的对应关系,且三者的最高数都不是同一个问题。

根据所有问题的 tags 提取出总量前 200 的关键词(前 50 条如下),java 排在第 2 名。

('c#', 94614),('java', 93244),('javascript', 76722),('android', 69321),('python', 62502),('c++', 58173),('php', 42596),('ios', 37773),('jquery', 37405),('.net', 36180),('html', 28536),('css', 26174),('c', 24699),('objective-c', 23253),('iphone', 22171),('ruby-on-rails', 20143),('sql', 19171),('asp.net', 18060),('mysql', 17559),('ruby', 16397),('r', 15670),('git', 13139),('linux', 13080),('asp.net-mvc', 12857),('angularjs', 12606),('sql-server', 12473),('node.js', 12212),('django', 11576),('arrays', 11006),('algorithm', 10959),('wpf', 10631),('performance', 10619),('xcode', 10613),('string', 10426),('windows', 10132),('eclipse', 10117),('scala', 9942),('regex', 9685),('multithreading', 9601),('json', 9266),('swift', 8950),('c++11', 8939),('haskell', 8823),('osx', 8159),('visual-studio', 8140),('html5', 7627),('database', 7567),('xml', 7478),('spring', 7464),('unit-testing', 7253),('bash', 6825)

这样看好像不太直观,所以就把它根据词频生成了词云

ef93abfca5f262e737e7f8c95eb13214.png

传送门地址:https://github.com/chenjiandongx/stackoverflow-spider

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值