TextRank 自动文摘

  前不久做了有关自动文摘的学习,采用方法是TextRank算法,整理和大家分享。

一. 关于自动文摘

  利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。但人工摘要耗时又耗力,已不能满足日益增长的信息需求,因此借助计算机进行文本处理的自动文摘应运而生。近年来,自动文摘、信息检索、信息过滤、机器识别、等研究已成为了人们关注的热点。

  自动文摘(Automatic Summarization)的方法主要有两种:Extraction和Abstraction。其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要。由于生成式自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。所以本人学习的也是抽取式的自动文摘方法。

  目前主要方法有:

  • 基于统计:统计词频,位置等信息,计算句子权值,再简选取权值高的句子作为文摘,特点:简单易用,但对词句的使用大多仅停留在表面信息。
  • 基于图模型:构建拓扑结构图,对词句进行排序。例如,TextRank/LexRank
  • 基于潜在语义:使用主题模型,挖掘词句隐藏信息。例如,采用LDA,HMM
  • 基于整数规划:将文摘问题转为整数线性规划,求全局最优解。(~.~我也不懂)

二. TextRank算法

  TextRank算法是一种用于文本的基于图的排序算法。其基本思想来源于谷歌的 PageRank算法, 通过把文本分割成若干组成单元(单词、句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序, 仅利用单篇文档本身的信息即可实现关键词提取、文摘。和 LDA、HMM 等模型不同, TextRank不需要事先对多篇文档进行学习训练, 因其简洁有效而得到广泛应用。

  TextRank 一般模型可以表示为一个有向有权图 G =(V, E), 由点集合 V和边集合 E 组成, E 是V ×V的子集。图中任两点 Vi , Vj 之间边的权重为 wji , 对于一个给定的点 Vi, In(Vi) 为 指 向 该 点 的 点 集 合 , Out(Vi) 为点 V指向的点集合。点 Vi 的得分定义如下:

  其中, d 为阻尼系数, 取值范围为 0 到 1, 代表从图中某一特定点指向其他任意点的概率, 一般取值为 0.85。使用TextRank 算法计算图中各点的得分时, 需要给图中的点指定任意的初值, 并递归计算直到收敛, 即图中任意一点的误差率小于给定的极限值时就可以达到收敛, 一般该极限值取 0.0001。

1. 基于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”加入关键词序列。

2. 基于TextRank的自动文摘

  基于TextRank的自动文摘属于自动摘录,通过选取文本中重要度较高的句子形成文摘,其主要步骤如下:

  (1)预处理:将输入的文本或文本集的内容分割成句子得,构建图G =(V,E),其中V为句子集,对句子进行分词、去除停止词,得,其中是保留后的候选关键词。

  (2)句子相似度计算:构建图G中的边集E,基于句子间的内容覆盖率,给定两个句子,采用如下公式进行计算: 

  若两个句子之间的相似度大于给定的阈值,就认为这两个句子语义相关并将它们连接起来,即边的权值

  (3)句子权重计算:根据公式,迭代传播权重计算各句子的得分;

  (4)抽取文摘句:将(3)得到的句子得分进行倒序排序,抽取重要度最高的T个句子作为候选文摘句。 

  (5)形成文摘:根据字数或句子数要求,从候选文摘句中抽取句子组成文摘。

三. 其它

  分析研究可知,相似度的计算方法好坏,决定了关键词和句子的重要度排序,如果在相似度计算问题上有更好的解决方案,那么结果也会更加有效。其它计算相似度的方法有:基于编辑距离,基于语义词典,余弦相似度等。这里不一一描述。

  本人实现了一个简单的文摘系统,代码可参考ASExtractor,代码风格比较坑爹,注释也没写好,将就看看,请见谅。

  由于知识不够完备,若有出错的地方,欢迎指导,谢谢!

参考资料

  1.  Automatic Summarization , TextRank , PageRank

  2.  someus github:TextRank4ZH

  3.  David Adamo: TextRank

  4.  结巴分词

 

时间: 2024-10-12 00:15:09

TextRank 自动文摘的相关文章

多文档自动文摘:Multi-Document Summarization,MDS

版权声明:本文为博主原创文章,未经博主允许不得转载.

Textrank算法介绍

先说一下自动文摘的方法.自动文摘(Automatic Summarization)的方法主要有两种:Extraction和Abstraction.其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要:Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要.由于生成式自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限.所以本人学习的也是抽取式的自动文摘方法. 目前主要方法有: 基于统计:统计词频,位置等信息

关键词抽取:pagerank,textrank

摘抄自微信公众号:AI学习与实践 TextRank,它利用图模型来提取文章中的关键词.由 Google 著名的网页排序算法 PageRank 改编而来的算法. PageRank PageRank 是一种通过网页之间的超链接来计算网页重要性的技术,以 Google 创办人 Larry Page 之姓来命名,Google 用它来体现网页的相关性和重要性. PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级,把从 A 页面到 B 页面的链接解释为 A 页面给 B 页面投票,Google 根

京东商城背后的AI技术能力揭秘 - 基于关键词自动生成摘要

作者:京东AI研究院 导言 过去几十年间,人类的计算能力获得了巨大提升:随着数据不断积累,算法日益先进,我们已经步入了人工智能时代.确实,人工智能概念很难理解,技术更是了不起,背后的数据和算法非常庞大复杂.很多人都在疑惑,现在或未来AI将会有哪些实际应用呢? 其实,关于AI的实际应用以及所带来的商业价值并没有那么的"玄幻",很多时候就已经在我们的身边.接下来,[AI论文解读]专栏将会通过相关AI论文的解读,由深入浅地为大家揭秘,AI技术是如何对电商领域进行赋能,以及相关的落地与实践.人

自动文档摘要评价方法

自动文档摘要评价方法大致分为两类: (1)内部评价方法(Intrinsic Methods):提供参考摘要,以参考摘要为基准评价系统摘要的质量.系统摘要与参考摘要越吻合, 质量越高. (2)外部评价方法(Extrinsic Methods):不提供参考摘要,利用文档摘要代替原文档执行某个文档相关的应用.例如:文档检索.文档聚类.文档分类等, 能够提高应用性能的摘要被认为是质量好的摘要. 一.Edmundson: Edmundson评价方法比较简单,可以客观评估,就是通过比较机械文摘(自动文摘系统

PAI文本分析实验:常用文本分析组件及案例实战

上一篇介绍了PAI以及机器学习相关的一点知识,没有深入算法原理,只是从使用角度出发熟悉了操作流程,后面随着学习的深入,我也会对算法原理做一个详细的阐述.这次我们还是继续实战,认识机器学习在文本分析领域是如何工作的.先贴出官方的教程:机器学习PAI眼中的<人民的名义>. 准备开始 还是在阿里PAI环境下,我们从实验模板:人民的名义分析进入,然后点击去PAI平台创建,这样就在机器学习页面创建好了实验.接下里设置各个组件的参数,我们先看下模型图: 你会发现模板创建的结果和教程的模型图不一样.这里我们

3 中文文本中的关键字提取

前言 关键词提取就是从文本里面把跟这篇文章意义最相关的一些词语抽取出来.这个可以追溯到文献检索初期,关键词是为了文献标引工作,从报告.论文中选取出来用以表示全文主题内容信息的单词或术语,在现在的报告和论文中,我们依然可以看到关键词这一项.因此,关键词在文献检索.自动文摘.文本聚类/分类等方面有着重要的应用,它不仅是进行这些工作不可或缺的基础和前提,也是互联网上信息建库的一项重要工作. 关键词抽取从方法来说主要有两种: 第一种是关键词分配:就是给定一个已有的关键词库,对于新来的文档从该词库里面匹配

国内NLP的那些人那些会

统计学和语言学专家都列在一起了,没有区分.1,黄昌宁,1937年生于广东,1955年考入清华大学电机系,1961年毕业并留校任教至博士生导师, 1983-1984年赴美国耶鲁大学进修,1986-1987年曾在香港理工大学任教,1999年4月加入微软中国研究院任主任研究员.中国计算机自然语言处理领域的"趟路人"和集大成者.2,孙茂松,清华大学计算机科学与技术系系主任,教授,博士生导师.研究方向为自然语言理解.中文信息处理和Web智能.中国中文信息学会副理事长.3,詹卫东,男 ,汉族.籍贯

网络挖掘技术——text mining

一.中文分词:分词就是利用计算机识别出文本中词汇的过程. 1.典型应用:汉字处理:拼音输入法.手写识别.简繁转换 :信息检索:Google .Baidu :内容分析:机器翻译.广告推荐.内容监控 :语音处理:语音识别.语音合成 . 2.分词难点:歧义.新词等. 3.分词技术:机械分词(查词典FMM/BMM,全切分).统计分词(生成式/判别式).理解分词. a)生成式分词:建立学习样本的生成模型,再利用模型对预测结果进行间接推理.两个假设:马尔科夫性(第i个词只依赖于前面的i-1个词):输出独立性