数据集:
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} }