文本抽取Textrank算法

理论基础

Textrank

实际上,TextRank就是PageRank在文本上的应用。
PageRank是一种用于排序网页的随机算法,它的工作原理是将互联网看作有向图,互联网上的网页视作节点,节点 V i V_i Vi到节点 V j V_j Vj,的超链接视作有向边,初始化时每个节点的权重 S ( V i ) S(V_i) S(Vi)都是1,以迭代的方式更新每个节点的权重。每次迭代权重的更新表达式如下:
S ( V i ) = ( 1 − d ) + d × ∑ V j ∈ I n ( V j ) 1 ∣ O u t ( V j ) ∣ S(V_i)=(1-d)+d\times{\sum_{V_j\in{In(V_j)}}\frac{1}{|Out(V_j)|}} S(Vi)=(1d)+d×VjIn(Vj)Out(Vj)1

其中 d d d是一个介于 ( 0 , 1 ) (0,1) (01)之间的常数因子,在PageRank中模拟用户点击链接从而跳出当前网站的概率
. I n ( V j ) In(V_j) In(Vj)表示链接到的节点集合
. O u t ( V j ) Out(V_j) Out(Vj)表示从 V j V_j Vj出发链接到的节点集合

可见,并不是外链越多,网站的PageRank就越高。网站给别的网站做外链越多,每条外链的权重就越低(如垃圾网站之间相互链接)。因为根据式中的分式 1 ∣ O u t ( V j ) ∣ \frac{1}{|Out(V_j)|} Out(Vj)1,外链权重跟外链总数成反比,与提供外链的网站权重成正比。如果一个网站的外链都是这种权重很低的外链,那么在迭代中它的PageRank会下降。

对于文本关键词提取也是类似的,与之前的TF-IDF算法需要依赖语料库不同,基于TextRank的关键词抽取算法,可以把文本中的每个词看作是一个节点/网页,把文本中词的共现关系看作是边/链接。与PageRank不同的是,PageRank中是有向边,而TextRank中是无向边或可以看作是双向边,具有共现关系的两个词互相指向。
参考链接
所谓的共现关系,就是对文本进行预处理(分词,去停用词,以及词性标注/筛选)后,设置一个默认大小为m的窗口,在文本中从头到尾依次滑动,同一个窗口中的任意两个词之间都连一条边(无向边,入度 I n ( V j ) In(V_j) In(Vj)和出度 O u t ( V j ) Out(V_j) Out(Vj)完全一致)。画出图之后,对每个词 S ( V i ) S(V_i) S(Vi)赋于一个初始值 S 0 ( V i ) S_0(V_i) S0(Vi),然后代入上述公式进行迭代,直到收敛(在某次更新前后, S ( V i ) S(V_i) S(Vi)不再变化).最终选择按词语/节点的Rank值降序排列,选择TopN作为我们的关键词。

基本步骤:

  1. 对给定的文本进行断句,按?。!等进行分隔

  2. 对于每个句子,进行分词,去除停用词,词性标注。并保留指定的词性,如名词、动词等,去掉其他无关词性的词语。作为候选关键词

  3. 基于候选关键词,构建图G=(V,E),其中V是节点集/候选关键词集合,通过设置窗口和共现关系构造任意两个节点/词语之间的边,两个节点/词语之间存在边当且仅当这两个节点/词语在长度为m的窗口中共同出现过,窗口从头到尾不断滑动。

  4. 根据PageRank迭代公式,初始化每个节点/词语的权重/Rank值(可以是1/N,N为节点/词语数量),针对每个节点/词语,代入上述公式进行迭代,直至收敛。

  5. 对所有节点/词语最终的权重/Rank值进行降序排列,选择TopN作为我们的关键词

  6. 由5得到最重要的N个词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。

TextRank与TF-IDF比较

1.tf-idf中计算idf值需要依赖于语料库,这给他带来了统计上的优势,即它能够预先知道一个词的重要程度.这是它优于textrank的地方. 而textrank只依赖文章本身,它认为一开始每个词的重要程度是一样的.

2.tf-idf是纯粹用词频的思想(无论是tf还是idf都是)来计算一个词的得分,最终来提取关键词,完全没有用到词之间的关联性. 而textrank用到了词之间的关联性(将相邻的词链接起来),这是其优于tf-idf的地方.

TF-IDF和TextRank各有优劣,在实际使用中效果差异不大,可以同时使用互相参考。

参考链接
https://blog.csdn.net/sdu_hao/article/details/86768966
https://blog.csdn.net/sdu_hao/article/details/86768966

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值