数据集:

AhmedSSoliman/CodeXGLUE-CONCODE

英文

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}
}