《信息检索之PageRank算法.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《信息检索之PageRank算法

一、实验目的 理解PageRank算法的基本思想和原理; 了解链接结构分析的应用和意义(主要是与排序因素的融合); 了解PageRank的简化算法、标准算法和加速算法的异同及改进办法。 二、实验原理及基本技术路线图(方框原理图) PageRank是Google公司的拉里·佩奇(Larry Page)等人提出的链接分析算法,算法也以佩奇的姓氏命名为“PageRank”。PageRank是根据万维网超链接关系对网页重要程序进行估计的算法,相关技术在2008年1月申请了美国专利,并在同年谢尔盖·布林和拉里·佩奇的论文“大规模超文本万维网搜索引擎的架构”(The Anatomy of a Large-Scale Hypertextual Web Search Engine)中首次被公开。 PageRank依靠万维网链接结构分析对网页个体的质量进行评估,算法将从页面A到页面B的超链接作为A向B的一次投票,但并非简单地靠统计票数来衡量质量高低,算法还充分考虑了投票者的因素,本身较“重要”的网页的投票会更受重视。显然这样计算出的网页质量评估结果比单纯依靠入度的评估方式更为合理,因为后者实质上是认为链接向当前页面的各个页面的地位是平等的,这是一个不符合万维网实际情况的假设。 PageRank是一种衡量“网页质量”的方式,由于“质量”的定义本身带有很强的主观性,因此“网页质量”的定义也千差万别,可以从时效性、页面结构组织、独特性等不同角度加以定义,而HITS算法使用的“链接权威度”与“内容权威度”也是一种“网页质量”的定义方式。对于PageRank而言,它使用用户随机浏览互联网时访问到某个页面的概率大小作为此页面的“质量”的定义。 PageRank算法所建立的用户浏览模型被称为“随机游走”(random walk)模型。用户使用一个特殊的浏览器来浏览网页,这个浏览器没有地址栏、后退按钮,即只能顺着网页链接浏览。同时提供一个“随便逛逛”的功能,可以通过点此按钮随机打开万维网上的一个网页开始浏览。那么,网页A被访问的概率可以用如下公式计算得到: 上式右半部分是使用“随便逛逛”功能访问到页面A的概率,而后半部分则是使用超链接访问到页面A的概率,两者相加即为访问到页面A的总概率大小。可知,如果给定参数α,页面A的PageRank值事实上是由链接到它的各个页面的PageRank值决定的。其计算过程与HITS算法的计算过程类似,也是一个迭代计算的过程,算法流程如下所示: 上述算法要求G中不存在没有超链接的“死胡同”网页,为解决这一问题,可以采用如下算法: 可以看出,与简化算法相比,标准算法考虑到没有超链接网页的情况,对这部分网页,“随机游走”的浏览方式则只能点击“随便逛逛”功能进行跳转,而任何G中的网页都可能成为跳转目标。因此步骤(1)中需要在G的网页集合中均分这部分“死胡同”网页的PageRank值。事实上,这相当于先在“死胡同”网页和G中的所有网页两两之间添加了一条虚拟的超链接,之后,再在这个经过修改的链接关系图上进行简化算法。 三、所用仪器、材料(设备名称、型号、规格等) 硬件:PC机一台 操作系统:Windows 7 编程语言:Java IDE:eclipse 3.5.2 四、实验方法、步骤 编程实现PageRank算法,能够对测试数据计算PageRank算法,并输出每次迭代的计算结果。要求给出详细的算法设计过程 五、实验过程原始记录(数据、图表、计算等) 本次实验使用与实验五中数据结构相同的Web图,将图的结点和边信息读入,并在此基础上使用PageRank简化算法计算每个页面的PageRank值。 计算PageRank的主要部分代码 /** * PageRank类的构造方法 * @param webGraph web图 */ public PageRank(WebGraph webGraph) { this.webGraph = webGraph; this.pageRankScores = new HashMapInteger, Double(); this.nodeCount = this.webGraph.getNodeCount(); // 初始PageRank值设为1/nodeCount for (int i = 0; i nodeCount; i++) { pageRankScores.put(i, 1.0 / nodeCount); } // 设用户点击随便逛逛的概率为0.2, 最大迭代次数为100, 计算结点PageRank值 computePageRank(100, 0.2); } /** * 计算结点PageRank值 * * @par

文档评论(0)

tiantiande + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档