Generating Summaries with Topic Templates and Structured Convolutional Decoders笔记

介绍一种基于结构化解码器的摘要生成方法,使用CNN编码器和LSTM生成句子向量,结合主题模型增强话题敏感度,实验证明在ROUGE-1指标上有显著提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用的是卷积解码器,和已知的经典RNN的seq2seq是不同的,有更好的内容覆盖率

一、定义

导言

文档被组织成主题连贯的文本片段,在讨论的内容方面表现出特定的结构

某些主题可能以特定的顺序进行讨论

(比如描述物种的顺序一般是:类型、发现的地区、栖息地)

任务

和18年WikiSum一样

二、模型

我们的模型由一个结构化的译码器组成,它被训练来预测一系列应该在摘要中讨论的句子主题,并基于这些主题生成句子。

  • encoder: CNN
  • decoder:
    • document-level decoder first generates sentence vectors (LSTM)
      • 每一个时间步t,根据ht−1h_{t-1}ht1st−1s_{t-1}st1用LSTM生成隐状态向量hth_{t}ht,通过注意力层输出代表句子的序列向量sts_{t}st
    • sentence-level decoder is then applied to generate an actual sentence token-by-token(CNN)
      • 这个CNN融合了embedding
      • 将每个目标词ytiy_{ti}yti的词表示wtiw_{ti}wti与表示该词在句子中的位置的向量eie_iei组合,wti=emb(yti)+eiw_{ti}= emb(y_{ti}) + e_iwti=emb(yti)+ei
主题模型

为了使得the document-level decoder 更加 topic-aware,

把每个句子看做一个文档,并利用LDA模型分析其中隐含的主题列表K,并训练了一个分类器为每一个句子打上最可能的主题标签

(分配的标签貌似是来自句子里的一些关键词)

三、实验

作者用的是自己构造的数据集WIKICATSUM实验,结果如下

自动评价
  • 结构化译码器使ROUGE-1 (R1)有了很大的改进
  • 使用主题标签(+T)的变体平均提高了+2分
  • 有些领域可以作者的模型超过谷歌的Transformer sequence-to-sequence 模型,有些不行
人工评价
  • 每个文章问几个问题,读者读完摘要后能否回答这些问题
    • (评价摘要是否保留了输入段落中的重要信息)
  • 问3个问题,评估总结的总体内容和语言质量
    • (Content、Fluency、Succinctness)

四、疑惑

Wikipedia lead section是什么?在维基百科里对应哪部分?

答:
在这里插入图片描述

查了一下,应该是在内容表之前的简介部分

sentence-level decoder 是怎么用CNN通过注意机制引入的?

这个得读一下作者引用的CNN-att论文orz

### 如何使用JavaCC生成解析器 Java Compiler Compiler (JavaCC) 是一种工具,可以用来生成基于给定语法文件的解析器。它是一种LL(k)类型的自顶向下解析器生成器[^1]。以下是关于如何利用JavaCC来生成解析器的具体方法。 #### 准备工作 首先需要下载并安装JavaCC软件包。可以从其官方网站或其他可信资源获取最新版本的JavaCC。确保环境变量配置正确以便能够在命令行中调用`javacc`命令[^1]。 #### 创建语法文件 编写一个描述目标语言结构的`.jj`文件。此文件定义了词法规则和语法规则。例如: ```java PARSER_BEGIN(MyParser) public class MyParser { public static void main(String[] args) throws ParseException { MyParser parser = new MyParser(System.in); parser.Start(); } } PARSER_END(MyParser) TOKEN : { < INTEGER : "[0-9]+" > } void Start() : {} { (<INTEGER>)+ } ``` 这段代码片段展示了一个简单的例子,其中定义了一个接受整数序列输入的解析器[^1]。 #### 使用JavaCC生成解析器 通过执行如下命令行指令来运行JavaCC工具以生成解析器类: ```bash javacc MyGrammar.jj ``` 这会依据指定的`.jj`文件生成一系列Java源码文件,这些文件共同构成了能够解析符合所定义语法字符串的解析器[^1]。 如果希望扩展功能或者定制化行为,则可考虑集成JJTree作为预处理器的一部分流程[^2]^。 JJTree允许开发者构建抽象语法树(AST),从而更方便地操作复杂的表达式或数据结构[^3]。 #### 配置选项优化性能 为了提高效率,在某些情况下可能想要调整默认设置比如关闭部分静态检查项。可以通过修改`.options`参数实现这一点;具体而言,“SANITY_CHECKS”是一个布尔型选项,默认开启(true),当设为false时能减少不必要的验证过程加快编译速度但是也可能隐藏潜在错误风险因此需谨慎对待[^4]。 ### 总结 综上所述,借助于强大的JavaCC框架及其配套组件(JJTree等),我们可以轻松高效地开发出自定义需求下的各类解析解决方案。无论是基础应用还是高级特性支持都提供了极大的灵活性与便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值