搜索引擎优化创始人(【干货】12轮之后各个页面的PR迭代结束哪?)

优采云 发布时间: 2021-12-14 11:03

  搜索引擎优化创始人(【干货】12轮之后各个页面的PR迭代结束哪?)

  正文835字,8张图片,预计阅读时间6分钟。

  1、PageRank

  1.1.简介

  PageRank,又称页面排名和谷歌左侧排名,是搜索引擎根据网页之间的相互超链接计算得出的一项技术。作为页面排名的要素之一,它基于创始人拉里佩奇(Larry Page)。谷歌用它来反映网页的相关性和重要性,常用于评价网页优化在搜索引擎优化操作中的有效性。

  假设一组4个网页:A、B、C和D。如果所有页面都只链接到A,那么A的PR(PageRank)值将是B、C和D的Pageranks的总和。

  

  再次假设 B 链接到 A 和 C,C 只链接到 A,而 D 链接到所有其他 3 个页面。一个页面总共只有一个投票。所以 B 给 A 和 C 每页半票。使用相同的逻辑,只有 D 的三分之一选票被计入 A 的 PageRank。

  

  1.2. 公式

  对于一个页面 A,那么它的 PR 值为:

  

  这个值是根据浏览者使用浏览器书签的平均频率估算的,通常是d=0.85

  还有一个版本的公式:

  

  N是总页数

  1.3.具体例子

  

  三页 A、B、C

  为了计算方便,我们假设每个页面的初始PR值为1,d为0.5。

  

  

  

  以下是每页经过12轮迭代计算后的PR值:

  

  那么迭代什么时候结束呢?一般应设置收敛条件:例如,如果上次迭代的结果和本次迭代的结果小于某个误差,则结束程序;例如,还可以设置最大循环次数。

  2、代码实现

   1import numpy as np<br /> 2from scipy.sparse import csc_matrix<br /> 3<br /> 4def pageRank(G, s=.85, maxerr=.0001):<br /> 5"""<br /> 6Computes the pagerank for each of the n states<br /> 7Parameters<br /> 8----------<br /> 9G: matrix representing state transitions<br />10Gij is a binary value representing a transition from state i to j.<br />11s: probability of following a transition. 1-s probability of teleporting<br />12to another state.<br />13maxerr: if the sum of pageranks between iterations is bellow this we will<br />14    have converged.<br />15"""<br />16n = G.shape[0]<br />17# 将 G into 马尔科夫 A<br />18A = csc_matrix(G, dtype=np.float)<br />19rsums = np.array(A.sum(1))[:, 0]<br />20ri, ci = A.nonzero()<br />21A.data /= rsums[ri]<br />22sink = rsums == 0<br />23# 计算PR值,直到满足收敛条件<br />24ro, r = np.zeros(n), np.ones(n)<br />25while np.sum(np.abs(r - ro)) > maxerr:<br />26ro = r.copy()<br />27for i in range(0, n):<br />28    Ai = np.array(A[:, i].todense())[:, 0]<br />29    Di = sink / float(n)<br />30    Ei = np.ones(n) / float(n)<br />31    r[i] = ro.dot(Ai * s + Di * s + Ei * (1 - s))<br />32 # 归一化<br />33 return r / float(sum(r))<br />34 if __name__ == &#39;__main__&#39;:<br />35 # 上面的例子<br />36 G = np.array([[0, 0, 1],<br />37          [1, 0, 0],<br />38          [1, 1, 0]])<br />39 print(pageRank(G, s=0.85))<br />40 # 结果:<br />41 [0.51203622 0.19313191 0.29483187]<br />

  3、参考资料

  1、Pagerank 算法解释()

  2、【大创_社区分部】——PageRank算法解析与Python实现()

  3、 简单入口和简单入口:PageRank算法()

  4、PageRank()

  原文链接:

  更简洁便捷的分类文章以及最新的课程和产品信息,请移步最新呈现的“LeadAI学院官网”:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线