TextRank算法总结

article/2025/8/28 16:55:25

TextRank算法总结


最近在调研自动生成文本方面的内容,突然想到了自动文摘里的textRank,这里我将参考了一些资料并对这些知识点进行了整理总结,初步总结如下:

目录


    • PageRank简介
    • 基于TextRank的关键词提取
    • 基于TextRank的关键词短语提取
    • 基于TextRank的自动文摘
    • 参考资料


PageRank简介

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

S(Vi)是网页i的中重要性(PR值)。d是阻尼系数,一般设置为0.85。In(Vi)是存在指向网页i的链接的网页集合。Out(Vj)是网页j中的链接存在的链接指向的网页的集合(也就是说网页j中指出去的链接网页集合)。|Out(Vj)|是集合中元素的个数。
PageRank需要使用上面的公式多次迭代才能得到结果。初始时,可以设置每个网页的重要性为1。上面公式等号左边计算的结果是迭代后网页i的PR值,等号右边用到的PR值全是迭代前的。

一句话形象描述上图公式:所有指向网页i的网页j,网页j的重要性除以网页j向外指出链接的个数(由于网页j最多只能有一个链接指向网页i)的值的累积和作为网页i的重要性。

基于TextRank的关键词提取

  关键词抽取的任务就是从一段给定的文本中自动抽取出若干有意义的词语或词组。TextRank算法是利用局部词汇之间关系(共现窗口)对后续关键词进行排序,直接从文本本身抽取。其主要步骤如下:
  (1)把给定的文本T按照完整句子进行分割,即这里写图片描述
  (2)对于每个句子这里写图片描述,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即这里写图片描述,其中这里写图片描述是保留后的候选关键词。
  (3)构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词。
  (4)根据上面公式,迭代传播各节点的权重,直至收敛。
  (5)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。
  (6)由(5)得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。

基于TextRank的关键词短语提取

参照“使用TextRank提取关键词”提取出若干关键词。若原文本中存在若干个关键词相邻的情况,那么这些关键词可以构成一个关键短语。例如,在一篇介绍“支持向量机”的文章中,可以找到三个关键词支持、向量、机,通过关键短语提取,可以得到支持向量机。

基于TextRank的自动文摘

谈起自动摘要算法,常见的并且最易实现的当属TF-IDF,但是感觉TF-IDF效果一般,不如TextRank好。
TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口)投赞成票,票的权重取决于自己的票数。这是一个“先有鸡还是先有蛋”的悖论,PageRank采用矩阵迭代收敛的方式解决了这个悖论。TextRank也不例外:
将每个句子看成图中的一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。通过pagerank算法计算得到的重要性最高的若干句子可以当作摘要。
计算两个句子Si和Sj的相似度:
这里写图片描述
分子是在两个句子中都出现的单词的数量。|Si|是句子i的单词数。

TextRank的计算公式:
这里写图片描述
等式左边表示一个句子的权重(WS是weight_sum的缩写),右侧的求和表示每个相邻句子对本句子的贡献程度。与提取关键字的时候不同,一般认为全部句子都是相邻的,不再提取窗口。求和的分母wji表示两个句子的相似程度,分母又是一个weight_sum,而WS(Vj)代表上次迭代j的权重。整个公式是一个迭代的过程。

  基于TextRank的自动文摘属于自动摘录,通过选取文本中重要度较高的句子形成文摘,其主要步骤如下:
  (1)预处理:将输入的文本或文本集的内容分割成句子这里写图片描述,构建图G =(V,E),其中V为句子集,对句子进行分词、去除停止词,得这里写图片描述,其中这里写图片描述是保留后的候选关键词。
  (2)句子相似度计算:构建图G中的边集E,基于句子间的内容覆盖率,给定两个句子si,sj,采用如下公式进行计算:
  这里写图片描述
  若两个句子之间的相似度大于给定的阈值,就认为这两个句子语义相关并将它们连接起来,即边的权值这里写图片描述
  (3)句子权重计算:根据公式,迭代传播权重计算各句子的得分;
  (4)抽取文摘句:将(3)得到的句子得分进行倒序排序,抽取重要度最高的T个句子作为候选文摘句。
  (5)形成文摘:根据字数或句子数要求,从候选文摘句中抽取句子组成文摘。


参考资料

http://www.hankcs.com/nlp/textrank-algorithm-to-extract-the-keywords-java-implementation.html
https://my.oschina.net/letiantian/blog/351154
http://www.mamicode.com/info-detail-882805.html
http://www.hankcs.com/nlp/textrank-algorithm-java-implementation-of-automatic-abstract.html
http://blog.csdn.net/xiewenbo/article/details/46671587


http://chatgpt.dhexx.cn/article/MTt9dwGu.shtml

相关文章

TextRank算法实践

TextRank算法实践 PageRank算法思想 TextRank算法的思想主要源于PageRank算法,PageRank算法主要用于给互联网网页排序,根据网页之间的跳转来构造一个初始权重矩阵(转移矩阵),默认每个网页质量都是1 使用一个向量v&…

TextRank算法的基本原理及textrank4zh使用实例

