five

TBCCD

收藏
github2024-01-25 更新2024-05-31 收录
下载链接:
https://github.com/yh1105/datasetforTBCCD
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集包含用于TBCCD论文中使用的数据集和源代码变体。数据.zip包含oj数据集前15个问题的代码片段,而bigclonebenchdata.zip包含9134个Java代码片段。其他文件如sentenceBCBnoast.zip等用于不同的变体。

This dataset encompasses the data and source code variants utilized in the TBCCD paper. The data.zip file contains code snippets for the first 15 problems of the oj dataset, while bigclonebenchdata.zip includes 9,134 Java code snippets. Other files, such as sentenceBCBnoast.zip, are employed for different variants.
创建时间:
2019-03-14
原始信息汇总

数据集概述

数据集名称

  • datasetforTBCCD

数据集内容

  • data.zip: 包含oj数据集前15个问题的代码片段。
  • bigclonebenchdata.zip: 包含9134个Java代码片段。
  • 六个压缩文件:
    • sentenceBCBnoast.zip
    • sentenceBCBwithid.zip
    • sentencePOJnoast.zip
    • sentencePOJwithid.zip
    • word2vecBCB100noast.zip
    • word2vecPOJ100noast.zip 这些文件用于不同的变体。

数据集变体

  • (bcbpoj)withidfinetune: tbccd+token, 随机初始化token嵌入并随训练调整。
  • (bcbpoj)noastfinetune: tbccd+token-type, 随机初始化token嵌入并随训练调整。
  • (bcbpoj)noastnofinetune: tbccd+token-type, 使用word2vec学习token嵌入,不随训练调整。
  • (bcbpoj)noidfinetune: tbccd, 随机初始化token嵌入并随训练调整。
  • (bcbpoj)newEm: tbccd+token+pace, 使用新方法PACE嵌入token嵌入,不随训练调整。
  • (bcbpoj)compareWithCDLH: tbccd+token, 随机初始化token嵌入并随训练调整,使用500个代码片段作为测试集。

数据集使用方法

  • 直接运行 "python3 bcbnewEm.py" 或 "python pojnewEm.py" 以运行TBCCD+token+PACE。
  • 使用 "python getTrainDevTestDataFileFor(BCBPOJ).py" 获取训练、开发、测试数据文件。
  • 使用 "python getTrainDevTestDataPairFor(BCBPOJ).py" 构建数据对。
  • 使用 "selectPartC.py" 或 "selectPartJava.py" 随机选择部分训练数据集。

数据集额外信息

  • BigCloneBench包含两个.txt文件:function.txt和similarity.txt,其中function.txt包含9134个代码片段,similarity.txt标记了9134*9134个代码片段是否为克隆。
搜集汇总
数据集介绍
main_image_url
构建方式
TBCCD数据集的构建过程基于多个代码片段集合,主要包括OJ数据集的前15个问题的代码片段以及BigCloneBench数据集中的9134个Java代码片段。数据集通过不同的预处理方式生成了多个变体,如sentenceBCBnoast.zip、sentenceBCBwithid.zip等,这些变体分别对应不同的嵌入初始化方式和训练策略。例如,部分变体采用随机初始化的token嵌入并进行微调,而另一些则使用Word2Vec预训练的嵌入且不进行微调。此外,数据集还引入了新的嵌入方法PACE,进一步丰富了其多样性。
特点
TBCCD数据集的特点在于其多样化的代码片段来源和丰富的预处理方式。数据集不仅包含了来自OJ和BigCloneBench的代码片段,还通过不同的嵌入初始化策略和训练方式生成了多个变体。这些变体涵盖了从随机初始化到预训练嵌入的多种选择,为研究代码克隆检测提供了广泛的实验基础。此外,数据集还引入了新的嵌入方法PACE,进一步拓展了其应用场景。BigCloneBench部分还提供了代码片段之间的相似性标签,为克隆检测任务提供了明确的评估标准。
使用方法
TBCCD数据集的使用方法灵活多样,用户可以通过运行提供的Python脚本获取训练、开发和测试数据集。例如,运行“python getTrainDevTestDataFileFor(BCB\POJ).py”可以生成相应的数据文件,而“python getTrainDevTestDataPairFor(BCB\POJ).py”则用于构建数据对。由于训练数据集规模较大,用户还可以使用“selectPartC.py”或“selectPartJava.py”脚本随机选择部分数据进行训练。对于BigCloneBench部分,数据集提供了function.txt和similarity.txt文件,分别包含代码片段及其相似性标签,便于用户进行克隆检测实验。
背景与挑战
背景概述
TBCCD数据集是面向代码克隆检测领域的重要资源,旨在通过提供多样化的代码片段及其变体,支持研究人员在代码相似性分析方面的深入探索。该数据集由北京大学的研究团队于近年创建,主要基于BigCloneBench和OJ(Online Judge)数据集构建,涵盖了9134个Java代码片段以及15个OJ问题的代码片段。TBCCD的核心研究问题在于如何通过不同的嵌入方法和预处理策略,提升代码克隆检测的准确性和效率。该数据集在代码克隆检测领域具有显著影响力,为相关算法的开发和评估提供了坚实的基础。
当前挑战
TBCCD数据集在构建和应用过程中面临多重挑战。首先,代码克隆检测本身具有复杂性,尤其是在处理大规模代码库时,如何准确识别代码片段之间的相似性是一个难题。其次,数据集的构建过程中,研究人员需要处理不同来源的代码片段,并确保其格式和语义的一致性,这对数据预处理提出了较高要求。此外,TBCCD引入了多种嵌入方法和变体,如PACE和Word2Vec,如何有效评估这些方法在不同场景下的性能,也是一个亟待解决的问题。最后,数据集的规模较大,如何在有限的计算资源下高效地进行训练和测试,也是研究人员需要克服的挑战。
常用场景
经典使用场景
TBCCD数据集在代码克隆检测领域具有广泛的应用,特别是在处理大规模Java代码片段时表现出色。该数据集通过提供多种变体,如sentenceBCBnoast.zip和word2vecPOJ100noast.zip,支持不同的代码表示方法,使得研究人员能够灵活地进行实验和比较。经典的使用场景包括利用这些变体进行代码片段的相似性分析,从而检测代码克隆。
衍生相关工作
TBCCD数据集衍生了许多经典的研究工作,特别是在代码克隆检测和代码表示领域。例如,基于该数据集的PACE嵌入方法被广泛应用于其他代码分析任务中。此外,许多研究利用TBCCD数据集进行模型训练和评估,推动了代码克隆检测算法的创新和优化。这些相关工作进一步扩展了TBCCD数据集的应用范围,提升了其在学术界和工业界的影响力。
数据集最近研究
最新研究方向
在代码克隆检测领域,TBCCD数据集的最新研究方向聚焦于通过引入PACE方法优化代码片段的嵌入表示。PACE方法通过独特的嵌入策略,显著提升了代码克隆检测的准确性和效率。此外,数据集还提供了多种变体,如基于word2vec的嵌入初始化、随机初始化并结合训练微调等,为研究者提供了丰富的实验平台。这些变体不仅支持传统的代码克隆检测任务,还为探索代码语义理解、代码片段相似性分析等前沿问题提供了新的视角。TBCCD数据集的广泛应用,推动了代码克隆检测技术的进步,为软件工程领域的自动化工具开发奠定了坚实基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作