你好,哈布尔。
本文是评级的逻辑延续
除了实际的统计数据之外,还将提供更新的文章评级,以及一些对其工作原理感兴趣的人的源代码。
对于那些对发生的事情感兴趣的人来说,续集已被削减。 有兴趣更详细分析该网站各部分的人还可以查看
初始数据
这个评级是非官方的,我没有任何内幕消息。 通过查看浏览器的地址栏,您可以轻松看到,Habré 上的所有文章都有连续编号。 然后就是技术问题了,我们只是在一个循环中连续读取所有文章(在一个线程中并暂停,以免加载服务器)。 这些值本身是通过 Python 中的简单解析器获得的(来源可用
2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/,"В NASA испытали систему автономного управления одного микроспутника другим",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7
处理
为了进行解析,我们将使用 Python、Pandas 和 Matplotlib。 对统计不感兴趣的可以跳过这一部分,直接看文章。
首先,您需要将数据集加载到内存中并选择所需年份的数据。
import pandas as pd
import datetime
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter
from pandas.plotting import register_matplotlib_converters
df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
df['datetime'] = dates
year = 2019
df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))]
print(df.shape)
事实证明,今年(尽管尚未完成)截至撰写本文时,已发表了 12715 篇文章。 相比之下,整个 2018 年为 15904 篇。总的来说,很多 - 每天大约 43 篇文章(这只是正面评价;总共下载了多少篇负面或被删除的文章,只能猜测或根据标识符之间的差距粗略估计)。
让我们从数据集中选择必要的字段。 作为指标,我们将使用浏览量、评论数、评分值和书签数。
def to_float(s):
# "bookmarks:22" => 22.0
num = ''.join(i for i in s if i.isdigit())
return float(num)
def to_int(s):
# "bookmarks:22" => 22
num = ''.join(i for i in s if i.isdigit())
return int(num)
def to_date(dt):
return dt.date()
date = dates.map(to_date, na_action=None)
views = df["views"].map(to_int, na_action=None)
bookmarks = df["bookmarks"].map(to_int, na_action=None)
votes = df["votes"].map(to_float, na_action=None)
votes_up = df["up"].map(to_float, na_action=None)
votes_down = df["down"].map(to_float, na_action=None)
comments = df["comments"].map(to_int, na_action=None)
df['date'] = date
df['views'] = views
df['votes'] = votes
df['bookmarks'] = bookmarks
df['up'] = votes_up
df['down'] = votes_down
现在数据已经添加到数据集中,我们可以使用它了。 让我们按天对数据进行分组并取平均值。
g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.median().reset_index()
grouped['counts'] = days_count['counts']
counts_per_day = grouped['counts'].values
counts_per_day_avg = grouped['counts'].rolling(window=20).mean()
view_per_day = grouped['views'].values
view_per_day_avg = grouped['views'].rolling(window=20).mean()
votes_per_day = grouped['votes'].values
votes_per_day_avg = grouped['votes'].rolling(window=20).mean()
bookmarks_per_day = grouped['bookmarks'].values
bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean()
现在有趣的部分是我们可以看一下图表。
我们来看看 2019 年关于 Habré 的出版物数量。
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (16, 8)
fig, ax = plt.subplots()
plt.bar(year_days, counts_per_day, label='Articles/day')
plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day')
plt.xticks(rotation=45)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y"))
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.legend(loc='best')
plt.tight_layout()
plt.show()
结果很有趣。 正如你所看到的,哈布尔这一整年都有点“香肠”。 我不知道原因。
相比之下,2018 年看起来要顺利一些:
总体来说,我在图表上并没有看到2019年发表的文章数量出现大幅下降。 而且,相反,自夏季以来似乎甚至还略有增加。
但接下来的两张图让我更加沮丧。
每篇文章的平均浏览量:
每篇文章的平均评分:
正如您所看到的,全年平均观看次数略有下降。 这可以解释为新文章尚未被搜索引擎索引,并且不那么频繁地被发现。 但每篇文章平均评分的下降就更让人难以理解了。 感觉读者要么根本没有时间看那么多文章,要么不关注收视率。 从作者奖励计划的角度来看,这种趋势是非常令人不快的。
顺便说一下,2018年并没有出现这种情况,而且日程安排也差不多。
一般来说,资源所有者有一些需要考虑的事情。
但我们不要谈论悲伤的事情。 总的来说,我们可以说哈布尔相当成功地“熬过了”夏季变化,网站上的文章数量并没有减少。
等级
现在,实际上,评级。 恭喜那些进入其中的人。 让我再次提醒您,评级是非官方的,也许我错过了一些东西,如果某篇文章肯定应该在这里,但它不是,写下来,我会手动添加它。 作为评级,我使用计算指标,我认为这非常有趣。
按浏览次数排列的热门文章
LED 的比例前所未有 241000 次浏览,569 条评论,评分 +364.0/-1.0“口交文章”:科学家处理 109 小时的口交,开发出吸迪克的 AI 236000 次浏览,361 条评论,评分 +240.0/-68.0设计师抽的是什么:不寻常的枪械 235000 次浏览,123 条评论,评分 +119.0/-9.0我如何一年没有在储蓄银行工作 233000 次浏览,580 条评论,评分 +449.0/-14.0科学家发现地球上最古老的现存脊椎动物 221000 次浏览,211 条评论,评分 +82.0/-14.0废弃的智能灯泡是个人信息的宝贵来源 219000 次浏览,147 条评论,评分 +73.0/-11.0发展之王 178000 次浏览,668 条评论,评分 +315.0/-60.0欺诈者和数字签名——一切都非常糟糕 175000 次浏览,778 条评论,评分 +356.0/-0.0电视剧《切尔诺贝利》:观看并思考 172000 次浏览,803 条评论,评分 +164.0/-25.0有史以来最糟糕的音量控制用户界面 166000 次浏览,176 条评论,评分 +292.0/-30.0诚实的程序员简历 165000 次浏览,283 条评论,评分 +410.0/-40.0我的代码审查毁了开发人员的生活,我很抱歉 164000 次浏览,12 条评论,评分 +33.0/-3.0Megafon 是如何在移动订阅上耗尽精力的 162000 次浏览,676 条评论,评分 +624.0/-2.0皮卡布暴动。 用户成群结队地涌向 Reddit 160000 次浏览,484 条评论,评分 +215.0/-41.0廉价和昂贵的 AAA 电池 159000 次浏览,382 条评论,评分 +363.0/-6.022岁退休 156000 次浏览,922 条评论,评分 +259.0/-100.0没有智能手机的人 152000 次浏览,736 条评论,评分 +173.0/-25.0您想要永恒的 LED 吗? 揭开烙铁和锉刀。 或者DIY家居照明 149000 次浏览,262 条评论,评分 +94.0/-6.0如果您的手机被盗,不要做什么 144000 次浏览,638 条评论,评分 +259.0/-27.01 年 2019 月 XNUMX 日,您的网站可能会停止运行。 143000 次浏览,162 条评论,评分 +89.0/-8.0
按收视率排名的热门文章
松开螺丝,第 2 部分:公布投票截止日期和其他变更 14000 次观看,评分 +238.0/-3.0TeX 中相当自命不凡的欧几里得“元素” 10800 次观看,评分 +136.0/-0.0用户对 Habr 作者的奖励 26400 次观看,评分 +320.0/-0.0报告出版物中的错别字 18900 次观看,评分 +179.0/-2.0你好世界! 或英语 Habr,v1.0 21000 次观看,评分 +178.0/-2.0粒子上的生命 34000 次观看,评分 +267.0/-2.0斯普林斯文明,5/5 25800 次观看,评分 +201.0/-1.0在机电屏幕上玩俄罗斯方块 16300 次观看,评分 +124.0/-0.0从 CRT 屏幕重新创建字体 13400 次观看,评分 +101.0/-0.0Dobble 游戏的数学模型 14600 次观看,评分 +110.0/-0.0关于个人资料中的邀请的重要消息 18300 次观看,评分 +137.0/-8.0我们松开哈布尔规则中的坚果 48300 次观看,评分 +338.0/-13.0编解码器比较的街头魔法。 揭露秘密 21700 次观看,评分 +144.0/-0.0用于用文字书写的数字的智能解析器 20500 次观看,评分 +136.0/-1.0泛型和元编程模型:Go、Rust、Swift、D 等 17000 次观看,评分 +110.0/-2.0创建全球电池知识库 22200 次观看,评分 +139.0/-0.0我如何撰写和出版一本关于莫斯科国立大学的书,或12个严重错误 21600 次观看,评分 +134.0/-0.0关于一只猫、一个妻子、两个儿子、一个想法……等等。 续故事 43000 次观看,评分 +269.0/-8.0755 百万像素计算视频:Plenoptics 的昨天、今天和明天 41500 次观看,评分 +244.0/-0.0零售业的地块密度 27500 次观看,评分 +160.0/-1.0
按评论浏览率排名的热门文章
GitHub 开始屏蔽来自克里米亚、古巴、伊朗、朝鲜和叙利亚的用户的存储库 44500 次浏览,1309 条评论,评分 +115.0/-6.0乌克兰语课程 60400 次浏览,1672 条评论,评分 +285.0/-41.0我们松开哈布尔规则中的坚果 48300 次浏览,1285 条评论,评分 +338.0/-13.0反对孤立 RuNet 的集会 50900 次浏览,923 条评论,评分 +204.0/-32.0如何用两轮车去上班 47100 次浏览,781 条评论,评分 +113.0/-10.0谢列梅捷沃飞机失事:历史类比 82400 次浏览,1211 条评论,评分 +147.0/-11.0工程师正在营救森林中失踪的人,但森林还没有放弃 28900 次浏览,423 条评论,评分 +132.0/-1.0反对孤立鲁内特的集会 63300 次浏览,820 条评论,评分 +182.0/-20.0如何保护儿童免受信息侵害 - 以及有关信息最初来源的迷人故事 (18+) 65400 次浏览,811 条评论,评分 +175.0/-2.0你好世界! 或英语 Habr,v1.0 21000 次浏览,249 条评论,评分 +178.0/-2.0如果你是色盲,如何正确购买土豆 51800 次浏览,607 条评论,评分 +135.0/-3.0成为一名自由软件维护者是什么感觉? 22900 次浏览,259 条评论,评分 +129.0/-3.0松开螺丝,第 2 部分:公布投票截止日期和其他变更 14000 次浏览,158 条评论,评分 +238.0/-3.0以最低价格试产电子产品 34200 次浏览,382 条评论,评分 +165.0/-3.0我们如何装备 Megafon? 39800 次浏览,405 条评论,评分 +140.0/-6.0遥远过去的核战争? 83400 次浏览,843 条评论,评分 +133.0/-5.0你好世界! 或英语 Habr,v1.0 60300 次浏览,591 条评论,评分 +268.0/-7.0空间作为模糊的记忆 43200 次浏览,402 条评论,评分 +190.0/-7.0用户对 Habr 作者的奖励 26400 次浏览,245 条评论,评分 +320.0/-0.0美国理解的自由市场原则 56300 次浏览,502 条评论,评分 +160.0/-44.0
最受争议的文章
国家和T杀手 752 条评论,评分 +83.0/-80.0,15100 次观看这些有毒的家伙:他们毒害了项目 120 条评论,评分 +67.0/-51.0,50300 次观看为什么要学习 Go? 70 条评论,评分 +76.0/-57.0,23100 次观看我读了80份简历并有疑问。 635 条评论,评分 +135.0/-94.0,90700 次观看为什么素食真的是不可能的 940 条评论,评分 +76.0/-52.0,51600 次观看函数式编程:一个会扼杀生产力的愚蠢玩具。 第1部分 394 条评论,评分 +100.0/-68.0,54000 次观看我们编写了一生中最有用的代码,但它却被扔进了垃圾桶。 与我们一起 259 条评论,评分 +101.0/-63.0,62900 次观看向苹果公司请愿 96 条评论,评分 +90.0/-52.0,39300 次观看为什么 Windows 或 CHADNT 没有在 2019 年称霸? 881 条评论,评分 +123.0/-70.0,75000 次观看我不是真实的 246 条评论,评分 +105.0/-59.0,63900 次观看现代发展的五个可怕趋势 262 条评论,评分 +95.0/-52.0,77400 次观看你越早忘记 OOP,对你和你的程序就越好 1271 条评论,评分 +131.0/-63.0,128000 次观看驾驶电动汽车一年 1098 条评论,评分 +131.0/-58.0,71800 次观看我会停止把东西扔进垃圾桶 179 条评论,评分 +147.0/-62.0,34400 次观看如果可以,抓住我 215 条评论,评分 +141.0/-58.0,65400 次观看22岁退休 922 条评论,评分 +259.0/-100.0,156000 次观看精神科医生对《疾病与健康》一文的回应 272 条评论,评分 +154.0/-55.0,43400 次观看新的编程语言正在悄然扼杀我们与现实的联系 764 条评论,评分 +164.0/-52.0,106000 次观看晚期酒精中毒 597 条评论,评分 +208.0/-60.0,123000 次观看“口交文章”:科学家处理 109 小时的口交,开发出吸迪克的 AI 361 条评论,评分 +240.0/-68.0,236000 次观看
按评级排名的热门文章
Megafon 是如何在移动订阅上耗尽精力的 , 676 条评论, 评分 +624.0/-2.0, 162000 次观看“移动内容”是免费的,无需短信或注册。 Megafon 的欺诈细节 , 474 条评论, 评分 +488.0/-8.0, 112000 次观看俄语创新 , 612 条评论, 评分 +480.0/-33.0, 127000 次观看我如何一年没有在储蓄银行工作 , 580 条评论, 评分 +449.0/-14.0, 233000 次观看Protonmail 在俄罗斯是如何被屏蔽的 , 398 条评论, 评分 +418.0/-7.0, 102000 次观看诊断为精神分裂症,从事 IT 工作 10 年,生存技巧 , 281 条评论, 评分 +403.0/-8.0, 122000 次观看诚实的程序员简历 , 283 条评论, 评分 +410.0/-40.0, 165000 次观看当“a”不等于“a”时。 黑客攻击后 , 64 条评论, 评分 +374.0/-5.0, 74600 次观看让它变得更大! 现代分辨率增强 , 214 条评论, 评分 +366.0/-1.0, 104000 次观看LED 的比例前所未有 , 569 条评论, 评分 +364.0/-1.0, 241000 次观看廉价和昂贵的 AAA 电池 , 382 条评论, 评分 +363.0/-6.0, 159000 次观看欺诈者和数字签名——一切都非常糟糕 , 778 条评论, 评分 +356.0/-0.0, 175000 次观看日本:一个常识如此丰富的国家,有时对我们来说却是不合理的 , 483 条评论, 评分 +365.0/-12.0, 138000 次观看我们松开哈布尔规则中的坚果 , 1285 条评论, 评分 +338.0/-13.0, 48300 次观看用户对 Habr 作者的奖励 , 245 条评论, 评分 +320.0/-0.0, 26400 次观看我是如何抓住黑客的 , 273 条评论, 评分 +305.0/-6.0, 110000 次观看现代大众物理学的神话 , 556 条评论, 评分 +304.0/-6.0, 99600 次观看现在,优秀的开发人员是通过浏览量和订阅者来衡量的 - 这很糟糕 , 486 条评论, 评分 +324.0/-26.0, 74800 次观看在正面碰撞中幸存下来以及为什么健忘症不是你想象的那样 , 165 条评论, 评分 +297.0/-4.0, 61800 次观看Rostelecom 个人帐户中的端口扫描器 , 194 条评论, 评分 +300.0/-8.0, 111000 次观看
按书签数量排列的热门文章
42 个 Google 高级搜索运算符(完整列表) 47100 次浏览,917 个书签如何在1,5年内成为一名Java开发人员 89500 次浏览,894 个书签采样器。 用于可视化任何 shell 命令结果的控制台实用程序 58400 次浏览,801 个书签HBO,谢谢你提醒我……白俄罗斯药剂师的“切尔诺贝利急救箱” 89500 次浏览,797 个书签实用技巧、示例和 SSH 隧道 40000 次浏览,787 个书签256 行裸 C++:在几个小时内从头开始编写光线追踪器 60000 次浏览,745 个书签异步编程(完整课程) 36700 次浏览,690 个书签“被烧死”的员工:有出路吗? 116000 次浏览,688 个书签Python 面试的广泛概述。 技巧和窍门 28400 次浏览,687 个书签15 本适合初学者的机器学习书籍 18700 次浏览,670 个书签KPI 的 JavaScript 和 Node.js 讲座课程 52500 次浏览,656 个书签我如何在 Vim 中用 LaTeX 写数学笔记 58100 次浏览,652 个书签我从惨痛的经历中学到的东西(30 多年的软件开发经验) 100000 次浏览,651 个书签朱莉娅·埃文斯 (Julia Evans) 精选的有用幻灯片 41000 次浏览,587 个书签负责开发人员的 HTTP 标头 33600 次浏览,566 个书签N+7本有用的书 42700 次浏览,563 个书签破解汽车的 CAN 总线。 虚拟仪表板 60700 次浏览,562 个书签带着妻子和抵押贷款小心翼翼地搬到荷兰。 第 1 部分:找工作 76200 次浏览,555 个书签TCP 与 UDP 或网络协议的未来 50300 次浏览,538 个书签最适合旧电脑的 Linux 发行版 66000 次浏览,523 个书签
按书签与视图的比例排名靠前
15 本适合初学者的机器学习书籍 670 个书签,18700 次浏览适合您的项目的音乐:12 个主题资源,其中曲目均获得知识共享 (Creative Commons) 许可 477 个书签,18100 次浏览Python 面试的广泛概述。 技巧和窍门 687 个书签,28400 次浏览用于机器学习的数据集精选 455 个书签,19000 次浏览基于图节点的地下城生成器 304 个书签,12700 次浏览寻路和A*算法的简单解释 316 个书签,13500 次浏览Web 工具,或者作为渗透测试人员从哪里开始? 421 个书签,18800 次浏览学习 Docker,第 2 部分:术语和概念 341 个书签,15600 次浏览学习 Docker,第 3 部分:Dockerfile 297 个书签,13800 次浏览用于分析和调试 .NET 应用程序的工具包 244 个书签,11600 次浏览Linux下如何调试环境变量 322 个书签,15900 次浏览如何迈出机器人技术的第一步? 224 个书签,11200 次浏览迷宫:分类、生成、寻找解决方案 318 个书签,16000 次浏览实用技巧、示例和 SSH 隧道 787 个书签,40000 次浏览讲座课程“数字信号处理基础知识” 418 个书签,21400 次浏览42 个 Google 高级搜索运算符(完整列表) 917 个书签,47100 次浏览适合初学者的 3D 游戏着色器 239 个书签,12400 次浏览使用 WireGuard 和 DNSCrypt 有针对性地绕过 OpenWrt 路由器上的 PKH 阻塞 302 个书签,15700 次浏览练习在Python中使用分组和数据可视化的技巧 192 个书签,10000 次浏览另一个 Github 2:机器学习、数据集和 Jupyter Notebooks 265 个书签,13900 次浏览
按评论数量排列的热门文章
乌克兰语课程 1672 条评论,60400 次浏览火箭9M729。 关于《中导条约》“违反者”的几句话 1371 条评论,83000 次浏览GitHub 开始屏蔽来自克里米亚、古巴、伊朗、朝鲜和叙利亚的用户的存储库 1309 条评论,44500 次浏览我们松开哈布尔规则中的坚果 1285 条评论,48300 次浏览你越早忘记 OOP,对你和你的程序就越好 1271 条评论,128000 次浏览谢列梅捷沃飞机失事:历史类比 1211 条评论,82400 次浏览Y一代如何成为倦怠的一代? 1122 条评论,81500 次浏览电动车不适合我 1116 条评论,50700 次浏览驾驶电动汽车一年 1098 条评论,71800 次浏览意识科学的现状 1021 条评论,27500 次浏览芬兰总结了保障基本收入实验的初步结果 999 条评论,62100 次浏览关于公平经济的对话 997 条评论,7700 次浏览为什么素食真的是不可能的 940 条评论,51600 次浏览亲爱的,我们正在扼杀互联网 933 条评论,120000 次浏览反对孤立 RuNet 的集会 923 条评论,50900 次浏览22岁退休 922 条评论,156000 次浏览为 IT 专家选择汽车,为傻瓜提供茶壶建议 914 条评论,43400 次浏览为什么高级开发人员找不到工作 901 条评论,119000 次浏览计划已回归经济 892 条评论,27800 次浏览个人城市传送器 889 条评论,40800 次浏览
最后,最后一张 按不喜欢数量排列的 Antitop
22岁退休 , 922 条评论, 评分 +259.0/-100.0我读了80份简历并有疑问。 , 635 条评论, 评分 +135.0/-94.0亲爱的,我们正在扼杀互联网 , 933 条评论, 评分 +392.0/-83.0国家和T杀手 , 752 条评论, 评分 +83.0/-80.0为什么 Windows 或 CHADNT 没有在 2019 年称霸? , 881 条评论, 评分 +123.0/-70.0函数式编程:一个会扼杀生产力的愚蠢玩具。 第1部分 , 394 条评论, 评分 +100.0/-68.0“口交文章”:科学家处理 109 小时的口交,开发出吸迪克的 AI , 361 条评论, 评分 +240.0/-68.0我们编写了一生中最有用的代码,但它却被扔进了垃圾桶。 与我们一起 , 259 条评论, 评分 +101.0/-63.0你越早忘记 OOP,对你和你的程序就越好 , 1271 条评论, 评分 +131.0/-63.0我会停止把东西扔进垃圾桶 , 179 条评论, 评分 +147.0/-62.0发展之王 , 668 条评论, 评分 +315.0/-60.0晚期酒精中毒 , 597 条评论, 评分 +208.0/-60.0我不是真实的 , 246 条评论, 评分 +105.0/-59.0如果可以,抓住我 , 215 条评论, 评分 +141.0/-58.0驾驶电动汽车一年 , 1098 条评论, 评分 +131.0/-58.0为什么要学习 Go? , 70 条评论, 评分 +76.0/-57.0精神科医生对《疾病与健康》一文的回应 , 272 条评论, 评分 +154.0/-55.0向苹果公司请愿 , 96 条评论, 评分 +90.0/-52.0新的编程语言正在悄然扼杀我们与现实的联系 , 764 条评论, 评分 +164.0/-52.0现代发展的五个可怕趋势 , 262 条评论, 评分 +95.0/-52.0
啊。 我还有一些更有趣的选择,但我不会让读者感到无聊。
结论
在构建评级时,我注意到了两点似乎很有趣。
首先,排名前60%的文章属于“极客时代”类型。 明年是否会减少,如果没有有关啤酒、太空、医学等的文章,哈布尔会是什么样子,我不知道。 读者肯定会失去一些东西。 让我们来看看。
其次,顶级书签的质量出乎意料地高。 这在心理上是可以理解的;读者可能不会注意评分,但如果文章 是必要的,然后它将添加到您的书签中。 这里恰恰是有用且严肃的文章的最集中的地方。 我认为,如果网站所有者想增加 Habré 上这一特定类别的文章,他们应该以某种方式考虑书签数量和奖励计划之间的联系。
像这样的东西。 我希望它能提供有用的信息。
文章列表很长,好吧,这可能是为了更好。 大家阅读愉快。
来源: habr.com