1

我试图理解 Google PageRank 背后的概念,并试图在 Python 中实现一个类似的(虽然是初级的)版本。在过去的几个小时里,我一直在熟悉这个算法,但仍然不是很清楚。

我找到了一个特别有趣的网站,它概述了 PageRank 在 Python 中的实现。但是,我似乎不太了解此页面上显示的所有功能的用途。谁能澄清一下这些函数到底在做什么,尤其是 pageRankeGenerator?

4

1 回答 1

8

我将尝试从我的个人笔记中对 PageRank 算法给出一个简单的解释(定义)。

假设页面 T1, T2, ... Tn 指向页面 A,那么

PR(A) = (1-d) + d * (PR(T1) / C(T1) + ... + PR(Tn) / C(Tn))

在哪里

  • PR(Ti)是Ti的PageRank
  • C(Ti) 是来自页面 Ti 的传出链接数
  • d 是倾销因子,范围 0 < d < 1,通常设置为 0.85

每个 PR(x) 的起始值都可以是1,我们通过对每个页面重复算法约 10-20 次来调整页面排名。

A、B、C 页的示例:

   A <--> B
   ^     /
    \   v
      C

第 1 轮
A = 0.15 + 0.85 (1/2 + 1/1) = 1.425
B = 0.15 + 0.85 (1/1) = 1
C = 0.15 + 0.85 (1/2) = 0.575

回合总和 = 3

第 2 轮
A = 0.15 + 0.85 (1/2 + 0.575) = 1.06375
B = 0.15 + 0.85 (1.425) = 1.36125
C = 0.15 + 0.85 (1/2) = 0.575

回合总和 = 3

第 3 轮
A = 0.15 + 0.85 (1.36125/2 + 0.575) = 1.217
B = 0.15 + 0.85 (1.06375) = 1.054
C = 0.728

回合总和 = 3

...

于 2010-10-16T20:56:52.643 回答