搜索引擎优化创始人(【干货】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__ == '__main__':<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学院官网”: