TensorFlow 自动文本摘要生成模型

textsum: Text summarization with TensorFlow | Google Research Blog

(文/ 谷歌大脑软件工程师  Peter Liu) 每天,人们都依靠大量的信息源,来获取信息,从新闻报道到社交媒体帖子再到搜索结果。能够针对长文本自动生成精确摘要的机器学习模型对于以压缩形式处理大量信息是非常有用的,这也是谷歌大脑(Google Brain)团队的一个长期目标。

对于机器来说,摘要也可以用作一个有趣的阅读理解测试。为了做好摘要,机器学习模型需要能够理解文档、提取重要信息,这些任务对于计算机来说是极具挑战的,特别是在文档长度增加的情况下。

为了推动这一研究,我们开源了在Annotated English Gigaword ——一个摘要研究中常用数据库中执行生成新闻标题任务的Tensor Flow模型代码。我们还列举了文档中的超参数,在使用ROUGE(metric)验证的最常用模型中,我们的超参数在写作时间上可以获得当下最好的结果。

模型地址:https://github.com/tensorflow/models/tree/master/textsum

昨日, Google Research 发布博客 称开源了在 Annotated English Gigaword 上进行新闻标题生成任务的 TensorFlow 模型代码:https://github.com/tensorflow/models/tree/master/textsum。

人们每天都依赖大量信息源,从新闻到社交媒体推送,再到各种搜索结果。因此,开发出能够自动提取长文本摘要的机器学习模型对消化如此大量的信息非常有帮助,这也是 Google Brain 团队的长期目标。

摘要也可作为对机器阅读理解能力的测试。为了更好的进行摘要,机器学习模型需要能够理解文本并提取重要信息,这对计算机而言是具有高度挑战性的任务,特别是在文本长度增加时。

为努力推动这一研究的前进,我们开源了在 Annotated English Gigaword 上进行新闻标题生成任务的 TensorFlow 模型代码 。Annotated English Gigaword 是一个在机器摘要研究中经常使用的数据集。我们也详细说明了取得比如今公开的顶级模型(在常用的度量标准上)更好成果的超参数。下面,我们也提供了由该模型生成的样本。

提取和概括摘要

进行摘要的一种方式是提取文档中因一些度量标准(例如,逆文档频率)被认为有趣的部分内容,并将它们结合在一起形成摘要。里面的算法被称为提取摘要。

原始文本: Alice and Bob took the train to visit the zoo. They saw a baby giraffe, a lion, and a flock of colorful tropical birds.

提取摘要 : Alice and Bob visit the zoo. saw a flock of birds.

上面我们提取了原始文本中加粗的词,并将它们连起来形成一个摘要。我们可以看到,提取摘要有时让句子读起来很怪,语法也很奇怪。

另一种方法是像人一样做简单摘要,这种方法不会强加以提取限制,允许改变措辞。这种方法被称为概括摘要(abstractive summarization)。

概括摘要: Alice and Bob visited the zoo and saw animals and birds.

在这个例子中,我们用了几个原始文本中没有的词,用数量差不多的词保留了原始文本中包含的更多的信息。所以我们当然更倾向于使用概括摘要,但是一个算法要怎么做概括摘要呢?

关于 TensorFlow 模型

事实证明它可以用于更短的文本,在这个模型中,能用序列到序列的深度学习技巧以端到端的方式进行摘要,类似于让收件箱做智能回复。特别地是,我们可以训练这类模型来产生非常好的新闻标题。在这个案例中,该模型读取了文章文本,并写下一条适当的标题。

为了了解该模型产生了什么,你可以看一下下面的例子。第一栏显示新闻的第一句话作为模型输入,第二栏显示为模型写出的标题。

未来的研究

我们已经观察到,由于新闻标题的天然性质,该模型只要读取文章开头的几个句子就能生成较好的标题。但是这项任务只是很好地证明了这个概念,我们要开始寻找比新闻文章更难的数据集,需要读取整个文档来生成好的摘要。在这些任务中,从头开始训练这个模型架构不需要做那些我们正在研究的其他技术中需要做的事情,但是我们以它为基准。我们希望这个开源也能作为其他研究者的摘要研究的基准。

TensorFlow 自动文本摘要生成模型,2016相关推荐

  1. 中文自动文本摘要生成指标计算,Rouge/Bleu/BertScore/QA代码实现

    本部分讲述下如何计算生成摘要与参考摘要的指标,指标方面分为两类,一类基于n-grams计算,如Rouge-1,Rouge-2,Rouge-L,BLEU,主要衡量摘要的句法的连贯性,不能衡量生成摘要的真 ...

  2. 基于BERT-PGN模型的中文新闻文本自动摘要生成——文本摘要生成(论文研读)

    基于BERT-PGN模型的中文新闻文本自动摘要生成(2020.07.08) 基于BERT-PGN模型的中文新闻文本自动摘要生成(2020.07.08) 摘要: 0 引言 相关研究 2 BERT-PGN ...

  3. 如何用pytorch做文本摘要生成任务(加载数据集、T5 模型参数、微调、保存和测试模型,以及ROUGE分数计算)

    摘要:如何使用 Pytorch(或Pytorchlightning) 和 huggingface Transformers 做文本摘要生成任务,包括数据集的加载.模型的加载.模型的微调.模型的验证.模 ...

  4. 3D版DALL-E来了!谷歌发布文本3D生成模型DreamFusion,给一个文本提示就能生成3D模型!...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 转载自:新智元 | 编辑:LRS [导读]给一个文本提示就能生成3 ...

  5. 自动文本摘要(automatic text summarization)目前的研究方法分类

    2019独角兽企业重金招聘Python工程师标准>>> 自动文本摘要通常可分为两类,分别是抽取式(extractive)和生成式(abstractive).  (1)抽取式摘要判断原 ...

  6. 实现自动文本摘要(python,java)

    参考资料:http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.html http://joshbohde.com/blog/d ...

  7. BUAA(2021春)大作业—— 文本摘要生成(数组字典树+快排=0.087s)

    BUAA数据结构大作业-- 文本摘要生成 看前须知 题目内容 问题描述 输入形式 输出形式 样例 样例说明 题解 思考和详解 参考代码 看前须知 要点介绍和简要声明. 题目内容 问题描述 在自然语言文 ...

  8. BUAA_2020级(信息大类)数据结构综合作业编程题_文本摘要生成_哈希表

    题面 在自然语言文本处理中,有一种分析文本.自动抽取文本主题思想的方法(通常用于文本摘要生成),其方法如下: 首先分析文本中非停用词的出现频度: 统计文本中每个句子中非停用词频度之和.若某个非停用词在 ...

  9. BUAA-2021春-数据结构-综合作业-文本摘要生成(Hash实现 + SIMD优化 终测最速)

    题目内容 问题描述 在自然语言文本处理中,有一种分析文本.自动抽取文本主题思想的方法(通常用于文本摘要生成),其方法如下: 1.        首先分析文本中非停用词(stop-word)的出现频度: ...

最新文章

  1. 50道练习实践学习Pandas!
  2. css限制字体三行_CSS美化网页
  3. 用python编写一个高效搜索代码工具
  4. Python地信专题 | 基于geopandas的空间数据分析—数据结构篇
  5. PostgreSQL MySQL 兼容性之 - bit 函数和操作符
  6. PAT (Advanced Level) 1002. A+B for Polynomials (25)
  7. HDU 1727 Hastiness(模拟)
  8. 2021年程序员可以做哪些副业?
  9. java word转html 空指针_Windows 内核漏洞学习—空指针解引用
  10. 可折叠手机Galaxy Fold被曝屏幕问题后 三星股价下跌逾3%
  11. jQuery补充及Django基本使用_Day18
  12. ucos任务调度函数 OSSched()函数分析 ,任务切换函数
  13. IOCP实现聊天服务
  14. ios 系统状态栏样式修改_IOS修改状态栏的字体颜色以及修改状态栏的背景颜色...
  15. Redis删除键命令: 入门用del,老手用unlink,有何区别?
  16. ROS2可视化利器---Foxglove Studio
  17. Java数据库的备份与恢复
  18. 可由低通滤波器推导变换为高通、带通、带阻滤波器
  19. 操作系统学习体会之进程管理篇
  20. Web 视频播放前前后后那些事

热门文章

  1. ROW_NUMBER() 分页
  2. java吵醒线程_一文搞懂 Java 线程中断
  3. linux如何编辑启动项,Ubuntu 11.04 启动项的修改
  4. Linux中如何将文件dump成16进制值
  5. java 线程数组_Java 数组线程间可见性问题
  6. OVS数据库操作(四十七)
  7. python 安装nameerror_python NameError:name’file’未定义
  8. 聊聊spring cloud的DefaultEurekaServerContext
  9. 在C 函数中保存状态:registry、reference和upvalues
  10. Scala学习 day01 Scala的类/方法/对象/单例对象