1

16603681582

V1

2022/08/08阅读:18主题:嫩青

1

PageRank

假设一共有 4 个网页 A、B、C、D。它们之间的链接信息如图所示: 一个网页的影响力 = 所有入链集合的页面的加权影响力之和,用公式表示为:

针对 v,它能给 u 带来的影响力是其自身的影响力 PR(v) 除以 v 页面的出链数量,即页面 v 把影响力 PR(v) 平均分配给了它的出链,这样统计所有能给 u 带来链接的页面 v,得到的总和就是网页 u 的影响力,即为 PR(u)。

实际情况会比这个复杂,可能会面临两个问题:

  1. 等级泄露(Rank Leak):如果一个网页没有出链,就像是一个黑洞一样,吸收了其他网页的影响力而不释放,最终会导致其他网页的 PR 值为 0。
  1. 等级沉没(Rank Sink):如果一个网页只有出链,没有入链(如下图所示),计算的过程迭代下来,会导致这个网页的 PR 值为 0

假设了这样一个场景:

用户并不都是按照跳转链接的方式来上网,还有一种可能接输入网址访问其他页面,虽然这个概率比较小。 所以定义了阻尼因子 d,这个因子代表了用户按照跳转链接来上网的概率,通常可以取一个固定值 0.85,而 1-d=0.15则代表了用户不是通过跳转链接的方式来访问网页的,即直接输网址

import networkx as nx
# 创建有向图
G = nx.DiGraph()
# 有向图之间边的关系
edges = [("A""B"), ("A""C"), ("A""D"), ("B""A"), ("B""D"), ("C""A"), ("D""B"), ("D""C")]

for edge in edges:

     G.add_edge(edge[0], edge[1])

pagerank_list = nx.pagerank(G, alpha=1)
#alpha即阻尼因子
print("pagerank 值是:", pagerank_list)


请尊重作者劳动成果,转载请标明原文链接:

https://www.cnblogs.com/jpcflyer/p/11180263.html

分类:

后端

标签:

后端

作者介绍

1
16603681582
V1