code2seq:从代码的结构化表示生成序列
机器学习
2019-02-22 v6 编程语言
机器学习
摘要
从源代码片断生成自然语言序列的能力具有多种应用,如代码摘要、文档化和检索。从神经机器翻译 (NMT) 采用的序列到序列 (seq2seq) 模型通过将源代码视为词元序列,在这些任务上取得了最先进的性能。我们提出 :一种利用编程语言句法结构以更好地编码源代码的替代方法。我们的模型将代码片断表示为其抽象语法树 (AST) 中组合路径的集合,并在解码时使用注意力机制选择相关路径。我们针对两项任务、两种编程语言和最多 M 个示例的四个数据集证明了我们方法的有效性。我们的模型显著优于专门为编程语言设计的先前模型以及最先进的 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