中文

code2seq:从代码的结构化表示生成序列

机器学习 2019-02-22 v6 编程语言 机器学习

摘要

从源代码片断生成自然语言序列的能力具有多种应用,如代码摘要、文档化和检索。从神经机器翻译 (NMT) 采用的序列到序列 (seq2seq) 模型通过将源代码视为词元序列,在这些任务上取得了最先进的性能。我们提出 CODE2SEQ{\rm {\scriptsize CODE2SEQ}}:一种利用编程语言句法结构以更好地编码源代码的替代方法。我们的模型将代码片断表示为其抽象语法树 (AST) 中组合路径的集合,并在解码时使用注意力机制选择相关路径。我们针对两项任务、两种编程语言和最多 1616M 个示例的四个数据集证明了我们方法的有效性。我们的模型显著优于专门为编程语言设计的先前模型以及最先进的 NMT 模型。我们模型的交互式在线演示可在 http://code2seq.org 获取。我们的代码、数据和训练好的模型可在 http://github.com/tech-srl/code2seq 获取。

关键词

引用

@article{arxiv.1808.01400,
  title  = {code2seq: Generating Sequences from Structured Representations of Code},
  author = {Uri Alon and Shaked Brody and Omer Levy and Eran Yahav},
  journal= {arXiv preprint arXiv:1808.01400},
  year   = {2019}
}

备注

Accepted to ICLR'2019