PageRank

引自Lawrence Page, Sergey Brin,Rajeev Motwani, Terry Winograd, 'The PageRank Citation Ranking: Bringing Orderto the Web', 1998,,这篇算法是谷歌创始人Lawrence Page为首创造的PageRank算法,在dataMing里也算是非常有名的算法,由于这个算法和爬虫算法有着密切的联系,很多情况下这两个算法都是在一起实现的,所以这里需要介绍一下。

PageRank_第1张图片

来自于 Google 自己的介绍里面是这么介绍PageRank的,PageRank,有效地利用了 Web 所拥有的庞大链接构造的特性。 从网页A导向网页B的链接被看作是对页面A对页面B的支持投票,Google根据这个投票数来判断页面的重要性。可是 Google 不单单只看投票数(即链接数),对投票的页面也进行分析。「重要性」高的页面所投的票的评价会更高,因为接受这个投票页面会被理解为「重要的物品」。根据这样的分析,得到了高评价的重要页面会被给予较高的 Page Rank(网页等级),在检索结果内的名次也会提高。PageRank 是 Google 中表示网页重要性的综合性指标,而且不会受到各种检索(引擎)的影响。倒不如说,PageRank 就是基于对"使用复杂的算法而得到的链接构造"的分析,从而得出的各网页本身的特性。当然,重要性高的页面如果和检索词句没有关联同样也没有任何意义。为此 Google 使用了精练后的文本匹配技术,使得能够检索出重要而且正确的页面。如上图,具体的算法是,将某个页面的 PageRank 除以存在于这个页面的正向链接,由此得到的值分别和正向链接所指向的页面的 PageRank 相加,即得到了被链接的页面的 PageRank。

注:这里pageRank与网络爬虫结合起来,简单的说,传统的网络爬虫是通过DFS或者BFS或者其剪枝进行优化的结果进行搜索,不过在PageRank下,我们采用的爬行顺序是依照PR值,也就是PageRank计算出来的网页投票数。对于已经下载的网页,连同待抓取URL队列中的URL,形成网页集合,计算每个页面的PageRank值,计算完之后,将待抓取URL队列中的URL按照PageRank值的大小排列,并按照该顺序抓取页面。如果每次抓取一个页面,就重新计算PageRank值,一种折中方案是:每抓取K个页面后,重新计算一次PageRank值。但是这种情况还会有一个问题:对于已经下载下来的页面中分析出的链接,也就是我们之前提到的未知网页那一部分,暂时是没有PageRank值的。为了解决这个问题,会给这些页面一个临时的PageRank值:将这个网页所有入链传递进来的PageRank值进行汇总,这样就形成了该未知页面的PageRank值,从而参与排序。


你可能感兴趣的:(PageRank)