
摘要
开放域代码生成旨在从自然语言(NL)意图中生成通用编程语言(如 Python)的代码。受开发者在编写代码时常从网络上检索资源这一直觉的启发,我们探索了将两类外部知识引入自然语言到代码生成任务的有效性:从在线编程问答平台 StackOverflow 自动挖掘的自然语言-代码配对数据,以及编程语言的 API 文档。实验结果表明,通过数据增强与基于检索的数据重采样策略,融合这两类外部知识可使当前最先进方法在代码生成基准测试集 CoNaLa 上的 BLEU 分数提升最高达 2.2 个百分点。相关代码与资源已开源,地址为 https://github.com/neulab/external-knowledge-codegen。
代码仓库
zorazrw/multilingual-conala
pytorch
GitHub 中提及
neulab/external-knowledge-codegen
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| code-generation-on-conala | External Knowledge With API + Reranking | BLEU: 32.26 |
| code-generation-on-conala | External Knowledge With API | BLEU: 30.69 |
| code-generation-on-conala-ext | External Knowledge With API | BLEU: 20.37 |
| code-generation-on-conala-ext | External Knowledge With API + Reranking | BLEU: 20.54 |