pageRank---python实现

预先为每个URL计算好PageRank值,并将计算结果保存到数据表中,该函数会在每次执行期间重新计算所有的pageRank值

该函数最初将每个网页的PageRank值设为1,然后遍历每个URL,并针对每个外部回指链接,得到其pagerank值与链接的总数,并以粗体显示代码行给出的应用与每个外部链接的计算公式

def calculatepagerank(self,iterations=20):
    #清除当前的PageRank表
    self.con.execute('drop table if exists pagerank')
    self.con.execute('create table pagerank(urlid primary key,score)')
    
    #初始化每个url,令其pagerank值为1
    self.con.execute('insert into pagerank select rowid, 1.0 from urllist')
    self.dbcommit()
    for i in range(iterations):
        print 'Iteration%d'%(i)
        for (urlid,) in self.con.execute('select rowid from urllist'):
            pr=0.15
            #循环遍历指向当前网页的所有其他网页
            for (linker,) in self.con.execute('select distinct fromid from link\
            where toid=%d'%urlid):
                linkingpr=self.con.execute('select score from pagerank where urlid=%d'%linker).fetchone()[0]
                pr+=0.85*(linkingpr/linkingcount)
                self.con.execute('update pagerank set score=%f where urlid=%d'%(pr,urlid))
            self.dbcommit()
            

 

转载于:https://www.cnblogs.com/csxf/p/3784275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值