Hacker News 排名算法工作原理 -- 算法 -- IT技术博客大学习 -- 共学习 共进步!

   这篇文章我要向大家介绍Hacker News网站的文章排名算法工作原理,以及如何在自己的应用里使用这种算法。这个算法非常的简单,但却在突出热门文章和遴选新文章上表现的异常优秀。

深入 news.arc 程序代码

   Hacker News是用Arc语言开发的,这是一种Lisp方言,由Y Combinator投资公司创始人Paul Graham创造。Hacker News的开源的,你可以在arclanguage.org找到它的源代码。深入发掘 news.arc 程序,你会找到这段排名算法代码,就是下面这段:

; Votes divided by the age in hours to the gravityth power.
; Would be interesting to scale gravity in a slider.

(= gravity* 1.8 timebase* 120 front-threshold* 1 
   nourl-factor* .4 lightweight-factor* .3 )

(def frontpage-rank (s (o scorefn realscore) (o gravity gravity*))
  (* (/ (let base (- (scorefn s) 1)
          (if (> base 0) (expt base .8) base))
        (expt (/ (+ (item-age s) timebase*) 60) gravity))
     (if (no (in s!type 'story 'poll))  1
         (blank s!url)                  nourl-factor*
         (lightweight s)                (min lightweight-factor* 
                                             (contro-factor s))
                                        (contro-factor s))))

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

Score = (P-1) / (T+2)^G

其中,
P = 文章获得的票数( -1 是去掉文章提交人的票)
T = 从文章提交至今的时间(小时)
G = 比重,news.arc里缺省值是1.8

   正如你看到的,这个算法很容易实现。在下面的内容里,我们将会看到这个算法是如何工作的。

比重(G)和时间(T)对排名的影响

   比重和时间在文章的排名得分上有重大的影响。正常情况下如下面所述:

本文由外刊IT评论网(www.aqee.net)原创发表,文章地址:Hacker News 排名算法工作原理,[英文原文:How Hacker News ranking algorithm works ]

觉得文章有用?立即: 和朋友一起

共学习 共进步!

本文作者:

而且,对文章有任何想法,可:

正在拼命挖掘沟通路线,马上就通了!

我们猜你喜欢:

  1. 用skip list实现实时排名?    (阅读:3380)
  2. IMDB评分排名算法    (阅读:2720)
  3. 实时排名,其实很简单    (阅读:2260)
  4. 数学之美:Reddit评论排名算法    (阅读:2180)
  5. 数学之美:Hacker News的热门排名算法    (阅读:2020)
  6. 数学之美:StackOverflow问答排名算法    (阅读:1620)
  7. Reddit排名算法工作原理    (阅读:400)