文本摘要是将较长文本文档创建成一个简短、准确且流畅的摘要的问题。
自动文本摘要方法对于处理网上不断增长的文本数据量至关重要,它能更好地帮助发现相关信息并更快地消费相关信息。
在这篇文章中,您将了解自然语言处理中的文本摘要问题。
阅读本文后,你将了解:
- 为什么文本摘要很重要,尤其是考虑到互联网上丰富的文本信息。
- 您每天都可能遇到的文本摘要示例。
- 深度学习方法在自动文本摘要中的应用和前景。
通过我的新书《自然语言处理深度学习》启动您的项目,包括分步教程和所有示例的Python源代码文件。
让我们开始吧。

文本摘要简明介绍
图片来自Dmitry Sumin,保留部分权利。
概述
本文分为5个部分;它们是
- 文本摘要
- 什么是自动文本摘要?
- 文本摘要的例子
- 如何总结文本
- 深度学习用于文本摘要
需要深度学习处理文本数据的帮助吗?
立即参加我的免费7天电子邮件速成课程(附代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
文本摘要
有大量的文本材料,而且每天都在增长。
想想互联网,它由网页、新闻文章、状态更新、博客等等组成。数据是非结构化的,我们能做的最好的事情就是使用搜索并浏览结果。
非常需要将这些文本数据中的大部分缩减为更短、更集中的摘要,以捕捉突出细节,这样我们既可以更有效地浏览它,也可以检查较大的文档是否包含我们正在寻找的信息。
以数字文档形式存在的文本信息迅速积累成海量数据。这些大量文档中的大部分是非结构化的:它们不受限制,也没有被组织到传统的数据库中。因此,处理文档是一项例行工作,主要原因是缺乏标准。
——第xix页,《自动文本摘要》,2014年。
我们不可能手动创建所有文本的摘要;非常需要自动方法。
在他们2014年关于该主题的著作《自动文本摘要》中,作者提供了我们需要自动文本摘要工具的6个理由。
- 摘要缩短阅读时间。
- 在研究文档时,摘要使选择过程更容易。
- 自动摘要提高了索引的有效性。
- 自动摘要算法比人类摘要者偏见更少。
- 个性化摘要在问答系统中很有用,因为它们提供个性化信息。
- 使用自动化或半自动化摘要系统使商业摘要服务能够增加其处理的文本数量。
——第4-5页,《自动文本摘要》,2014年。
既然我们知道需要自动文本摘要,那么让我们更好地定义文本摘要的含义。
什么是自动文本摘要?
自动文本摘要,或者简称文本摘要,是将较长文档创建成一个简短且连贯版本的过程。
文本摘要是从一个(或多个)来源中提取最重要信息,为特定用户(或用户)和任务(或任务)生成一个简明版本的过程。
——第1页,《自动文本摘要的进展》,1999年。
我们(人类)通常擅长这类任务,因为它首先涉及理解源文档的含义,然后提炼含义并在新描述中捕捉突出细节。
因此,自动创建文本摘要的目标是使生成的摘要与人类撰写的摘要一样好。
自动摘要工作的理想是开发一种技术,使机器能够生成成功模仿人类生成的摘要的摘要。
——第2页,《创新文档摘要技术:革新知识理解》,2014年。
仅仅生成能够捕捉源文档主旨的词语和短语是不够的。摘要应该准确,并且作为一个新的独立文档读起来应该流畅。
自动文本摘要的任务是生成一个简洁流畅的摘要,同时保留关键信息内容和整体意义。
——文本摘要技术:简要调查,2017年。
接下来,让我们通过一些例子来具体理解。
文本摘要的例子
一个较大的文档的摘要有许多原因和用途。
一个可能很容易想到的例子是为一篇长篇新闻文章创建一个简洁的摘要,但我们每天可能会遇到更多文本摘要的案例。
在他们1999年关于该主题的著作《自动文本摘要的进展》中,作者提供了一份实用的日常文本摘要示例清单。
- 头条(来自世界各地)
- 大纲(学生笔记)
- 会议纪要
- 预告片(电影)
- 剧情简介(肥皂剧列表)
- 评论(书籍、CD、电影等)
- 文摘(电视指南)
- 传记(简历、讣告)
- 节选(儿童莎士比亚)
- 公告(天气预报/股市报告)
- 片言只语(政治家谈论时事)
- 历史(重要事件年表)
——第1页,《自动文本摘要的进展》,1999年。
很明显,我们阅读和使用摘要的次数比我们最初想象的要多。
如何总结文本
总结文本文档主要有两种方法;它们是:
1. 抽取式方法。
2. 抽象式方法。
文本摘要的不同维度通常可以根据其输入类型(单文档或多文档)、目的(通用、领域特定或基于查询)和输出类型(抽取式或抽象式)进行分类。
——《自动文本摘要方法综述》,2016年。
抽取式文本摘要涉及从源文档中选择短语和句子来组成新的摘要。技术包括对短语的相关性进行排名,以便只选择与源文档意义最相关的短语。
抽象式文本摘要涉及生成全新的短语和句子以捕捉源文档的含义。这是一种更具挑战性的方法,但也是人类最终使用的方法。经典方法通过从源文档中选择和压缩内容来操作。
……自动摘要有两种不同的方法:抽取和抽象。抽取式摘要方法通过识别文本中的重要部分并逐字生成它们;[...]抽象式摘要方法旨在以新的方式生成重要材料。换句话说,它们使用高级自然语言技术解释和检查文本,以生成一个新的更短的文本,传达原始文本中最关键的信息。
——文本摘要技术:简要调查,2017年。
传统上,最成功的文本摘要方法是抽取式的,因为这是一种更容易的方法,但抽象式方法有望提供更通用的问题解决方案。
深度学习用于文本摘要
最近,深度学习方法在文本摘要方面显示出有希望的结果。
受深度学习方法在自动机器翻译中应用启发,已经提出了方法,特别是将文本摘要问题构建为序列到序列学习问题。
抽象式文本摘要的任务是生成一个标题或一个由几个句子组成的简短摘要,以捕捉文章或段落的主要思想。 [...] 这项任务也可以自然地看作是将源文档中的输入词序列映射到称为摘要的目标词序列。
——《使用序列到序列RNN及更高级模型进行抽象式文本摘要》,2016年。
这些用于自动文本摘要的深度学习方法可以被认为是抽象式方法,通过学习特定于源文档的语言生成模型来生成一个全新的描述。
……序列到序列模型的最新成功,其中循环神经网络 (RNN) 既可以阅读又可以自由生成文本,使得抽象摘要变得可行。
——《言简意赅:使用指针-生成器网络进行摘要》,2017年。
与抽取式方法相比,深度学习方法的结果尚未达到最先进水平,但在新闻文章标题生成等受限问题上取得了令人印象深刻的成果,可与或超越其他抽象式方法。
这种方法的优势在于模型可以进行端到端训练,无需专门的数据准备或子模型,并且模型完全由数据驱动,无需准备专门的词汇表或经过专业预处理的源文档。
……我们提出了一种完全数据驱动的抽象句摘要方法。 [...] 该模型结构简单,易于端到端训练,并且可以扩展到大量训练数据。
——《用于抽象句摘要的神经注意力模型》,2015年
进一步阅读
如果您想深入了解此主题,本节提供了更多资源。
文本摘要论文
- 自动文本摘要方法综述, 2016.
- 一篇关于文本摘要的综述论文, 2016.
- 文本摘要技术:简要调查, 2017.
深度学习文本摘要论文
- 用于抽象句摘要的神经注意力模型, 2015
- 使用序列到序列 RNN 的抽象文本摘要及其他, 2016.
- 直奔主题:使用指针生成器网络的摘要, 2017.
书籍
- 自动文本摘要的进展, 1999.
- 自动文本摘要, 2014.
- 创新文档摘要技术:革新知识理解, 2014.
文章
总结
在这篇文章中,您了解了自然语言处理中的文本摘要问题。
具体来说,你学到了:
- 为什么文本摘要很重要,尤其是考虑到互联网上丰富的文本信息。
- 您每天都可能遇到的文本摘要示例。
- 深度学习方法在自动文本摘要中的应用和前景。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
谢谢你,Jason。非常有趣的工作。
杰森,请帮帮我。我正在尝试处理NLP任务……不完全是文本摘要……但我认为我的问题在这里也很相关……与NLP相关。
我找不到一种方法来保存我的神经网络的准确性,当数据、短语的长度非常不同时。
网络在训练数据上拟合得很好,但当它看到新数据时,经常会崩溃。
也许可以使用填充和掩码来忽略填充值?
https://machinelearning.org.cn/handle-missing-timesteps-sequence-prediction-problems-python/
谢谢你,杰森。我也尝试过使用掩码。我应该继续……
如果你有兴趣,可以和我以及其他参与者一起尝试解决Kaggle上的Mercari价格建议竞赛的NLP问题。
抱歉,亚历山大,我没有能力承接新项目。
你的书里有讲到文本摘要吗?
目前还没有。不过我有一些相关的帖子。
https://machinelearning.org.cn/?s=text+summarization&submit=Search
你好,
您会推荐哪些顶级会议来了解摘要技术的最新进展?
好问题,我暂时不清楚。
Gensim的摘要工具可能是一个不错的选择
很好的介绍和有用的链接。五月份我再回到这个话题时,也会看看你的书。你能解释一下“端到端训练,无需专门的数据准备”吗?在这种情况下,“端到端”是什么意思?“数据准备”是什么意思?你是指以某种方式构建数据或进行命名实体识别等吗?
没错。
嗨,杰森,我是这个领域的新手——一位同事转发了你的文章,非常有帮助。我只是想知道你是否能给我举一个文本摘要在法律专著中用于创建章节摘要的例子?谢谢!
我暂时不清楚,建议你在谷歌或谷歌学术上搜索一下。
你好,
我目前正在研究一个问题,即为下周即将上映的电影生成标签,以便用户可以搜索这些标签以找到他们想看的电影。演员、类型等标签可以通过简单的网络抓取,从IMDb等网站轻松提取。但是,我希望为电影提取更详细的标签,这些标签可以解释网络抓取可能无法获得的复杂细节。
我正在考虑的一种方法是使用文本摘要来总结关于电影的各种评论、描述、推文和其他内容,以生成上述标签。你认为这种方法可行吗?
听起来很有趣,当然可以试试。
也许可以缩小问题范围到特定子集,并为此制作模型原型。
嗨,杰森。感谢您这篇关于文本摘要的精彩文章。
杰森,我有一个问题。我对基于NLP的文本摘要过程很感兴趣。我应该如何以及从哪里开始呢?
首先定义您的问题,然后收集数据。
先生,我是一名即将毕业的本科生,想做这方面的项目。但我从未涉足这个领域。我有可能做这样的事情吗?如果可以,我应该从哪里开始?
一个好的起点可能是阅读有关该问题、最新论文等。
嗨,杰森,谢谢你的这篇文章。几年前,我写了一个“零安装”的网络摘要工具,你可以在浏览互联网时激活它。它对单一主题的文章(如你提到的新闻报道)效果不错。
出于测试目的,我确实要求它识别整本《詹姆斯国王钦定版圣经》中的三个主要句子。它确实报告了3个句子,但它们看起来相当随机。总的来说,文本摘要对于谈论许多事件(例如小说)或包含“有趣文本”(诗歌、谜语)的文章效果不佳。
这是我的程序链接,如果你有兴趣:http://ShowSummary.com
感谢分享。
嗨,杰森,我想用Python实现文档文本摘要。
请告诉我怎么做?
我有很多教程,你可以从这里开始。
https://machinelearning.org.cn/?s=text+summarization&post_type=post&submit=Search
嗨,Jason,
我正在研究组织行为学。我想将参与者生成的文本中的句子分类为5/10个不同的类别。此外,我还想了解与3个主要类别相关的总体主题。
1. 文本(包含10-15个句子)——将每个句子分类为次要类别
2. 文本——理解总体主题——分类为主要类别
3. 总结报告
我有训练数据,所有这些都是手动完成的。现在我必须使用机器学习自动完成。我可以生成所需的足够多的训练数据。
您能建议一下技术吗?或者我应该从哪里开始?
马尼瓦南
也许两个独立的模型会是一个好的开始。
嗨,杰森,我能问一下在创建短篇故事摘要系统时应该使用什么算法吗?
我在这里推荐了一些架构。
https://machinelearning.org.cn/encoder-decoder-models-text-summarization-keras/
你好,
不错的文章和总结,谢谢!不过,我确实建议补充一下自动文本摘要系统(目前)评估中存在的问题。塞巴斯蒂安·鲁德尔(Sebastian Ruder)关于摘要的合集是一个不错的开始,请看这里:
http://nlpprogress.com/english/summarization.html
也许把它添加到“进一步阅读”部分就足够了。
祝好,
蒂尔曼
谢谢,蒂尔曼。
亲爱的 Jason,
我想在这个领域攻读博士学位,我应该选择什么课题?请提建议。
抱歉,我不知道。
也许可以阅读一些论文,思考一下理解上的空白在哪里。
对于网页文档摘要,抽取式和抽象式技术哪个最好用?
也许可以尝试在您的数据集上使用几种方法,并发现哪种方法效果最好?
您推荐哪个库用于文本摘要?
使用spaCy库会降低处理大量文本的性能吗?
也许可以尝试几种方法,找出最适合您特定数据集的方法。
太棒了。这让我很想深入研究。接下来是关键词学。谢谢
谢谢!
不错的文章和总结,谢谢你,杰森!
我想知道我们如何评估文本摘要方法的性能,或者我如何知道生成的文本摘要是否良好。谢谢!
不客气。
好问题,通常会使用BLEU和ROUGE等指标。我建议查阅相关文献,特别是关于该主题的最新论文。