自然语言处理中的文本摘要:算法、技术和挑战
已发表: 2020-08-07从给定的内容创建摘要是一个非常抽象的过程,每个人都参与其中。自动化这样的过程可以帮助解析大量数据并帮助人们更好地利用他们的时间来做出关键决策。 由于媒体数量庞大,可以通过减少围绕最关键信息的绒毛来提高效率。 我们已经开始在网络上看到自动生成的文本摘要。
如果您经常访问 Reddit,您可能已经看到“Autotldr bot”通过汇总给定帖子中的链接文章来帮助 Redditor。 它创建于 2011 年,已经节省了数千人时。 可靠的文本摘要是有市场的,正如 Inshorts(用 60 字或更少的字总结新闻)和 Blinkist(总结书籍)等应用程序的趋势所表明的那样。
因此,自动文本摘要是自然语言处理(NLP) 和机器学习(ML) 中令人兴奋但具有挑战性的前沿领域。 自动文本摘要的当前发展归功于自 1950 年代汉斯·彼得·卢恩 (Hans Peter Luhn) 的题为“文学摘要的自动创建”的论文发表以来对该领域的研究。
本文概述了使用词频和短语频率等特征从文档中提取基本句子的方法。 紧随其后的是 Harold P Edmundson 在 1960 年代后期进行的另一项批判性研究,该研究强调了提示词的存在,标题中使用的词出现在文本中,以及从文档中提取有意义句子的句子位置。
既然世界在机器学习方面取得了长足进步,并在该领域发表了新的研究成果,自动文本摘要即将成为数字时代与信息交互的无处不在的工具。
必读:印度 NLP 工程师的薪水

在 NLP 中总结文本主要有两种主要方法
目录
NLP 中的文本摘要
1. 基于提取的摘要
顾名思义,这种技术仅依赖于从文档中提取或提取关键短语。 然后将这些关键短语组合起来形成一个连贯的摘要。
2. 基于抽象的摘要
与提取不同,这种技术依赖于能够解释和缩短文档的某些部分。 当这种抽象在深度学习问题中正确完成时,可以确保具有一致的语法。 但是,这种增加的复杂性是以开发比提取更难为代价的。
还有另一种方法可以提出更高质量的摘要。 这种方法称为辅助摘要,它需要人工和软件相结合的努力。 这也有两种不同的口味
- 机器辅助人类摘要:提取技术突出显示要包含的候选段落,人类可以添加或删除文本。
- 人工辅助机器摘要:人类只需编辑软件的输出。
除了摘要文本的主要方法外,还有其他分类文本摘要器的基础。 以下是这些类别的负责人:
3. 单文档与多文档摘要
单个文档依赖于事实的连贯性和不频繁重复来生成摘要。 另一方面,多文档摘要增加了冗余信息和重复出现的机会。
4. 指示性与信息性
摘要的分类取决于用户的最终目标。 例如,在指示性类型摘要中,人们会期望一篇文章的高级点。 然而,在信息丰富的概述中,人们可能期望更多的主题过滤让读者深入了解摘要。
5. 文件长度和类型
输入文本的长度会严重影响摘要方法的类型。
最大的摘要数据集,如康奈尔大学的新闻编辑室,专注于新闻文章,平均约 300-1000 字。 抽取式摘要器相对较好地处理了这样的长度。 一个多页的文档或一本书的章节只能用更高级的方法(如层次聚类或语篇分析)来充分概括。
此外,文本的类型也会影响摘要器。 总结技术白皮书的方法将与可能更好地总结财务报表的技术完全不同。
在本文中,我们将重点介绍提取摘要技术的更多细节。
PageRank算法
该算法可以帮助像谷歌这样的搜索引擎对网页进行排名。 让我们通过一个例子来理解这个算法。 假设您有四个网页,它们之间的连接级别不同。 一个可能与其他三个没有链接; 一个可能连接到另一个 2,一个可能只与一个相关,依此类推。
然后,我们可以使用具有 n 行和列的矩阵来模拟从一个页面导航到另一个页面的概率,其中 n 是网页的数量。 矩阵中的每个元素将代表从一个网页转换到另一个网页的概率。 通过分配正确的概率,人们可以迭代地更新这样的矩阵来获得网页排名。
另请阅读:NLP 项目和主题
文本排序算法
我们探索 PageRank 算法的原因是为了展示如何使用相同的算法对文本而不是网页进行排名。 这可以通过将页面之间的链接替换为句子之间的相似性并使用 PageRank 样式矩阵作为相似性分数来改变视角来完成。
实现 TextRank 算法
所需的库
- 麻木
- 熊猫
- Ntlk
- 回覆
以下是提取摘要技术背后的代码解释:

