five

semeru/Code-Code-CloneDetection-BigCloneBench

收藏
Hugging Face2023-03-27 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/semeru/Code-Code-CloneDetection-BigCloneBench
下载链接
链接失效反馈
官方服务:
资源简介:
--- license: mit Programminglanguage: "Java" version: "N/A" Date: "2014 Big clone bench paper https://www.cs.usask.ca/faculty/croy/papers/2014/SvajlenkoICSME2014BigERA.pdf" Contaminated: "Very Likely" Size: "Standard Tokenizer" --- ### Dataset is imported from CodeXGLUE and pre-processed using their script. # Where to find in Semeru: The dataset can be found at /nfs/semeru/semeru_datasets/code_xglue/code-to-code/Clone-detection-BigCloneBench in Semeru # CodeXGLUE -- Clone Detection (BCB) ## Task Definition Given two codes as the input, the task is to do binary classification (0/1), where 1 stands for semantic equivalence and 0 for others. Models are evaluated by F1 score. ## Updates 2021-9-13: We have update the evaluater script. Since it's a binary classification, we use binary F1 score instead of "macro" F1 score. ## Dataset The dataset we use is [BigCloneBench](https://www.cs.usask.ca/faculty/croy/papers/2014/SvajlenkoICSME2014BigERA.pdf) and filtered following the paper [Detecting Code Clones with Graph Neural Network and Flow-Augmented Abstract Syntax Tree](https://arxiv.org/pdf/2002.08653.pdf). ### Data Format 1. dataset/data.jsonl is stored in jsonlines format. Each line in the uncompressed file represents one function. One row is illustrated below. - **func:** the function - **idx:** index of the example 2. train.txt/valid.txt/test.txt provide examples, stored in the following format: idx1 idx2 label ### Data Statistics Data statistics of the dataset are shown in the below table: | | #Examples | | ----- | :-------: | | Train | 901,028 | | Dev | 415,416 | | Test | 415,416 | ## Reference <pre><code>@inproceedings{svajlenko2014towards, title={Towards a big data curated benchmark of inter-project code clones}, author={Svajlenko, Jeffrey and Islam, Judith F and Keivanloo, Iman and Roy, Chanchal K and Mia, Mohammad Mamun}, booktitle={2014 IEEE International Conference on Software Maintenance and Evolution}, pages={476--480}, year={2014}, organization={IEEE} } @inproceedings{wang2020detecting, title={Detecting Code Clones with Graph Neural Network and Flow-Augmented Abstract Syntax Tree}, author={Wang, Wenhan and Li, Ge and Ma, Bo and Xia, Xin and Jin, Zhi}, booktitle={2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)}, pages={261--271}, year={2020}, organization={IEEE} }</code></pre>

许可证:MIT许可证 编程语言:Java 版本:无(N/A) 发布日期:2014年大克隆基准相关论文,详见https://www.cs.usask.ca/faculty/croy/papers/2014/SvajlenkoICSME2014BigERA.pdf 数据污染情况:极有可能存在数据污染 分词方式:标准分词器(Standard Tokenizer) ### 本数据集从CodeXGLUE导入,并使用其官方脚本完成预处理。 ## 在Semeru中的存储路径 该数据集在Semeru中的存储路径为`/nfs/semeru/semeru_datasets/code_xglue/code-to-code/Clone-detection-BigCloneBench` ## CodeXGLUE——代码克隆检测任务(BCB) ## 任务定义 输入两段代码,需完成二分类任务(标签为0或1),其中标签1表示两段代码语义等价,标签0表示其他情况。模型以F1分数作为评估指标。 ## 更新记录 2021年9月13日:更新了评估脚本。由于本任务为二分类任务,我们改用二分类F1分数替代宏平均(macro)F1分数作为评估指标。 ## 数据集说明 本数据集采用BigCloneBench(详见https://www.cs.usask.ca/faculty/croy/papers/2014/SvajlenkoICSME2014BigERA.pdf),并按照论文《基于图神经网络(Graph Neural Network)与流增强抽象语法树(Abstract Syntax Tree)的代码克隆检测》(Detecting Code Clones with Graph Neural Network and Flow-Augmented Abstract Syntax Tree,https://arxiv.org/pdf/2002.08653.pdf)的方法进行了数据过滤。 ### 数据格式 1. `dataset/data.jsonl` 采用jsonlines格式存储。解压后的文件中每一行对应一个函数,示例格式如下: - **func**:对应函数代码 - **idx**:样本索引 2. `train.txt`、`valid.txt`、`test.txt` 存储样本数据,格式为:`idx1 idx2 标签` ### 数据统计 本数据集的统计信息如下表所示: | 数据集划分 | 样本数量 | | :--------: | :-----: | | 训练集 | 901,028 | | 验证集 | 415,416 | | 测试集 | 415,416 | ## 参考文献 bibtex @inproceedings{svajlenko2014towards, title={Towards a big data curated benchmark of inter-project code clones}, author={Svajlenko, Jeffrey and Islam, Judith F and Keivanloo, Iman and Roy, Chanchal K and Mia, Mohammad Mamun}, booktitle={2014 IEEE International Conference on Software Maintenance and Evolution}, pages={476--480}, year={2014}, organization={IEEE} } @inproceedings{wang2020detecting, title={Detecting Code Clones with Graph Neural Network and Flow-Augmented Abstract Syntax Tree}, author={Wang, Wenhan and Li, Ge and Ma, Bo and Xia, Xin and Jin, Zhi}, booktitle={2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)}, pages={261--271}, year={2020}, organization={IEEE} }
提供机构:
semeru
原始信息汇总

数据集概述

