我试图理解Google PageRank背后的概念,并试图在Python中实现类似(虽然简陋)的版本。我花了最后几个小时熟悉算法,但它仍然不是那么清楚。
我找到了一个特别的interesting website,它概述了Python中PageRank的实现。但是,我似乎无法理解本页所示所有功能的用途。任何人都可以澄清这些函数到底在做什么,特别是pageRankeGenerator?
答案 0 :(得分:8)
我将尝试从我的个人笔记中给出PageRank算法的简单解释(定义)。
让我们说页面T1,T2,... Tn指向页面A,然后是
PR(A) = (1-d) + d * (PR(T1) / C(T1) + ... + PR(Tn) / C(Tn))
,其中
每个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
round的总和= 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
round的总和= 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
round的总和= 3
...