遇见数据集

susnato/go_PRs

收藏
Hugging Face2024-01-12 更新2024-03-04 收录
官方服务:

资源简介:

--- dataset_info: features: - name: repo_name dtype: string - name: pr_number dtype: int64 - name: pr_title dtype: string - name: pr_description dtype: string - name: author dtype: string - name: date_created dtype: timestamp[ns, tz=UTC] - name: date_merged dtype: timestamp[ns, tz=UTC] - name: previous_commit dtype: string - name: pr_commit dtype: string - name: query dtype: string - name: filepath dtype: string - name: before_content dtype: string - name: after_content dtype: string - name: label dtype: int64 splits: - name: train num_bytes: 23175811193 num_examples: 434774 download_size: 12420800789 dataset_size: 23175811193 configs: - config_name: default data_files: - split: train path: data/train-* ---

数据集信息: 特征字段: - 字段名:仓库名称(repo_name),数据类型:string - 字段名:拉取请求(Pull Request,PR)编号(pr_number),数据类型:int64 - 字段名:拉取请求(Pull Request,PR)标题(pr_title),数据类型:string - 字段名:拉取请求(Pull Request,PR)描述(pr_description),数据类型:string - 字段名:作者(author),数据类型:string - 字段名:创建时间戳(date_created),数据类型:timestamp[ns, tz=UTC] - 字段名:合并时间戳(date_merged),数据类型:timestamp[ns, tz=UTC] - 字段名:前序提交标识(previous_commit),数据类型:string - 字段名:PR提交标识(pr_commit),数据类型:string - 字段名:查询词(query),数据类型:string - 字段名:文件路径(filepath),数据类型:string - 字段名:修改前内容(before_content),数据类型:string - 字段名:修改后内容(after_content),数据类型:string - 字段名:标签(label),数据类型:int64 数据集划分: - 划分名称:训练集(train),字节占用量:23175811193,样本总数:434774 下载大小:12420800789 数据集总大小:23175811193 配置项: - 配置名称:默认配置(default),数据文件: - 划分名称:训练集(train),数据路径:data/train-*

提供机构:
susnato
原始信息汇总

数据集信息

特征

  • repo_name: 字符串类型
  • pr_number: 64位整数类型
  • pr_title: 字符串类型
  • pr_description: 字符串类型
  • author: 字符串类型
  • date_created: 时间戳类型,UTC时区
  • date_merged: 时间戳类型,UTC时区
  • previous_commit: 字符串类型
  • pr_commit: 字符串类型
  • query: 字符串类型
  • filepath: 字符串类型
  • before_content: 字符串类型
  • after_content: 字符串类型
  • label: 64位整数类型

数据分割

  • train:
    • 字节数: 23175811193
    • 样本数: 434774

数据集大小

  • 下载大小: 12420800789 字节
  • 数据集大小: 23175811193 字节

配置

  • config_name: default
    • data_files:
      • split: train
      • path: data/train-*
搜集汇总
数据集介绍
构建方式
在软件工程与代码审查领域,Pull Request(PR)是协作开发的核心环节,承载着代码变更的讨论与迭代。该数据集susnato/go_PRs源自开源生态中活跃的Go语言项目,通过系统化采集GitHub平台上的PR元数据与代码变更内容构建而成。具体而言,数据集收录了434,774条训练样本,每条样本包含仓库名称、PR编号、标题与描述、作者信息、创建与合并时间戳、前后提交哈希、查询语句、文件路径,以及变更前后的代码片段(before_content与after_content),并附带一个二分类标签(label)以指示变更类型。数据以parquet格式存储,总规模约23.2GB,确保了对大规模代码变更模式分析的支撑能力。
特点
该数据集最显著的特点在于其细粒度的结构设计,将PR的文本描述与代码级变更内容深度融合,为理解代码审查中的语义演变提供了独特视角。每条样本不仅记录了PR的上下文信息(如标题、描述),还精确捕获了单个文件在提交前后的具体代码差异,这区别于仅关注元数据的传统PR数据集。此外,标签字段的存在使得该数据适用于监督学习任务,例如代码变更分类或缺陷预测。时间戳信息(date_created与date_merged)进一步支持时序分析,可追溯PR从提出到合并的完整生命周期,而作者字段则保留了协作网络的个体特征,为研究开发者行为模式提供了可能。
使用方法
该数据集适用于多种自然语言处理与软件工程交叉的研究场景。用户可通过HuggingFace的datasets库直接加载,利用其内置的split划分(默认为训练集)快速获取结构化数据。对于文本分析任务,可将pr_title与pr_description拼接作为输入,结合before_content与after_content构建代码变更的语义表示。在模型训练中,label字段可作为分类目标,例如预测PR是否引入缺陷或需进一步审查。同时,date_created与date_merged可用于构造时间序列特征,分析PR合并效率的影响因素。由于数据以parquet格式存储,支持高效的列式读取,适合在分布式计算环境中进行大规模批量处理。
背景与挑战
背景概述
在软件工程与自然语言处理的交叉领域中,代码审查与合并请求(Pull Request, PR)是协作开发流程的核心环节。该数据集由研究者susnato于近期创建,旨在系统性地捕获Go语言生态中PR的演化轨迹。其核心研究问题聚焦于如何利用历史提交与代码变更的上下文信息,自动化理解PR的意图与质量。通过收录超过43万条训练样本,每条包含仓库名称、PR编号、标题、描述、作者、时间戳、前后代码内容及人工标注标签,该数据集为代码理解、变更摘要生成及自动化审查提供了大规模结构化资源。其影响力体现在填补了Go语言领域高质量PR数据集的空白,推动了代码智能与软件仓库挖掘研究的发展。
当前挑战
当前数据集面临多重挑战。首先,在领域问题层面,代码变更的语义理解极具难度:同一功能修改可能对应多种实现方式,而PR描述与代码变更之间的关联往往隐含复杂逻辑,现有模型难以精准捕捉;此外,跨仓库的代码风格差异与项目特定约定进一步增加了泛化学习的困难。其次,在构建过程中,数据平衡性是一大挑战——不同标签类别的样本数量可能存在显著不均,影响模型训练效果;同时,来自GitHub的原始数据包含噪声,如不规范的PR描述、缺失的上下文代码片段,需耗费大量精力进行清洗与对齐,确保时间戳与提交历史的精确匹配。
常用场景
经典使用场景
在软件工程与自然语言处理交叉领域,susnato/go_PRs数据集被广泛用于代码变更理解与生成任务。该数据集汇聚了来自GitHub上Go语言项目的海量Pull Request(PR)记录,包含PR标题、描述、变更前后的代码片段以及人工标注的标签。研究者常将其作为基准,训练模型自动理解代码变更意图、生成摘要或预测变更类型,显著推动了代码智能领域的发展。
解决学术问题
该数据集主要解决了代码变更自动化理解这一学术难题。传统上,代码审查依赖人工解析PR描述与差异,耗时且易出错。通过提供结构化的PR元数据与代码上下文,susnato/go_PRs使研究者能够探索代码变更的语义表示、变更分类(如修复、重构、新增功能)以及自然语言与代码的跨模态对齐,为自动化代码审查与智能编程助手奠定了数据基础。
衍生相关工作
围绕susnato/go_PRs数据集,衍生出多项经典工作。例如,有研究利用其训练代码变更嵌入模型,实现相似PR检索;也有工作基于该数据提出代码变更摘要生成框架,采用编码器-解码器架构融合代码差异与文本描述。此外,该数据集被用于评估大语言模型在代码理解任务上的表现,催生了针对代码变更的预训练模型改进方向。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务