博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
像Hacker News一样排序博客园首页文章
阅读量:4626 次
发布时间:2019-06-09

本文共 1305 字,大约阅读时间需要 4 分钟。

   是一家关于计算机黑客和创业公司的社会化新闻网站,里面有很多有价值的信息。Hacker News的文章排序算法在2008年就公开了,对文章的排序指标计算公式如下

  其中,

  •  P表示帖子的得票数,减去1是为了忽略发帖人的投票。
  •  T表示距离发帖的时间(单位为小时),加上2是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至Hacker News,平均需要两个小时)。
  •  G表示"重力因子"(gravityth power),即将帖子排名往下拉的力量,默认值为1.8,详情请参看。

  

  博客园主页的文章,一直以来都是以时间排序,文章不论优劣,只要发布到首页,都能在首页上走一圈,长期以往,在园内营造一种邋遢的氛围,很多人没有用心写文章就发布到首页,甚至也包括我自己。如果文章以时间和用户评论与推荐多项指标综合考虑,那么可以让真正的精华的文章排在前面。虽然首页也有一个精华板块,但那里几个月前的文章都排在第一页,只能说精华板块的精华文章明显不够用。

  我将博客园首页前10页的文章的标题、URL、阅读次数、推荐次数拿下来,然后按照如下的公式进行排名:  

  其中,v是阅读次数、r是推荐次数,G是一个权重,T是文章发表时间到当前的间隔,T的单位是(10分钟)比如T=100,表示文章发布距现在已经有100个10分钟(即100/6=16个小时了)。

  我们希望的理想排名是优质的文章在第一页最前面部分,而刚出来的文章在第一页的中下部分,随着时间的推迟,新出炉的好文章就会被大家推荐,从而排名上升,而劣质的文章将被时间拉下去,很快退出首页。

  我把前10页的200篇文章排序,并取前50篇,形成一个简洁版的文章首页,然后在linux上例行化,每隔10分钟刷新一次,这样就能看到一个动态的精华首页了。排序公式是我自己想的,(1+r)/v表示推荐比例,即平均一个推荐需要多少次阅读,这有利于优秀的文章迅速提升,刚出炉的优秀文章没有多少阅读量,当看过的的都点赞,那它的权重将很快提升。当然这公式也不尽合理,仅仅是我自己的主观臆断,G我取的是1.2,参数调优可能需要调优。  

  下面是一个样例:

 大家可以在上看一看使用排序后的精华首页(10分钟更新一次)。

  写这篇文章是自己突发奇想,算是给博客园的一些建议吧,希望管理员可以改进,博客园最近在移动端的阅读体验有提示,不知道是我的手机浏览器变好了,还是博客园改进了。另外我认为博客园可以在个性化推荐上进行改进。

  2010年知乎出来时,我在想百度知道已经做得这么强了,现在整一个知乎能有大的成就吗,现在看了知乎已经营造了一个良好的社区,每一个成员的都是认真地回答问题。在每一个细分领域,真的有人把一件事做到极致。

  博客园加油!

  PS:不知道我做的精华首页放在github是否对博客园造成损失,如果有,请管理员通知,我会把例行化取消。

 

 感谢阅读,转载请注明出处:

转载于:https://www.cnblogs.com/fengfenggirl/p/cnblogs-article-rank.html

你可能感兴趣的文章
shell代码模板
查看>>
C语言:1孩半问题
查看>>
分治——最近点对问题 hdu1007
查看>>
php值传参,引用传参以及&对象传参
查看>>
(转)iPhone开发经典语录集锦
查看>>
Linux常用命令
查看>>
Linux文件系统构成(第二版)
查看>>
杭电2099 整除的尾数
查看>>
Struts2--ActionContext及CleanUP Filter
查看>>
Spring MVC 学习笔记 对locale和theme的支持
查看>>
ntp时间同步服务
查看>>
Windows搭建wnmp
查看>>
请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
查看>>
12用户体验
查看>>
http://bbs.phome.net/showthread-13-45519-0.html
查看>>
POJ 1008 Maya Calendar / UVA 300【日期转换/常量数组】
查看>>
Java工具类-转换字符编码
查看>>
Pycharm中如何安装python库
查看>>
C++ transform for_each
查看>>
MySQL安装ODBC驱动出现126错误
查看>>