pageRank和TextRank

PageRank算法通过网页间的链接关系评估网页的重要性。TextRank算法借鉴PageRank思想,应用于文本处理,实现关键词和关键句的抽取。

ageRank和TextRank

PageRank

PageRank原理

pangRank是用于对网页进行排名的算法。通俗的讲就是对每个网页进行打分,根据得分高低进行排序。怎么打分?

打分思路如下:

1.假如有个网页C

2.当连接(其他网页可以跳转到C)到C的网页越多(A和B的数量越多),C的比重(pagerank值)应该越高。

3.当链接到C的网页的本身比重越高时(A和B本身体的分数越高),C的比重应该越高。

在这里插入图片描述

PageRank论文:

《The PageRank Citation Ranking: Bringing Order to the Web》

具体实现:

假设互联网是一个有向图,ABC三个节点代表网页,每条边代表转移比重。

在这里插入图片描述

每个网页都会以等概率跳转到它链接到的网页,跳转是随机的,这就形成了一个随机游走模型,即一阶马尔可夫链 。初始化时每个节点的权重都是1,随着不断的跳转,不断的迭代。这个马尔科夫链会逐渐的形成一种平稳分布。

在这里插入图片描述

权重(PageRank值)的计算公示如下:

在这里插入图片描述

公式来源于何晗:自然语言处理入门 S ( v i ) S(v_i) S(vi)是某个节点的权重,初始都是1,d是介于(0,1)之间的常熟因子,模拟用户通过点击链接跳转到这个页面的概览,1-d就是用户通过输入网址到这个页面的概览。 I n ( v i ) In(v_i) In(vi)表示能链接到 V i V_i Vi的节点的集合, O u t ( V j ) Out(V_j) Out(Vj)表示从 V j V_j Vj出发的链接的集合。所以从 V − j V-j Vj发出的链接越多,每个链接的权重就越小。以figure2为例,权重为9的节点,总过发出了3条链接,则每条链接的权重为9/3=3。

PageRank程序设计

以figure3为例,假设有ABC三个节点,初始时刻三个节点的权重都是1,

在这里插入图片描述

设计程序计算ABC最终的权重:

#coding=utf8

class Node():
    
    #初始化一个节点
    def __init__(self, value=1, childrens=set(), name=''):
        '''初始时刻所有节点的权重都是1'''
        self.value = value
        self.childrens = childrens
        self.name = name
        
    def __repr__(self):
      
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值