semeru/code-code-CodeRefinement-Java-Medium
收藏Hugging Face2023-03-27 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/semeru/code-code-CodeRefinement-Java-Medium
下载链接
链接失效反馈官方服务:
资源简介:
该数据集用于代码精炼任务,旨在自动修复Java代码中的错误,从而减少开发人员修复错误的成本。数据集来源于一篇论文,包含带有错误的Java函数和修复后的版本,所有函数和变量名称都进行了规范化。数据集根据函数长度分为两个子集,本数据集为中等大小。数据集的训练集包含52,364个样本,验证集和测试集各包含6,545个样本。
该数据集用于代码精炼任务,旨在自动修复Java代码中的错误,从而减少开发人员修复错误的成本。数据集来源于一篇论文,包含带有错误的Java函数和修复后的版本,所有函数和变量名称都进行了规范化。数据集根据函数长度分为两个子集,本数据集为中等大小。数据集的训练集包含52,364个样本,验证集和测试集各包含6,545个样本。
提供机构:
semeru原始信息汇总
数据集概述
数据集来源与处理
- 数据集导入自CodeXGLUE,并使用其脚本进行预处理。
数据集存储位置
- 数据集位于Semeru的
/nfs/semeru/semeru_datasets/code_xglue/code-to-code/code-refinement/data/medium。
数据集内容
- 数据集基于论文https://arxiv.org/pdf/1812.08693.pdf发布。
- 源代码为带有错误的Java函数,目标代码为经过精炼的版本。
- 所有函数和变量名已标准化。
- 数据集根据函数长度分为两个子集(小和中等),本数据集为中等大小。
数据统计
| #Examples | |
|---|---|
| Medium | Medium |
| Train | 52,364 |
| Valid | 6,545 |
| Test | 6,545 |
任务定义
- 任务目标:自动修复代码中的错误,减少开发者修复错误的成本。
- 输入:带有错误的Java代码。
- 输出:精炼后的代码。
- 评估指标:BLEU分数、准确率(完全匹配)和CodeBLEU。
许可证
- 许可证类型:MIT
编程语言
- 编程语言:Java
数据集版本
- 版本:N/A
数据集发布日期
- 发布日期:2019年5月
数据集污染可能性
- 污染可能性:非常可能
搜集汇总
数据集介绍

