【论文笔记】Recommendations for Datasets for Source Code Summarization

本文探讨源代码总结任务中数据集的重要性和挑战,分析了按方法和项目分割数据集的效果,以及移除自动生成代码的影响。研究发现,按项目分割可避免数据泄露,提高模型泛化能力,而移除自动生成代码有助于减少实验偏差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Recommendations for Datasets for Source Code Summarization

摘要

源代码总结任务受限于数据集:缺乏社区标准的数据集使得研究结果混乱而不能重复。

1 INTRODUCTION

绝大多数代码总结技术都是对最初设计用于解决NLP问题的技术的改进。

但缺乏像NLP那样庞大精良的数据集;缺乏标准数据集使结果难以解释和复制。

本文数据集组成:2.1M的java方法以及对应java方法的一句话描述。

2 RELATED WORK

  1. heuristic/template-based
  2. data-driven
  3. AI-based

3 DATASET PREPARATION

基于LeClair 的数据集。从51M方法中,去除方法长度>100 、注释长度 > 13 和 < 3 的内容,最后得到21M的数据集。

3.1 RESEARCH QUESTIONS

数据集量化研究:

  1. 数据集通过方法分割和项目分割之间的影响
  2. 去除自动生成的 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值