数据集:
AhmedSSoliman/CodeXGLUE-CONCODE
一个大型数据集,包含来自在线代码库的Java类的超过100,000个示例,并开发了一种新的编码器-解码器架构来建模方法文档和类环境之间的交互。
Concode数据集是Iyer在2018年EMNLP论文中广泛使用的代码生成数据集。
Concode数据集的数据统计如下表所示:
| #Examples | |
|---|---|
| Train | 100,000 |
| Validation | 2,000 |
| Test | 2,000 |
代码语料库以json行格式文件保存。一行是一个json对象:
{
"nl": "Increment this vector in this place. con_elem_sep double[] vecElement con_elem_sep double[] weights con_func_sep void add(double)",
"code": "public void inc ( ) { this . add ( 1 ) ; }"
}
nl将自然语言描述和类环境结合在一起。类环境中的元素由特殊标记(如con_elem_sep和con_func_sep)分隔。
给定自然语言描述和类环境,在Java中生成类成员函数的源代码。类环境是通过类的其余部分提供的编程上下文,包括类中的其他成员变量和成员函数。模型通过完全匹配和BLEU进行评估。
这是一个具有挑战性的任务,因为所需的代码可能因类所提供的功能而大不相同。模型必须(a)深入理解自然语言描述,并将自然语言描述映射到环境变量、库API调用和类中定义的方法,并且(b)决定生成代码的结构。
Concode数据集:
@article{iyer2018mapping,
title={Mapping language to code in programmatic context},
author={Iyer, Srinivasan and Konstas, Ioannis and Cheung, Alvin and Zettlemoyer, Luke},
journal={arXiv preprint arXiv:1808.09588},
year={2018}
}