构建方式
在软件工程领域,代码缺陷修复是提升软件质量的关键环节。semeru/code-code-CodeRefinement-Java-Medium数据集源自CodeXGLUE基准测试,并依据其官方脚本进行预处理。该数据集基于Tufano等人2019年发表的论文构建,其核心思想是收集存在缺陷的Java函数及其对应的修复后版本,通过神经机器翻译的方式学习从缺陷代码到正确代码的映射。数据构建过程中,所有函数名与变量名均被标准化处理,以消除特定命名对模型学习的干扰。根据函数长度,原始数据集划分为small与medium两个子集,本数据集即为其中的medium子集。训练集包含52,364个样本,验证集与测试集各含6,545个样本,为模型训练与评估提供了充足且均衡的数据支持。
特点
该数据集最显著的特点在于其聚焦于中等长度的Java函数缺陷修复任务,填补了短函数与长函数之间的研究空白。所有样本均经过变量名和函数名的标准化处理,有效降低了模型对特定标识符的过拟合风险,使其更专注于学习代码结构层面的修复模式。数据集来源于真实世界的代码仓库,而非人工构造的缺陷样例,因此具有较高的生态效度。评估体系采用BLEU分数、精确匹配准确率以及CodeBLEU三种指标,从词汇相似度、语义一致性及语法结构三个维度全面衡量修复质量。此外,该数据集作为CodeXGLUE的重要组成部分,已被广泛应用于代码智能领域的模型基准测试,具备良好的可比性与可复现性。
使用方法
使用该数据集时,研究人员可直接从HuggingFace平台加载semeru/code-code-CodeRefinement-Java-Medium,无需额外预处理。典型应用场景是基于编码器-解码器架构的序列到序列模型,如Transformer或BART,将缺陷代码作为源序列输入,目标序列为修复后的正确代码。模型训练完成后,可通过计算生成代码与参考修复代码之间的BLEU分数、精确匹配准确率及CodeBLEU分数进行性能评估。值得注意的是,由于该数据集可能已被广泛用于多个模型的训练与测试,新方法在报告结果时需明确说明是否使用了该数据集,以避免数据污染带来的性能虚高。
背景与挑战
背景概述
在软件工程领域,代码缺陷修复一直是提升软件质量与开发效率的核心议题。传统的人工调试方法耗时费力,难以应对大规模代码库的维护需求。2019年,Tufano等人发表于《ACM Transactions on Software Engineering and Methodology》的研究开创性地将神经机器翻译技术应用于代码缺陷自动修复,提出了CodeRefinement任务,并构建了包含Java函数级别缺陷与修复配对的基准数据集。该数据集由Michele Tufano、Cody Watson等来自威廉与玛丽学院的研究团队创建,基于大规模开源项目中的真实缺陷修复记录,并经过变量与函数名的标准化处理。作为CodeXGLUE跨语言代码理解与生成基准的重要组成部分,该数据集的中等规模子集(Medium)包含超过6.5万个样本,为评估深度学习模型在代码缺陷修复领域的泛化能力提供了标准化测试平台,显著推动了自动化程序修复技术的实证研究进展。
当前挑战
当前,该数据集面临的核心挑战体现在三个层面。首先,在领域问题层面,代码缺陷修复任务要求模型不仅理解语法结构,还需捕捉代码语义逻辑与预期行为之间的微妙差异,这与自然语言翻译存在本质不同——一个字符的变化可能引发完全不同的执行结果,导致BLEU或精确匹配等传统评估指标难以全面反映修复质量。其次,在数据构建过程中,研究者面临代码缺陷多样性与标注一致性的矛盾:真实世界中的缺陷类型涵盖空指针、类型错误、逻辑漏洞等数十种,而人工标注时难以保证对每种缺陷的修复方案具有唯一正确性,这引入了标注噪声。此外,数据集中函数与变量名的标准化处理虽然保护了隐私,却抹去了领域特定词汇的语义线索,迫使模型仅依赖结构模式进行推理,进一步加剧了学习难度。
常用场景
经典使用场景
该数据集聚焦于Java编程语言中的代码精炼任务,旨在通过将包含缺陷的Java函数映射至修复后的正确版本,实现自动化的缺陷修复。作为CodeXGLUE基准测试的重要组成部分,它被广泛应用于评估基于神经机器翻译的代码修复模型。研究者在中等规模函数长度子集上训练和测试模型,利用BLEU、精确匹配率及CodeBLEU等指标衡量模型生成修复代码的质量与准确性,从而推动代码修复领域的算法创新与性能提升。
实际应用
在实际软件开发中,该数据集训练的模型可嵌入集成开发环境或持续集成流水线,自动检测并修复代码中的常见错误,如逻辑漏洞、API误用或变量命名错误。开发者提交代码后,模型能迅速提供修复建议,减少代码审查的迭代次数,加速软件发布周期。此外,它还可用于教育场景,辅助编程初学者识别并纠正代码缺陷,提升代码质量与学习效率。
衍生相关工作
该数据集衍生了一系列经典研究工作,包括Tufano等人提出的基于序列到序列模型的缺陷修复方法,以及后续基于Transformer架构的改进模型。这些工作不仅验证了神经机器翻译在代码修复中的有效性,还催生了CodeBERT、GraphCodeBERT等预训练模型在代码缺陷检测与修复任务上的应用,进一步拓展了代码理解与生成的边界,推动了软件工程与自然语言处理领域的交叉融合。
以上内容由遇见数据集搜集并总结生成



