great
收藏github2024-01-05 更新2024-05-31 收录
下载链接:
https://github.com/google-research-datasets/great
下载链接
链接失效反馈官方服务:
资源简介:
该数据集是为variable-misuse任务设计的,用于ICLR 2020论文Global Relational Models of Source Code。数据集通过合成方式从ETH Py150 Open数据集中生成,包含训练、验证和评估三个部分,每个部分都存储在分片的文本文件中。每个示例包含源代码令牌、是否存在bug、错误位置、修复候选等信息。
This dataset is designed for the variable-misuse task, as featured in the ICLR 2020 paper titled 'Global Relational Models of Source Code'. It is synthetically generated from the ETH Py150 Open dataset and includes training, validation, and evaluation sections, each stored in sharded text files. Each example contains source code tokens, the presence of bugs, error locations, and repair candidates, among other information.
创建时间:
2020-07-09
原始信息汇总
数据集概述
数据集来源
- 本数据集是基于ETH Py150 Open数据集[https://github.com/google-research-datasets/eth_py150_open]生成的合成数据集。
数据集结构
- 数据集分为三个部分:训练集
train、验证集dev和测试集eval。 - 每个部分的数据存储在分片的文本文件中,文件名为
<split>__VARIABLE_MISUSE__SStuB.txt-<shard number>-of-<number of shards>。
数据集内容
- 每个数据文件的每一行包含一个JSON编码的示例。
- 每个示例包含以下字段:
source_tokens: 原始代码的令牌列表。has_bug: 布尔值,指示是否引入了合成错误。error_location: 错误引入的令牌索引。repair_candidates: 修复候选令牌列表。bug_kind: 错误类型,本数据集中始终为1。bug_kind_name: 错误类型的文本名称,本数据集中始终为"VARIABLE_MISUSE"。repair_targets: 正确的修复令牌列表。edges: 图边缘信息,包括控制流和数据流。provenances: 示例来源的JSON描述,包括许可证信息和源代码路径。
许可证信息
- 每个示例根据其来源的GitHub仓库和项目的许可证发布,具体许可证信息记录在
license字段中。
使用注意事项
- 由于数据集包含不同的许可证,使用时需注意遵守相应的许可证条款。
搜集汇总
数据集介绍

构建方式
GREAT数据集是为变量误用任务而构建的,其基础数据来源于ETH Py150 Open数据集中的Python代码。该数据集通过合成方式生成,具体方法是在原始代码中引入人工合成的错误,并记录错误的位置、修复候选以及修复目标等信息。数据集被划分为训练集、验证集和测试集,每个部分均以分片文本文件的形式存储,确保单个文件大小不超过GitHub的100MB限制。每个分片文件中的每一行均为JSON格式的示例,包含代码的标记化表示、错误信息以及数据流和控制流等边缘信息。
特点
GREAT数据集的特点在于其专注于变量误用这一特定类型的代码错误,并通过合成错误的方式提供了丰富的修复信息。每个示例不仅包含原始代码的标记化表示,还详细记录了错误的位置、修复候选以及修复目标。此外,数据集还提供了代码的控制流和数据流信息,以帮助理解代码的执行逻辑。所有示例均附带其来源的许可证信息,确保数据使用的合规性。数据集的结构清晰,分片存储的方式便于高效处理大规模数据。
使用方法
使用GREAT数据集时,用户可以通过读取分片文本文件中的每一行,并将其解码为JSON格式来获取单个示例。每个示例包含代码的标记化表示、错误信息以及修复候选等字段,用户可以根据这些信息进行变量误用检测和修复任务。数据集的控制流和数据流信息可用于进一步分析代码的执行逻辑。由于每个示例附带其来源的许可证信息,用户在使用时需注意遵守相应的许可条款。示例代码和详细的使用说明可在关联的GitHub仓库中找到,便于用户快速上手。
背景与挑战
背景概述
GREAT数据集诞生于2020年,由ICLR会议论文《Global Relational Models of Source Code》的研究团队创建,旨在解决源代码中的变量误用问题。该数据集基于ETH Py150 Open数据集中的Python代码库,通过合成方式生成,包含了训练、验证和测试三个子集。每个子集以分片文本文件的形式存储,每行包含一个JSON编码的示例,涵盖了源代码的令牌、错误位置、修复候选等信息。该数据集的发布为源代码分析领域提供了重要的实验数据,推动了代码缺陷检测与修复技术的发展。
当前挑战
GREAT数据集在构建与应用过程中面临多重挑战。首先,变量误用问题的复杂性要求数据集能够准确模拟真实场景中的代码错误,这对合成数据的生成提出了高要求。其次,由于原始数据集涉及多种开源许可证,GREAT数据集在公开时不得不处理复杂的版权问题,导致部分数据无法开源。此外,数据集的规模与结构设计需兼顾GitHub对单个文件大小的限制,这增加了数据存储与管理的难度。最后,数据集中包含的多种边缘类型(如控制流、数据流等)为模型的训练与评估带来了额外的复杂性,要求研究者具备深入理解代码结构与语义的能力。
常用场景
经典使用场景
在源代码分析领域,great数据集被广泛应用于变量误用任务的模型训练与评估。通过提供包含Python函数代码的示例,数据集支持研究者构建和测试全局关系模型,以识别和修复代码中的变量误用问题。其分片存储结构和详细的元数据信息使得大规模数据处理变得高效且便捷。
实际应用
在实际应用中,great数据集被用于开发智能代码审查工具和自动化代码修复系统。通过训练模型识别变量误用问题,开发者能够显著提升代码质量和开发效率。数据集中的控制流和数据流信息进一步增强了模型对代码语义的理解能力,为实际工程场景中的代码优化提供了有力支持。
衍生相关工作
基于great数据集,研究者们提出了多种改进的源代码分析模型和方法。例如,结合图神经网络和注意力机制的模型在变量误用检测任务中取得了显著进展。此外,数据集还被用于探索代码表示学习和跨语言代码分析等前沿研究方向,推动了源代码分析领域的创新与发展。
以上内容由遇见数据集搜集并总结生成



