1

私は Google PageRank の背後にある概念を理解しようとしており、Python で同様の (初歩的な) バージョンを実装しようとしています。ここ数時間、アルゴリズムに慣れるのに費やしましたが、まだそれほど明確ではありません。

Python での PageRank の実装の概要を説明している、特に興味深い Web サイトを見つけました。ただし、このページに示されているすべての関数の目的を完全には理解していないようです。関数、特に 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 に答える