第1步
将源文档中的所有文本连接为一个实心文本块。 这样做的原因是提供条件,以便我们可以更轻松地执行步骤 2。
第2步
我们提供定义句子的条件,例如查找句号 (.)、问号 (?) 和感叹号 (!) 等标点符号。 一旦我们有了这个定义,我们就简单地将文本文档拆分成句子。
第 3 步
现在我们可以访问单独的句子,我们可以找到每个句子的向量表示(词嵌入)。 现在我们必须了解什么是向量表示。 词嵌入是一种词表示,它为具有相似含义的词提供数学描述。 实际上,这是一整类将单词表示为预定义向量空间中的实值向量的技术。
每个单词都由一个具有多个维度(有时超过 100 个)的实值向量表示。 分布表示基于单词的使用,因此允许以相似方式使用的单词具有相似的描述。 这使我们能够自然地捕捉单词的含义,因为它们与表示为向量本身的其他单词的接近程度。
对于本指南,我们将使用词表示的全局向量 (GloVe)。 手套是由斯坦福大学的 Pennington 开发的开源分布式单词表示算法。 它结合了 2 个模型家族的特征,即全局矩阵分解和局部上下文窗口方法。
第四步
一旦我们有了单词的向量表示,我们就必须扩展该过程以将整个句子表示为向量。 为此,我们可以获取构成句子中单词的术语的向量表示,然后获取这些向量的平均值/平均值,以得出句子的合并向量。
第 5 步
此时,我们对每个单独的句子都有一个向量表示。 现在使用余弦相似度方法来量化句子之间的相似度很有帮助。 然后我们可以用句子的余弦相似度填充一个空矩阵。
第 6 步
现在我们有了一个填充了句子之间余弦相似度的矩阵。 我们可以将这个矩阵转换成一个图,其中节点代表句子,边代表句子之间的相似度。 正是在这张图上,我们将使用方便的 PageRank 算法来得出句子排名。
第 7 步
我们现在已经按照重要性对文章中的所有句子进行了排序。 我们现在可以提取前 N 个(比如 10 个)句子来创建摘要。
要找到这种方法的代码,Github上有很多这样的项目; 另一方面,这篇文章有助于加深对这一点的理解。
查看:现代生活中语言建模的演变
评估技术
微调此类模型的一个重要因素是有一种可靠的方法来判断所生成摘要的质量。 这需要良好的评估技术,可大致分为以下几类:
- 内在和外在评价:
内在的:这种评估测试了总结系统本身。 他们主要评估摘要的连贯性和信息量。
外在的:这种评估会根据总结如何影响其他任务来测试总结。 它可以测试摘要对相关性评估、阅读理解等任务的影响。
- 文本间和文本内:
Inter-textual:此类评估侧重于对几个摘要系统的对比分析。
文本内:此类评估评估特定摘要系统的输出。
- 特定于域和独立于域:
领域无关:这些技术通常应用一组通用特征,可以专注于识别信息丰富的文本段。
特定领域:这些技术利用特定于文本领域的可用知识。 例如,医学文献的文本摘要需要使用医学知识和本体的来源。
- 定性评估摘要:
其他评估技术的主要缺点是它们需要参考摘要才能将自动摘要的输出与模型进行比较。 这使得评估任务变得困难且昂贵。 正在做一些工作来建立文章/文档的语料库及其相应的摘要来解决这个问题。
文本摘要的挑战
尽管生成和评估摘要的工具高度发达,但仍然存在挑战,要找到一种可靠的方法让文本摘要器了解什么是重要和相关的。
正如所讨论的,向量表示和相似度矩阵试图找到单词关联,但它们仍然没有可靠的方法来识别最重要的句子。
文本摘要的另一个挑战是人类语言的复杂性和人们表达自己的方式,尤其是在书面文本中。 语言不仅由带有形容词和副词的长句组成,还包括相对句、同位词等。这些见解可能会增加有价值的信息,但它们无助于确定要包含在摘要中的信息的主要症结。

“照应问题”是文本摘要的另一个障碍。 在语言中,我们经常用同义词或代词代替对话中的主题。 对哪个代词替代哪个术语的理解是“照应问题”。
“直指问题”是指代问题的相反问题。 在这些模棱两可的词语和解释中,在引入术语本身之前,文本中使用了特定术语。
结论
文本摘要领域正在经历快速增长,并且正在开发专门的工具来解决更集中的摘要任务。 随着开源软件和词嵌入包的广泛使用,用户正在扩展这项技术的用例。
自动文本摘要是一种工具,它通过简化人类日常交互的大量信息,实现人类生产力的巨大飞跃。 这不仅可以让人们减少必要的阅读,还可以腾出时间来阅读和理解其他被忽视的书面作品。 这样的摘要器集成得如此之好,以至于它们创建的摘要与人类编写的摘要没有区别,这只是时间问题。
如果您想提高您的 NLP 技能,您需要亲身体验这些 NLP 项目。 如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
NLP的用途是什么?
NLP 或自然语言处理是最复杂和最有趣的现代技术之一,以多种方式使用。 它的主要应用包括——自动单词校正、自动预测、聊天机器人和语音助手、虚拟助手中的语音识别、人类语音的情感分析、电子邮件和垃圾邮件过滤、翻译、社交媒体分析、目标广告、文本摘要和简历扫描招聘等。 NLP 的进一步发展产生了自然语言理解 (NLU) 等概念,有助于从复杂任务中获得更高的准确性和更出色的结果。
我必须学习数学才能学习 NLP 吗?
借助离线和在线的丰富资源,现在可以更轻松地访问为学习 NLP 设计的学习材料。 这些研究资源都是关于 NLP 这个广阔领域的具体概念,而不是更大的图景。 但是如果你想知道数学是否是任何 NLP 概念的一部分,那么你必须知道数学是 NLP 的重要组成部分。 数学,尤其是概率论、统计学、线性代数和微积分,是驱动 NLP 的算法的基础支柱。 对统计有基本的了解是有帮助的,这样您就可以根据需要进行构建。 尽管如此,如果不进入数学领域,就无法学习自然语言处理。
有哪些用于提取信息的 NLP 技术?
在这个数字时代,非结构化数据的产生量激增,主要以来自社交媒体平台、客户投诉和调查等各种渠道的音频、图像、视频和文本的形式。 NLP 有助于从大量非结构化数据中提取有用的信息,这可以帮助企业。 有五种常见的 NLP 技术可用于提取有洞察力的数据,即命名实体识别、文本摘要、情感分析、方面挖掘和主题建模。 NLP 中还有许多其他的数据提取方法,但这些是最常用的。