TextRank是一种用于文本的基于图的排序算法。通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名高的句子组合成文本摘要。
文本摘要
文本摘要可以大致分为两类——抽取型摘要和抽象型摘要:
- 抽取型摘要:这种方法依赖于从文本中提取几个部分,例如短语、句子,把它们堆叠起来创建摘要。因此,这种抽取型的方法最重要的是识别出适合总结文本的句子。
- 抽象型摘要:这种方法应用先进的NLP技术生成一篇全新的总结。可能总结中的文本甚至没有在原文中出现。
TextRank的打分思想依然是从PageRank的迭代思想衍生过来的,PageRank主要用于对在线搜索结果中的网页进行排序。
PageRank
PageRank如下公式所示:
Text Rank 公式
等式左边表示一个句子的权重(WS是weight_sum的缩写),右侧的求和表示每个相邻句子对本句子的贡献程度。与提取关键字的时候不同,一般认为全部句子都是相邻的,不再提取窗口。分子wji表示两个句子的相似程度,相似程度wji的计算,推荐使用BM25算法。分母又是一个weight_sum,而WS(Vj)代表上次迭代j的权重。整个公式是一个迭代的过程。
假设我们有4个网页——w1,w2,w3,w4。这些页面包含指向彼此的链接。有些页面可能没有链接,这些页面被称为悬空页面。
- w1有指向w2、w4的链接
- w2有指向w3和w1的链接
- w4仅指向w1
- w3没有指向的链接,因此为悬空页面
为了对这些页面进行排名,我们必须计算一个称为PageRank的分数。这个分数是用户访问该页面的概率。
为了获得用户从一个页面跳转到另一个页面的概率,我们将创建一个正方形矩阵M,它有n行和n列,其中n是网页的数量。
矩阵中得每个元素表示从一个页面链接进另一个页面的可能性。比如,如下高亮的方格包含的是从w1跳转到w2的概率。
如下是概率初始化的步骤:
- 从页面i连接到页面j的概率,也就是M[i][j],初始化为1/页面i的出链接总数wi
- 如果页面i没有到页面j的链接,那么M[i][j]初始化为0
- 如果一个页面是悬空页面,那么假设它链接到其他页面的概率为等可能的,因此M[i][j]初始化为1/页面总数
因此在本例中,矩阵M初始化后如下:
最后,这个矩阵中的值将以迭代的方式更新,以获得网页排名。
TextRank
TextRank算法是一种抽取式的无监督的文本摘要方法。
TextRank与PageRank的相似之处:
- 用句子代替网页
- 任意两个句子的相似性等价于网页转换概率
- 相似性得分存储在一个方形矩阵中,类似于PageRank的矩阵M
- 第一步是把所有文章整合成文本数据
- 接下来把文本分割成单个句子
- 然后,我们将为每个句子找到向量表示(词向量)。
- 计算句子向量间的相似性并存放在矩阵中
- 然后将相似矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子TextRank计算。
- 最后,一定数量的排名最高的句子构成最后的摘要。
网友评论