欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【Hacker News 排名算法工作原理】,下面是详细的分享!
Hacker News 排名算法工作原理
这篇文章我要向大家介绍Hacker News网站的文章排名算法工作原理,以及如何在自己的应用里使用这种算法。这个算法非常的简单,但却在突出热门文章和遴选新文章上表现的异常优秀。
深入 news.arc 程序代码
Hacker News是用Arc语言开发的,这是一种Lisp方言,由Y Combinator投资公司创始人Paul Graham创造。Hacker News的开源的,你可以在arclanguage.org找到它的源代码。深入发掘 news.arc 程序,你会找到这段排名算法代码,就是下面这段:

本质上,这段 Hacker News采用的排名算法的工作原理看起来大概是这个样子:

Score=(P-1) / (T+2)^G 其中, P=文章获得的票数( -1 是去掉文章提交人的票) T=从文章提交至今的时间(小时) G=比重,news.arc里缺省值是1.8
正如你看到的,这个算法很容易实现。在下面的内容里,我们将会看到这个算法是如何工作的。
比重(G)和时间(T)对排名的影响
比重和时间在文章的排名得分上有重大的影响。正常情况下如下面所述:
当T增加时文章得分会下降,这就是说越老的文章分数会越底。当比重加大时,老的文章的得分会减的更快
为了能视觉呈现这个算法,我们可以把它绘制到Wolfram Alpha。
得分随着时间是如何变化的

你可以看到,随着时间的流逝,得分骤然下降,例如,24小时前的文章的分数变的非常低——不管它获得了如何多的票数。
Plot语句:

比重参数是如何影响排名的

图中你可以看到,比重越大,得分下降的越快。
Plot语句:

Python语言实现
之前已经说了,这个评分算法很容易实现:

关键是要理解算法中的各个因素对评分的影响,这样你可以在你的应用中进行定制。我希望这篇文章已经向你说明了这些 
祝编程快乐!
编辑:
Paul Graham 分享了修正后的HN 排名算法:

以上所分享的是关于Hacker News 排名算法工作原理,下面是编辑为你推荐的有价值的用户互动:
相关问题:为什么开发出了这么多的编程语言?
答:reddit / Hacker News的月经帖标题:“.*: a new...在关键的算法思想诸如递归(recursion)和提升逼格(...要学好这两种语言,需要经过大量的实践工作,在实践中... >>详细
相关问题:中国有哪些类似 Hacker News 的网站
答:我认为中国没有任何类似的社区。 从功能而言,类似的网站有很多。但我觉得Hacker News 有两个特性是其他人很难模仿的:1) Hacker News 来自 YCombinator,所以一直以来有源源不断的顶级创业者参入讨论。用户创造的内容质量远远超出其他创业者主题... >>详细
相关问题:中国有哪些类似 Hacker News 的网站?
答:我认为中国没有任何类似的社区。 从功能而言,类似的网站有很多。但我觉得Hacker News 有两个特性是其他人很难模仿的:1) Hacker News 来自 YCombinator,所以一直以来有源源不断的顶级创业者参入讨论。用户创造的内容质量远远超出其他创业者主题... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