TextRank算法是一种文本排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,它能够从一个给定的文本中提取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法提取出该文本的关键句。其提出论文是: Mihalcea R, Tarau P. TextRank: Bringing order into texts[…

TextRank算法

TextRank算法理解 TextRank算法 TextRank算法基于PageRank,用于为文本生成关键字和摘要。其论文是: Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004. 先从PageRank讲起 在浅入浅出…

TextRank

TextRank与PageRank TextRank的灵感来源于大名鼎鼎的PageRank算法,这是一个用作网页重要度排序的算法。 这个算法是基于图的,每个网页可以看作是一个图中的结点,如果网页A能够跳转到网页B,那么则有一条A->B的有向边。这样&am…

TextRank算法介绍及实现

目录 1、PageRank算法 2、TextRank算法 (1)关键词抽取(keyword extraction) (2)关键短语抽取(keyphrase extration) (3)关键句抽取(sentence…

TextRank原理解释

目录 1. PageRank原理 2. TextRank (1)TextRank需要满足的条件 (2)TextRank思想的简要理解 (3)TextRank原理及例子讲解 1. PageRank原理 在这里可以看我转载的PageRank原理链接,比较详细h…

TextRank算法原理简析、代码实现

前言—PageRank 注:PageRank原理另行查询 在介绍TextRank前,我想先给大家介绍下PageRank,实质上个人认为可以把TextRank当做PageRank2.0。   谷歌的两位创始人的佩奇和布林,借鉴了学术界评判学术论文重要性的通用方法&#xff0…

NLP学习笔记——TextRank算法

一、算法简介 TextRank算法是一种基于图的排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,主要应用有关键词提取、文本摘要抽取等。该算法的主要思想是:把文档中的词(句)看成一个网络,词&#…

机器学习——逻辑回归常见面试题整理

逻辑回归 1.介绍 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯队下降来求解参数,来达到将数据二分类的目的。 2.逻辑回归的损失函数和梯度下降参数迭代方法 逻辑回归的损失函数是它的极大似然函数 参数迭代方法 3.逻…

面试精选逻辑推理题总结

类似的杀人游戏 1、500张骨牌整齐地排成一行,按顺序编号为1、2、3、……、499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走奇数位置上的骨牌,以此类推。请问最后剩下的一张骨牌的编号是?(256&…

IT科技企业逻辑思维面试题

逻辑思维面试题 一、假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。【请描述操作过程】 答:(1)先用容积为6升的水壶装满水; &#…

面试逻辑题分享--字母数字映射关系推算题

越来越多的朋友可能会发现,在现在找工作的时候,经常会遇到一些笔试题,而且其中不乏有逻辑题,企业希望通过一些逻辑题的测试,来判断求职者的一个逻辑思维能力。今晚在群里看到有小伙伴发了一个题,一时兴起&a…

前端_逻辑题 1

题目一 5只鸡5天能下5个蛋,100天下100个蛋需要多少只鸡? 1只鸡5天能下1个蛋,1只鸡100天能下20个蛋,所以100天下100个蛋需要5只鸡。 题目二 两个盲人都各自买了一对黑袜和一对白袜,四对袜子的布质、大小完全相同&#…

华为软件测试笔试真题之变态逻辑推理题【二】华为爆火面试题

“一头牛重800公斤,一座桥承重700公斤,问牛怎么过桥?” 这个问题在知乎上被浏览过13672927次,火热程度可见一斑。 据说这是华为的面试题,看似不合理的题目和国际闻名的大厂,极大的勾起了人们的兴趣。 不像面…

二、逻辑回归LR面试题总结

1. 简单介绍一下逻辑回归? 逻辑回归主要用来解决分类问题,线性回归的结果 Y Y Y带入一个非线性变换的Sigmoid函数中,得到 [ 0 , 1 ] [0,1] [0,1]之间取值范围的数 S S S, S S S可以把它看成是一个概率值,如果我们设置…

互联网面试——.Net 面试题

提供了最常见的 .Net 面试问题和许多公司提出的答案。让我们看看顶级 Dot Net 面试问题列表。 1. 什么是.NET? .NET 是一种软件开发框架。它就像其他软件开发框架(J2EE)一样。它以类库和 API 的形式提供运行时功能和一组丰富的预构建功能。此…

程序员面试逻辑题解析

《程序员面试逻辑题解析》 基本信息 原书名:Puzzles for Programmers and Pro 作者: (美)Dennis E. Shasha [作译者介绍] 译者: 费若愚 朱学武 出版社:人民邮电出版社 ISBN:9787115301956 上架时间:2012…

程序员面试必看32道经典逻辑推理题

写在前面: 此文档由一位学长整理,转载请附上原文出处链接 32道经典逻辑推理题包括有关二进制、水桶、钱、蓝眼、时间、重量、数学、其他等问题 Click here 有秘密哦!!! 点击浏览 文章目录 一、数字的魅力二、分而治之…

面试逻辑题

逻辑题目 逻辑题目现在也是面试中常考的题目,也不清楚面试出这种题目的意义,可能就是考察面试人员是否逻辑清晰. 这种题目没有什么好的方法,除非你见过原题,否则,只能根据所给出的条件慢慢分析,尽量不要用常规思路,希望大家要跳跃思维. 如果实在不行就给出一种解法,可能不是最…

面试常见逻辑题小整理

题一、 1 1 1 2 1 1 2 1 1 1 1 1 2 2 1 下一行是什么? 答案: 312211 题二、 (1)烧一根不均匀的绳要用一个小时,如何用它来判断半个小时? (2)烧一根不均匀的绳,从头烧…