TextRank算法:提取关键词+摘要

前言

TextRank算法是基于PageRank的思想用在来文本领域,具体的PageRank算法可以参考我的博客:PageRank 页面排名算法。接下来就让我们了解一下怎么用在文本领域。

概念

PageRank有节点、入链的概念,那么在文本领域怎么类比呢?

  • 节点:可以是句子,也可以是关键词
  • 入链、出链:textRank默认所有句子之间都是互相链接的,相当于每一个句子都是N-1的句子关联。

句子:摘要

关系矩阵以N个句子构建一个N*N的关系矩阵,这样句子之间的关系如何计算?

  • 简单一点就PageRank的出链计算,但是这里出链都是一样的,无差异,每个句子的出链都是(N-1),所以矩阵里的元素都是一样的,迭代都无法有差异,无效的方法。
  • 另一种就是计算句子之间的相似度,句子之间共同出现的次数,或者one-hot模型构建句子,计算句子之间的相似性,举例: v j v_j vj指向 v i v_i vi,两个句子 v i v_i vi v j v_j vj之间的相似性占 v j v_j vj与其他句子的相似性总和的占比,作为 v j v_j vj-> v i v_i vi的关系系数

这样就可以有如下公式:
W v i = ( 1 − d ) + d ∗ ∑ v j ∈ I n ( v i ) s i j ∑ v k ∈ o u t ( v j ) w j k ∗ W v j W_{v_i}=(1-d)+d*\sum_{v_j\in In(v_i)}\frac{s_{ij}}{\sum_{v_k\in out(v_j)}w_{jk}}*W_{v_j} Wvi=(1d)+dvjIn(vi)vkout(vj)wjksijWvj

参数解析:

  • I n ( v i ) In(v_i) In(vi):表示 v i v_i vi的所有入链,其实就是除自己以外的其他句子,(n-1)个句子。
  • ∑ v k ∈ o u t ( v j ) w j k \sum_{v_k\in out(v_j)}w_{jk} vkout(vj)wjk:相似性之和
  • O u t ( v j ) Out(v_j) Out(vj):表示 v j v_j vj的所有出链,其实就是除自己以外的其他句子,(n-1)个句子。

这样就可以更新句子的分数,选取分数高的Top(n)个句子作为摘要。作为摘要模型时,构建的图都是完全无向图,这里大家画一画就能理解。

单词:提取关键词

关键词的问题在于如何构建关键词之间的联系,没有联系就难以得到其他关键词跟我的关系系数,RageRank的算法需要节点之间的关系,才可以迭代计算。所以想法就是:

  • 窗口:关键词位置的一个窗口大小是不是有其他单词出现,意思就是这两个关键词是不是相邻,用位置信息来衡量相关性,有的话就有权重,这里反而说明一点,并不是所有关键词之间都是互联的,跟句子摘要是有差别的。
  • wordEmbeding:词嵌入方式,把每个单词映用向量表示,这样就可以用来计算两者的相似性。

这样计算公式还是上述的那个公式,变动不大。

优点、缺点

优点:

  • 无监督学习,使用者不需要有深入的语言学或者专业领域知识;
  • 使用基于图的排序算法,综合考虑文本整体的信息来确定哪些words或者sentences可以更好的表达文本;

缺点:

  • 不能覆盖大部分的文本话题
  • 文本信息有点重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值