根据这篇文章,加权二合字母的权重对图表的页面排名有影响。我已经尝试了那篇文章中的代码:
from networkx.algorithms.link_analysis.pagerank_alg import pagerank_numpy
ddd=nx.DiGraph()
ddd.add_weighted_edges_from([('A','B',0.5),('A','C',0.5)])
print(pagerank_numpy(ddd))
ddd['A']['C']['weight']=1
print(pagerank_numpy(ddd))
>>> {'A': 0.2597402597402597, 'B': 0.37012987012987014, 'C': 0.37012987012987014}
>>> {'A': 0.2597402597402599, 'B': 0.3333333333333334, 'C': 0.40692640692640686}
但是,与此同时,pagerank_numpy
有一个名为weight
的参数。根据文档:
权重(键,可选(– 用作权重的边缘数据键。如果"无",则权重设置为 1。
在上面的示例中,未设置weight
,但似乎权重并未全部设置为 1。那么,这个参数weight
真正做什么呢?
网络X版本:2.1
PageRank 算法根据网络上的随机游走为节点分配权重。 我们可以通过偏向步行来修改算法,使其比其他边缘更遵循某些边缘。 为此,我们对网络的边缘进行了加权。 Networkx对边缘权重非常灵活。 我们可以有名称为'weight'
或'scale_factor'
或'relative_frequency'
的权重或任何我们想命名它们的字符串。 因此,PageRank算法需要知道要使用哪个名称。
这就是您在向算法传递weight
参数时告诉算法的内容。 如果它没有得到这一点,它将所有边缘视为权重为 1。