Recommendations for Datasets for Source Code Summarization
摘要
源代码总结任务受限于数据集:缺乏社区标准的数据集使得研究结果混乱而不能重复。
1 INTRODUCTION
绝大多数代码总结技术都是对最初设计用于解决NLP问题的技术的改进。
但缺乏像NLP那样庞大精良的数据集;缺乏标准数据集使结果难以解释和复制。
本文数据集组成:2.1M的java方法以及对应java方法的一句话描述。
2 RELATED WORK
- heuristic/template-based
- data-driven
- AI-based
3 DATASET PREPARATION
基于LeClair 的数据集。从51M方法中,去除方法长度>100 、注释长度 > 13 和 < 3 的内容,最后得到21M的数据集。
3.1 RESEARCH QUESTIONS
数据集量化研究:
- 数据集通过方法分割和项目分割之间的影响
- 去除自动生成的 JAVA 方法的影响
RQ1 What is the effect of splitting by method versus splitting by project?
RQ2 What is the effect of removing automatically generated Java methods?
RQ1
单纯地把Method按比例分为训练、测试、验证集,可能导致同一个项目的代码同时存在于测试集和训练集中,来自同一项目的方法中可能使用了类似的词汇表和代码模式,还有重载方法重复出现的问题。
因此,本文按照项目分割数据集:把JAVA项目分成 训练/验证/测试组。
RQ2
自动生成的JAVA方法存在大多数JAVA项目中,造成不同项目之间这部分方法的极大相似性。(Shimonaka et al., 2016) 提出通过搜索不区分大小写的“generated by”过滤自动生成方法。(A neural model for generating