当前位置: 首页 > news >正文

自然语言处理系列五十七》关键词提取和文本摘要》文本摘要介绍及相关算法

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • 自然语言处理系列五十七
    • 关键词提取和文本摘要》文本摘要介绍及相关算法
      • 基于Python的文本摘要实战
  • 总结

自然语言处理系列五十七

关键词提取和文本摘要》文本摘要介绍及相关算法

文本摘要是一种从一个或多个信息源中抽取关键信息的方法,它帮助用户节省了大量时间,用户可以从摘要获取到文本的所有关键信息点而无需阅读整个文档。
16.2.1 文本摘要介绍及相关算法
文本摘要按照输入类型可分为单文档摘要和多文档摘要。单文档摘要方法是指针对单个文档,对其内容进行抽取总结生成摘要;多文档摘要方法是指从包含多份文档的文档集合中生成一份能够概括这些文档中心内容的摘要。
按照输出类型可分为抽取式摘要和生成式摘要。抽取式摘要从源文档中抽取关键句和关键词组成摘要,摘要全部来源于原文。生成式摘要根据原文,允许生成新的词语、短语来组成摘要。(更详细的解释 from 《文本摘要研究进展与趋势》)抽取式摘要方法通过抽取文档中的句子生成摘要,通过对文档中句子的得分进行计算,得分代表重要性程度,得分越高代表句子越重要,然后通过依次选取得分最高的若干个句子组成摘要,摘要的长度取决于压缩率。生成式摘要方法不是单纯地利用原文档中的单词或短语组成摘要,而是从原文档中获取主要思想后以不同的表达方式将其表达出来。生成式摘要方法为了传达原文档的主要观点,可以重复使用原文档中的短语和语句,但总体上来说,抽取式摘要需要用作者自己的话来概括表达。生成式摘要方法需要利用自然语言理解技术对原文档进行语法语义的分析,然后对信息进行融合,通过自然语言生成的技术生成新的文本摘要。
按照有无监督数据可以分为有监督摘要和无监督摘要。有监督方法需要从文件中选取主要内容作为训练数据,大量的注释和标签数据是学习所需要的。这些文本摘要的系统在句子层面被理解为一个二分类问题,其中,属于摘要的句子称为正样本,不属于摘要的句子称为负样本。无监督的文本摘要系统不需要任何训练数据,它们仅通过对文档进行检索即可生成摘要。
Textrank排序算法以其简洁、高效的特点被工业界广泛运用。大体思想就是先去除文章中的一些停用词,之后对句子的相似度进行度量,计算每一句相对另一句的相似度得分,迭代传播,直到误差小于0.0001,再对上述方法得到的关键语句进行排序,即可获得摘要。抽取式摘要主要考虑单词词频,并没有过多的语义信息,像“猪八戒”、“孙悟空”这样的词汇都会被独立对待,无法建立文本段落中完整的语义信息。
TextRank 算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名高的句子组合成文本摘要。本文介绍了抽取型文本摘要算法TextRank,并使用Python实现TextRank算法在多篇单领域文本数据中抽取句子组成摘要的应用。
在开始使用TextRank算法之前,我们还应该熟悉另一种算法——PageRank算法。事实上它启发了TextRank!PageRank主要用于对在线搜索结果中的网页进行排序。PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。
PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。Google把从A页面到B页面的链接解释为A页面给B页面投票,Google根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。简单的说,一个高等级的页面可以使其他低等级页面的等级提升。
掌握了PageRank,让我们理解TextRank算法。我列举了以下两种算法的相似之处:
用句子代替网页
任意两个句子的相似性等价于网页转换概率
相似性得分存储在一个方形矩阵中,类似于PageRank的矩阵M
TextRank算法是一种抽取式的无监督的文本摘要方法。让我们看一下我们将遵循的TextRank算法的流程:

  1. 第一步是把所有文章整合成文本数据2. 接下来把文本分割成单个句子3. 然后,我们将为每个句子找到向量表示(词向量)。4. 计算句子向量间的相似性并存放在矩阵中5. 然后将相似矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子TextRank计算。6. 最后,一定数量的排名最高的句子构成最后的摘要。

基于Python的文本摘要实战

基于Python的文本摘要实战实战实现可参见
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】书籍。
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。

【配套视频】

推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】
视频特色:把目前互联网热门、前沿的项目实战汇聚一堂,通过真实的项目实战课程,让你快速成为算法总监、架构师、技术负责人!包含了推荐系统、智能问答、人脸识别等前沿的精品课程,下面分别介绍各个实战项目:
1、推荐算法系统实战
听完此课,可以实现一个完整的推荐系统!下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目!
2、智能问答/对话机器人实战
由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程!
3、人脸识别实战
从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向,从理论到源码实战、再到服务器操作给大家深度讲解!

自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

人工智能《分布式机器学习实战》 视频教程【陈敬雷】
视频特色:视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)。

上一篇:自然语言处理系列五十六》关键词提取和文本摘要》关键词提取介绍及相关算法
下一篇:自然语言处理系列五十八》自然语言模型(Language Model)》自然语言模型算法原理

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 手机投屏到电脑怎么弄?
  • LeetCode: 2552. 统计上升四元组 动态规划 时间复杂度O(n*n)
  • OPENAIGC开发者大赛企业组金奖 | 句子互动,RPA+AI,打造大模型驱动的领先数字员工
  • 请解释Java中的深拷贝和浅拷贝的区别。什么是Java中的代理模式?它有什么作用?
  • 用Python实现阿拉伯数字转换成中国汉字
  • 怎样将vue项目 部署在ngixn的子目录下
  • C++——list常见函数的使用和模拟实现(2)
  • Spring Boot实现大文件分片下载
  • 内网渗透—横向移动非约束委派约束委派
  • 深度学习每周学习总结N9:transformer复现
  • 基于OMS构建OceanBase容灾双活架构的实践
  • 深入理解Elasticsearch的`_source`字段与索引优化
  • [C#学习笔记]LINQ
  • 企业微信运营工具:赋能企业数字化转型的利器
  • Playwright 和 Selenium的对比
  • [case10]使用RSQL实现端到端的动态查询
  • css属性的继承、初识值、计算值、当前值、应用值
  • JavaScript 奇技淫巧
  • JavaScript创建对象的四种方式
  • Java多线程(4):使用线程池执行定时任务
  • PHP变量
  • spark本地环境的搭建到运行第一个spark程序
  • vue-router的history模式发布配置
  • Vue小说阅读器(仿追书神器)
  • Zsh 开发指南(第十四篇 文件读写)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 第十八天-企业应用架构模式-基本模式
  • 基于web的全景—— Pannellum小试
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 小程序开发中的那些坑
  • 学习笔记:对象,原型和继承(1)
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #include
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (转)Sql Server 保留几位小数的两种做法
  • .NET C# 使用 iText 生成PDF
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET 反射的使用
  • .net 获取url的方法
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • [ 数据结构 - C++] AVL树原理及实现
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票