作业第三步----Top10的最重要页面

      到了这一步,这次的作业基本计算完成了。通过得到url的出入度信息,排出Top10的最重要页面。

      在抓取过程中,我们创建了自己Extractor,然后又在BdbFrontier中修改了代码实现了出入度的文件保存,于是接下来只需对文件进行分析利用pageRank算法即可。

      思路一:

      这是最常规的方法,也是第一时间可以相处的方法,就是利用出度关系,直接构造一个邻接矩阵,读取矩阵之后进行

 

n G= 0.85*L T +0.15/11(1 N )
n P 0 =(1/11,1/11,….) T
n P 1 =GP 0
      迭代计算,直接动手实现。课堂上老师提到了Matlab,所以我们决定小试一下,Matlab由于其数据解围矩阵形式保存,所以处理矩阵会有很大优势。
      所以代码中只是简单的调用Matlab的一些现成的函数即可轻松完成。代码极其简单
matrix
x=0.15
[line,row]=size(M)
P=ones(line,1)/line
i=0
E=ones(line,line)
while i<10
    G=(1-x)*M.'+x*E/line
    P=G*P
    P=P/sum(P)
    i=i+1
end
      这里建设矩阵存在matrix.m文件中,直接循环计算。
      貌似到这里已经很完美的解决了作业,问题出现了:ccer有近20000页面,存成矩阵的话就会有20000x20000个元素,简单计算一下生成的纯文本文件将会多达数G,计算的效率如何保证?
      思路二:
      由于一中存在的严重问题,自然而然的想到稀疏矩阵的表示,然而在Heritrix中,我们只保存了每个页面及其的出度,以及页面的列表,因此需要利用这两个文件构造出系数矩阵的表达形式。
      具体操作可以有很多选择,为了提高效率我们选择了C++语言,具体实现此处不再赘述。
      得到稀疏矩阵之后,就可以逐行对其进行操作,大大提高了效率。
     
      结果数据仍在处理之中,稍后奉上。
      P.S.首先感谢国家,然后感谢戴志伟童鞋,正是他对我们的数据量产生了质疑使得我们如梦初醒,蓦然回首,发现是在过于信任数学软件而忽略了数据本身的庞大,特此表示感谢。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值