我正试图理解 Google PageRank 背后的概念,并试图在 Python 中实现一个类似的(虽然是基本的)版本。我花了最后几个小时来熟悉该算法,但它仍然不是那么清楚。
我特别找到了一个interesting website概述了 PageRank 在 Python 中的实现。但是,我似乎不太理解此页面上显示的所有功能的用途。任何人都可以澄清这些功能到底在做什么,尤其是 pageRankeGenerator?
最佳答案
我会尝试从我的个人笔记中对 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
第一轮
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
第二轮
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
第三轮
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
...
关于PageRank 的 Python 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950627/