TextRank算法为文本生成关键字和摘要 您所在的位置:网站首页 最简pagerank算法 TextRank算法为文本生成关键字和摘要

TextRank算法为文本生成关键字和摘要

2022-12-11 03:10| 来源: 网络整理| 查看: 265

TextRank算法为文本生成关键字和摘要

TextRank算法基于PageRank,用于为文本生成关键字和摘要。其论文是:

Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004.

先从PageRank讲起。

PageRank

PageRank最开始用来计算网页的重要性。整个www可以看作一张有向图图,节点是网页。如果网页A存在到网页B的链接,那么有一条从网页A指向网页B的有向边。

构造完图后,使用下面的公式:

S(Vi):是网页i的中重要性(PR值)。d:是阻尼系数,一般设置为0.85。In(Vi):是存在指向网页i的链接的网页集合。Out(Vj):是网页j中的链接存在的链接指向的网页的集合。|Out(Vj)|:是集合中元素的个数。

PageRank需要使用上面的公式多次迭代才能得到结果。

初始时,可以设置每个网页的重要性为1。

上面公式等号左边计算的结果是迭代后网页i的PR值,等号右边用到的PR值全是迭代前的。

举个例子:

上图表示了三张网页之间的链接关系,直觉上网页A最重要。

使用TextRank提取关键字

将原文本拆分为句子,在每个句子中过滤掉停用词(可选),并只保留指定词性的单词(可选)。由此可以得到句子的集合和单词的集合。

每个单词作为PageRank中的一个节点。设定窗口大小为k,假设一个句子依次由下面的单词组成:

w1, w2, w3, w4, w5, ..., wn

w1, w2, ..., wk 、 w2, w3, ...,wk+1 、 w3, w4, ...,wk+2 等都是一个窗口。在一个窗口中的任两个单词对应的节点之间存在一个无向无权的边。 

基于上面构成图,可以计算出每个单词节点的重要性。最重要的若干单词可以作为关键词。

使用TextRank提取关键短语

参照“使用TextRank提取关键词”提取出若干关键词。若原文本中存在若干个关键词相邻的情况,那么这些关键词可以构成一个关键短语。

例如,在一篇介绍“支持向量机”的文章中,可以找到三个关键词 支持、向量、机 

,通过关键短语提取,可以得到 支持向量机

使用TextRank提取摘要

将每个句子看成图中的一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。

通过PageRank算法计算得到的重要性最高的若干句子可以当作摘要。

论文中使用下面的公式计算两个句子Si和Sj的相似度:

分子是在两个句子中都出现的单词的数量。|Si|是句子i的单词数。

由于是有权图,PageRank公式略做修改:

实现TextRank

Python 2.7的TextRank针对 中文文本 的库 TextRank4ZH​​​​​​​ : ​​​​​​​​​​​​​​

 jieba 分词:提供基于TextRank的关键词提取工具。 snownlp:也实现了关键词提取和摘要生成。

HanLP中Java开源实现:HanLP自然语言处理包开源-码农场

END



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有