建站资讯

免费试用
您的位置: 首页 > AI建站 > 建站资讯

pagerank是什么算法?PageRank算法与实践

如果让我们自己去做搜索的话,我们能够想到的是文章和搜索词的相关性,以此来判断这个文章是否是我们想要的,最开始的搜索有的是这样做的,还有的是按照网站的种类做个大的索引表,但是可以索引的关键字有限。

互联网上的网页估计有千百亿规模了(猜测),那么显然不是所有包含搜索关键字的网页都同等重要。有的在标题中包含关键字,有的在文档中包含关键字;有的是权威机构网站,有的是个人博客,显然在给用户返回网页的时候,比较重要的网页的应该排在前面,不重要的网页信息排在后面。那又来一个问题,如何确定一个网页的重要性那。

网页是通过链接来组织的,那么我们可以把整个互联网看成一张大的图,每个节点为一个个网页,网页之间的链接看成边。网页是否重要,要看是否有多个网页链接到它。被越多网页链接的网页越重要,当然链接这个网页的多个链接的重要性又是不相同的。

假设我们搜索得到很多网页,其中一个网页Y的排名应该来自所有指向这个网页X1,X2,X3的权重之和:

Y网页的权重 = X1+X2+X3...+Xn
而X1,X2,...Xn的权重分别是多少,如何度量,这又需要通过链接到它的网页的权重来计算,这样循环往复,就无解了。据说是Google的布林破解了这个怪圈,就是开始的时候给每个网页设置相同的初始值,那么经过多轮计算后,这个算法可以保证网页排名多次之后回收敛到排名的真实值。

我理解下,大概是这样子的:


第一轮的时候,我们假设所有网页的权重都是1,那么A这个网页的权重为1+1+1为3, 第二轮计算的时候,与A相连的网页权重变成了2,那么最终A这个网页的权重就变成了2+2+2=6,这样多次计算后,被更多权重高的网页链接的网页,排名靠前,其他的靠后。

这整个过程有点类似于民主选举,选举过程中每个人的票的权重又是不一样的,这和现实也很类似。 那么PageRank算法除了计算网页排名还有什么用那,数据实战45讲里面,有个例子比较有意思,计算泄露出来希拉里邮件列表中的人物影响力的情况,通过python的networkx库可以方便地计算PageRank的值。

下面的网络图的:


简单的计算PageRank的代码:

import networkx as nx# 创建有向图G = nx.DiGraph() # 有向图之间边的关系edges = [('B1', 'B'), ('B2', 'B'), ('C1', 'C'), ('C2', 'C'), ('D1', 'D'), ('D2', 'D'), ('D', 'A'), ('C', 'A'), ('B', 'A')]for edge in edges:  G.add_edge(edge[0], edge[1])pagerank_list = nx.pagerank(G, alpha=1)print('pagerank值是:', pagerank_list)

结果:


整个数据集合分为三个文件:Aliases.csv,Emails.csv和Persons.csv,其中Emails文件为邮件内容,包括重要的发送者和接收者信息。 Persons文件统计邮件中所有人的姓名和对应ID。 下面代码是数据实战中的代码直接拿过来了,其实过程也是比较简单,只是这个思路比较重要。

# -*- coding: utf-8 -*-# 用 PageRank 挖掘希拉里邮件中的重要任务关系import pandas as 

上一篇:网站权重是什么意思?网站权重等级排名怎么提高?
下一篇:福州网站推广需要什么?福州网站推广具体方法介绍
15分钟在线开通试用:网易外贸通服务,送京东购物卡,来电咨询享额外优惠    
立即体验

海量外贸大数据

50亿+海关数据,1.2亿全球企业信息

全触点营销获客方案

超高触达率邮件营销,全链路外贸获客沉 淀管理解决方案

专业企业服务

年深厚企业服务经验,一对一专家服务

电话咨询:4006-138-163

购买咨询

在线客服

电话咨询

致电专属客服
咨询邮箱解决方案

4006-138-163

电话咨询

微信扫一扫
在线开通企业域名后缀邮箱

微信咨询

微信咨询

申请试用

申请试用

返回顶部