ASSERT-KTH/megadiff-single-function
收藏Hugging Face2023-09-12 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/ASSERT-KTH/megadiff-single-function
下载链接
链接失效反馈官方服务:
资源简介:
---
configs:
- config_name: default
data_files:
- split: train
path: data/train-*
dataset_info:
features:
- name: diff
dtype: string
- name: is_single_chunk
dtype: bool
- name: is_single_function
dtype: bool
- name: buggy_function
dtype: string
- name: fixed_function
dtype: string
splits:
- name: train
num_bytes: 1624059115.752317
num_examples: 72393
download_size: 546172221
dataset_size: 1624059115.752317
language:
- code
pretty_name: megadiff
size_categories:
- 10K<n<100K
---
# Megadiff, a dataset of source code changes
Contains only single-function diffs.
If you use Megadiff, please cite the following technical report:
"[Megadiff: A Dataset of 600k Java Source Code Changes Categorized by Diff Size](http://arxiv.org/pdf/2108.04631)". Technical Report 2108.04631, Arxiv; 2021.
```
@techreport{megadiff,
TITLE = {{Megadiff: A Dataset of 600k Java Source Code Changes Categorized by Diff Size}},
AUTHOR = {Martin Monperrus and Matias Martinez and He Ye and Fernanda Madeiral and Thomas Durieux and Zhongxing Yu},
URL = {http://arxiv.org/pdf/2108.04631},
INSTITUTION = {Arxiv},
NUMBER = {2108.04631},
YEAR = {2021},
}
```
---
配置项:
- 配置名称:default
数据文件:
- 划分集:train
路径:data/train-*
数据集信息:
特征:
- 名称:代码差异(diff),数据类型:字符串
- 名称:是否单块差异(is_single_chunk),数据类型:布尔值
- 名称:是否单函数差异(is_single_function),数据类型:布尔值
- 名称:缺陷函数(buggy_function),数据类型:字符串
- 名称:修复后函数(fixed_function),数据类型:字符串
划分集:
- 名称:train,字节大小:1624059115.752317,样本数量:72393
下载大小:546172221
数据集总大小:1624059115.752317
语言:代码(code)
美观名称:Megadiff(megadiff)
大小分类:10K<n<100K
---
# Megadiff:源代码变更数据集
本数据集仅包含单函数代码差异。
若使用本数据集,请引用以下技术报告:
《Megadiff:按差异大小分类的60万个Java源代码变更数据集》(http://arxiv.org/pdf/2108.04631),技术报告编号2108.04631,arXiv;2021年。
@techreport{megadiff,
TITLE = {{Megadiff: A Dataset of 600k Java Source Code Changes Categorized by Diff Size}},
AUTHOR = {Martin Monperrus and Matias Martinez and He Ye and Fernanda Madeiral and Thomas Durieux and Zhongxing Yu},
URL = {http://arxiv.org/pdf/2108.04631},
INSTITUTION = {Arxiv},
NUMBER = {2108.04631},
YEAR = {2021},
}
提供机构:
ASSERT-KTH
原始信息汇总
Megadiff 数据集概述
数据集配置
- 配置名称: default
- 数据文件:
- 分割: train
- 路径: data/train-*
数据集信息
- 特征:
- 名称: diff
- 数据类型: string
- 名称: is_single_chunk
- 数据类型: bool
- 名称: is_single_function
- 数据类型: bool
- 名称: buggy_function
- 数据类型: string
- 名称: fixed_function
- 数据类型: string
- 名称: diff
- 分割:
- 名称: train
- 字节数: 1624059115.752317
- 样本数: 72393
- 名称: train
- 下载大小: 546172221
- 数据集大小: 1624059115.752317
语言
- code
数据集名称
- pretty_name: megadiff
数据集大小分类
- 10K<n<100K
数据集描述
- 仅包含单函数差异。
搜集汇总
数据集介绍

构建方式
在软件工程领域,代码变更分析是理解程序演化与缺陷修复的关键环节。Megadiff数据集的构建基于大规模Java源代码变更的收集与筛选,其原始数据来源于开源项目的版本控制系统。通过自动化工具提取代码差异(diff),并依据变更范围进行严格过滤,仅保留涉及单一函数的修改实例。这一过程确保了数据的高度聚焦性,为研究单函数级别的代码变更模式提供了纯净且结构化的基础。
特点
该数据集的核心特征在于其专注于单一函数级别的代码变更,每个样本均包含buggy_function与fixed_function的完整对比,辅以diff字段直观展示变更细节。数据规模适中,涵盖数万条实例,兼具深度与广度。其结构化设计便于直接应用于机器学习任务,如代码修复、变更分类或缺陷预测。此外,数据经过清洗与验证,确保了样本的一致性与可靠性,为实证研究提供了坚实支撑。
使用方法
在代码智能与软件维护研究中,Megadiff可直接用于训练或评估模型。用户可通过加载数据集分割(如train)访问各字段,其中diff与函数对可用于构建序列到序列的生成任务,例如自动程序修复。数据中的布尔标志(如is_single_function)支持快速筛选符合特定条件的子集。建议结合相关技术报告中的方法进行预处理,并依据任务需求将数据转换为适合模型输入的格式,以充分发挥其在代码分析领域的潜力。
背景与挑战
背景概述
在软件工程领域,代码变更分析是理解软件演化、缺陷修复及质量保障的核心课题。由Martin Monperrus、Matias Martinez等学者于2021年构建的Megadiff数据集,聚焦于Java源代码的变更模式,旨在为自动化程序修复、代码审查及重构技术提供大规模实证基础。该数据集通过提取Git历史中的差异片段,系统化地归类了超过60万条代码变更,其核心研究问题在于探索不同规模代码变更的分布特征及其对软件维护的影响,推动了基于机器学习的代码生成与优化研究的发展。
当前挑战
Megadiff数据集致力于应对自动化程序修复中代码变更模式识别的挑战,即如何从海量历史变更中学习有效的修复策略以提升缺陷定位与补丁生成的准确性。在构建过程中,研究者面临多重困难:首先,从Git仓库中精确提取单函数级别的差异需要处理复杂的代码解析与版本比对问题,确保变更片段的完整性与一致性;其次,数据清洗过程中需排除合并冲突、格式调整等非功能性变更,以保障数据质量;此外,大规模代码变更的分类与标注需克服计算资源与人工验证的瓶颈,以实现数据集的可靠性与可复用性。
常用场景
经典使用场景
在软件工程领域,代码变更分析是提升软件质量和开发效率的核心环节。Megadiff-single-function数据集聚焦于Java源代码的单函数级别变更,为研究者提供了大量结构化的diff数据。该数据集最经典的使用场景在于训练和评估自动化代码修复模型,通过对比buggy_function与fixed_function的差异,模型能够学习识别和纠正代码中的缺陷模式,从而推动智能编程辅助工具的发展。
实际应用
在实际应用中,Megadiff-single-function数据集被广泛集成于持续集成与交付流程。开发团队可利用其训练出的模型,自动检测代码提交中的潜在错误,并提供修复建议,从而减少人工代码审查负担。此外,该数据集还支持构建智能IDE插件,实时辅助程序员编写更健壮的代码,显著提升软件开发的生产力与质量。
衍生相关工作
基于Megadiff-single-function数据集,学术界衍生了一系列经典研究工作。例如,在自动化程序修复领域,研究者利用该数据集训练了先进的序列到序列模型,实现了更精准的缺陷修补。同时,该数据集也促进了代码变更表示学习的发展,为代码嵌入和相似性检测任务提供了重要基准,推动了软件智能化的前沿探索。
以上内容由遇见数据集搜集并总结生成



