alexjercan/bugnet
收藏Hugging Face2023-07-26 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/alexjercan/bugnet
下载链接
链接失效反馈资源简介:
该数据集基于CodeNet项目,包含用于在线编程竞赛的Python和C++代码提交。数据通过选择用户连续尝试修复错误提交的代码对来生成,并标注了每个更改指令的差异和错误。数据集已经过预处理,去除了lint工具检测出的错误,仅保留难以识别的错误。数据集以CSV格式存储,包含多个特征列,如problem_id、language、original_status等。
该数据集基于CodeNet项目,包含用于在线编程竞赛的Python和C++代码提交。数据通过选择用户连续尝试修复错误提交的代码对来生成,并标注了每个更改指令的差异和错误。数据集已经过预处理,去除了lint工具检测出的错误,仅保留难以识别的错误。数据集以CSV格式存储,包含多个特征列,如problem_id、language、original_status等。
提供机构:
alexjercan
原始信息汇总
数据集概述
数据集配置
-
Python配置
- 特征:包含17个特征,如
problem_id,language,original_status,fail,pass,change,i1,i2,j1,j2,error,stderr,stdout,description,input,output。 - 数据分割:
- 训练集:2557个示例,8237153字节。
- 验证集:1105个示例,3497872字节。
- 测试集:100个示例,205241字节。
- 下载大小:19290233字节。
- 数据集大小:11940266字节。
- 特征:包含17个特征,如
-
C++配置
- 特征:同样包含17个特征。
- 数据分割:
- 训练集:68621个示例,482930200字节。
- 验证集:125个示例,1129323字节。
- 测试集:4769个示例,40048505字节。
- 下载大小:378900920字节。
- 数据集大小:524108028字节。
数据集内容
- 数据集基于CodeNet项目,包含Python和C++代码提交,用于在线编程竞赛。
- 数据通过选择单个用户连续尝试修复错误提交的结果获得,代表为代码对,并由每个更改指令的差异和错误注释。
- 所有源代码文件已进行标记化,保持与原始数据集相同的格式。
- 与CodeNetPy相比,升级之处在于仅保留单行错误,移除了所有在linters上失败的文件。
数据集文件格式
- 数据集文件为CSV格式,包含以下列:
problem_idlanguageoriginal_statusfailpasschangei1i2j1j2errorstderrstdoutdescriptioninputoutput
AI搜集汇总
数据集介绍

构建方式
在软件工程领域,自动化错误检测与修复是提升代码质量的关键环节。BugNet数据集基于IBM的CodeNet项目构建,专注于Python与C++编程语言。其构建过程通过筛选在线编程竞赛中同一用户的连续提交记录,仅保留那些成功修复错误提交的代码对。数据经过精心处理,剔除了因代码格式检查工具(如linter)而失败的样本,确保聚焦于难以识别的逻辑错误,同时限定为单行错误变更,简化了错误定位与修复的复杂性。所有源代码均经过格式化工具处理,并保留了原始数据集的令牌化结构,最终以结构化CSV格式呈现,包含错误与修复代码的详细对比及执行信息。
特点
BugNet数据集在代码缺陷研究领域展现出独特价值。其核心特点在于专注于单行错误变更,这降低了错误检测与修复任务的复杂度,便于模型聚焦于细微的代码逻辑差异。数据集涵盖Python和C++两种主流语言,提供了丰富的跨语言分析机会。每个样本均包含完整的错误与修复代码对,辅以详细的变更位置标注、执行错误信息及问题描述,形成了多维度的分析基础。此外,数据经过严格的格式化与清理,去除了格式错误干扰,确保了研究的一致性与可靠性,为自动化代码修复工具的开发提供了高质量基准。
使用方法
在代码智能与软件维护研究中,BugNet数据集为模型训练与评估提供了实用框架。使用者可通过加载CSV格式的数据文件,直接访问代码对、变更标注及错误输出等字段。该数据集适用于监督学习任务,如错误定位、代码修复生成或缺陷分类,模型可基于`fail`与`pass`代码的对比进行训练。研究人员可利用提供的训练、验证和测试划分,进行模型性能的稳健评估。此外,丰富的元数据如问题描述和测试用例,支持更复杂的上下文感知分析,推动自动化代码质量提升技术的进步。
背景与挑战
背景概述
在软件工程与人工智能交叉领域,自动化程序修复与缺陷检测一直是核心研究议题。BugNet数据集由研究人员Alex Jercan等人于近年构建,其基础源自IBM的CodeNet项目,专注于Python与C++编程语言。该数据集通过收集在线编程竞赛中用户连续提交的代码对,精确标注了缺陷代码与修复后代码之间的差异及错误信息,旨在推动智能缺陷定位与自动修复模型的发展。其构建不仅深化了代码表示学习的研究,也为程序合成与软件质量保障提供了关键数据支撑,显著提升了相关领域模型的实用性与泛化能力。
当前挑战
BugNet数据集致力于解决程序自动修复与缺陷检测中的核心挑战,即如何精准定位单行错误并进行有效修复,这要求模型具备深层次的代码语义理解与逻辑推理能力。在构建过程中,挑战主要集中于数据清洗与标注的复杂性:需从海量竞赛提交中筛选出符合“单行错误”标准的代码对,并排除静态分析工具可识别的简单缺陷,以确保数据质量与任务难度。此外,跨语言(Python与C++)的代码表示统一与错误类型标准化也是构建中的关键难点,这些因素共同影响了数据集的规模与泛化性能。
常用场景
经典使用场景
在软件工程与程序分析领域,BugNet数据集为自动程序修复研究提供了关键资源。该数据集通过收集在线编程竞赛中Python和C++语言的代码提交对,聚焦于用户连续尝试修复错误提交的过程,并标注了代码差异与错误信息。其经典使用场景在于训练和评估机器学习模型,特别是针对单行错误的检测与修复任务,为研究者提供了结构化的代码变更序列,以模拟真实世界中程序调试的微观机制。
实际应用
在实际应用层面,BugNet数据集支撑了智能编程辅助工具的开发。基于该数据集训练的模型可集成到集成开发环境或在线评测平台中,实时检测代码中的潜在错误并提供修复建议,显著提升开发者的调试效率。此外,它还可用于教育领域,帮助学生理解常见编程错误及其修正策略,或用于自动化测试系统中,增强软件持续集成流程的可靠性。
衍生相关工作
围绕BugNet数据集,已衍生出多项经典研究工作。例如,基于其代码对和错误标注,研究者开发了多种序列到序列模型,用于学习从错误代码到正确代码的映射关系。同时,该数据集也促进了代码表示学习方法的创新,如结合抽象语法树与注意力机制的模型,以更精细地捕捉代码变更的语义。这些工作不仅推动了自动程序修复技术的进步,也为代码理解、代码生成等相邻领域提供了借鉴。
以上内容由AI搜集并总结生成