基本信息

  • 许可证: MIT
  • 编程语言: Java
  • 数据集来源: 从CodeXGLUE导入并使用其脚本预处理
  • 数据集名称: BigCloneBench
  • 数据集位置: /nfs/semeru/semeru_datasets/code_xglue/code-to-code/Clone-detection-BigCloneBench
  • 数据集污染可能性: 很可能
  • 数据集大小: 标准分词器

任务定义

  • 任务: 二元分类(0/1),其中1表示语义等价,0表示其他情况
  • 评估指标: F1分数

数据格式

  • 数据存储格式: jsonlines格式,每个未压缩文件的行代表一个函数
    • func: 函数
    • idx: 示例索引
  • 训练/验证/测试数据格式: idx1 idx2 label

数据统计

#Examples
Train 901,028
Dev 415,416
Test 415,416

参考文献

  • Svajlenko, Jeffrey, et al. "Towards a big data curated benchmark of inter-project code clones." 2014 IEEE International Conference on Software Maintenance and Evolution.
  • Wang, Wenhan, et al. "Detecting Code Clones with Graph Neural Network and Flow-Augmented Abstract Syntax Tree." 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER).
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,代码克隆检测是提升代码质量和维护效率的关键任务。BigCloneBench数据集作为该领域的经典基准,其构建过程体现了严谨的学术规范。该数据集源自2014年发表的BigCloneBench研究,通过大规模收集Java项目代码,并依据代码功能语义进行人工标注与分类,形成了涵盖多种克隆类型的样本库。随后,研究团队遵循《基于图神经网络与流增强抽象语法树的代码克隆检测》论文中的过滤方法,对原始数据进行了精细化处理,去除了噪声样本,确保了数据集的纯净性与代表性。最终整理出的数据以jsonlines格式存储,每条记录包含函数代码及其索引,为模型训练与评估提供了结构化基础。
使用方法
在代码克隆检测的应用中,BigCloneBench数据集的使用方法遵循标准机器学习流程。研究人员首先加载数据文件,其中data.jsonl提供函数代码与索引,而train.txt、valid.txt和test.txt则包含代码对索引及其标签,格式为“idx1 idx2 label”。模型训练时,需根据索引从data.jsonl中提取对应的函数代码作为输入特征,将标签作为监督信号,构建二进制分类任务,以判断代码对是否语义等价。评估阶段采用F1分数作为核心指标,确保模型性能的准确衡量。数据集已集成于CodeXGLUE基准框架中,用户可通过预处理的脚本直接使用,简化了实验部署过程,促进了代码克隆检测技术的迭代与比较。
背景与挑战
背景概述
在软件工程领域,代码克隆检测是维护代码质量、提升软件可维护性的关键技术。BigCloneBench数据集由Jeffrey Svajlenko等人于2014年创建,作为一项大规模跨项目代码克隆的基准数据集,其核心研究问题在于识别语义等价的代码片段,即便它们在语法结构上存在差异。该数据集基于Java语言构建,通过提供海量的函数对样本,为机器学习模型在代码克隆检测任务上的训练与评估奠定了坚实基础,显著推动了代码语义理解与软件分析领域的研究进展。
当前挑战
BigCloneBench数据集所解决的领域挑战在于准确区分代码的语义等价性,这要求模型能够超越表面语法差异,深入理解代码的功能意图与逻辑结构。在构建过程中,研究人员面临数据规模庞大带来的处理复杂度,以及如何从原始代码库中高效过滤并标注高质量克隆对的难题。此外,确保数据集的代表性与无污染性,避免训练与测试数据之间的信息泄露,也是该数据集构建中需克服的关键技术障碍。
常用场景
经典使用场景
在软件工程领域,代码克隆检测是保障代码质量和维护效率的关键环节。BigCloneBench数据集作为大规模Java代码克隆检测的基准,其经典使用场景在于训练和评估机器学习模型,特别是深度学习模型,以自动识别语义等价的代码片段。通过提供海量的函数对及其标签,该数据集使研究者能够构建精准的二元分类系统,区分代码是否具有克隆关系,从而推动自动化代码分析工具的发展。
解决学术问题
BigCloneBench数据集解决了软件工程中代码克隆检测的若干核心学术问题,包括大规模跨项目克隆的识别、语义克隆的准确分类以及自动化检测方法的性能评估。其意义在于提供了一个标准化、多样化的基准,促进了从传统基于文本的方法到基于图神经网络等先进技术的演进,显著提升了检测的准确性和可扩展性,对软件维护、知识产权保护和代码优化研究产生了深远影响。
实际应用
在实际应用中,BigCloneBench数据集支撑了代码克隆检测工具的开发与优化,广泛应用于软件质量保障、代码审查自动化和重构建议系统。例如,在大型企业软件开发中,基于该数据集的模型能够高效扫描代码库,识别重复或相似的代码块,帮助开发者减少冗余、预防错误传播,并提升代码的一致性和可维护性,从而降低长期维护成本。
数据集最近研究
最新研究方向
在软件工程领域,代码克隆检测作为保障代码质量和维护效率的关键技术,近年来借助BigCloneBench数据集推动了前沿探索。当前研究聚焦于融合图神经网络与增强抽象语法树的方法,通过捕捉代码的语义结构和控制流依赖,提升克隆识别的精确度。这一方向与软件智能化维护的热点事件紧密相连,例如在大型开源项目如Linux内核或Apache基金会代码库中应用深度学习模型进行自动化代码审查。其影响在于显著降低了人工检测成本,并为代码重构、漏洞检测及知识产权保护提供了可靠的技术支撑,对推动软件工程向自动化、智能化方向发展具有深远意义。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作