遇见数据集

stojchet/csn_filtered_subset

收藏
Hugging Face2024-06-02 更新2024-06-12 收录
官方服务:

资源简介:

--- dataset_info: - config_name: go features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 877763487.7648174 num_examples: 282184 - name: validation num_bytes: 39170182.18101263 num_examples: 12719 - name: test num_bytes: 34052630.992171414 num_examples: 11092 download_size: 210439217 dataset_size: 950986300.9380014 - config_name: java features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 1131253062.4569702 num_examples: 363676 - name: validation num_bytes: 38123098.138120554 num_examples: 12379 - name: test num_bytes: 66732964.28748918 num_examples: 21737 download_size: 356500962 dataset_size: 1236109124.88258 - config_name: javascript features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 292440593.8633003 num_examples: 94014 - name: validation num_bytes: 18410201.201202415 num_examples: 5978 - name: test num_bytes: 15181235.147519622 num_examples: 4945 download_size: 140053671 dataset_size: 326032030.21202236 - config_name: php features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 1188463343.9292386 num_examples: 382068 - name: validation num_bytes: 56548697.63407138 num_examples: 18362 - name: test num_bytes: 61572265.34249818 num_examples: 20056 download_size: 390937771 dataset_size: 1306584306.905808 - config_name: python features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 1093813798.2225087 num_examples: 351640 - name: validation num_bytes: 61670170.4673935 num_examples: 20025 - name: test num_bytes: 57998765.299684666 num_examples: 18892 download_size: 536239180 dataset_size: 1213482733.9895868 - config_name: ruby features: - name: repository_name dtype: string - name: func_path_in_repository dtype: string - name: func_name dtype: string - name: whole_func_string dtype: string - name: language dtype: string - name: func_code_string dtype: string - name: func_code_tokens sequence: string - name: func_documentation_string dtype: string - name: func_documentation_tokens sequence: string - name: split_name dtype: string - name: func_code_url dtype: string splits: - name: train num_bytes: 131009429.35882549 num_examples: 42117 - name: validation num_bytes: 5820555.414900061 num_examples: 1890 - name: test num_bytes: 5679531.854987118 num_examples: 1850 download_size: 37336246 dataset_size: 142509516.62871265 configs: - config_name: go data_files: - split: train path: go/train-* - split: validation path: go/validation-* - split: test path: go/test-* - config_name: java data_files: - split: train path: java/train-* - split: validation path: java/validation-* - split: test path: java/test-* - config_name: javascript data_files: - split: train path: javascript/train-* - split: validation path: javascript/validation-* - split: test path: javascript/test-* - config_name: php data_files: - split: train path: php/train-* - split: validation path: php/validation-* - split: test path: php/test-* - config_name: python data_files: - split: train path: python/train-* - split: validation path: python/validation-* - split: test path: python/test-* - config_name: ruby data_files: - split: train path: ruby/train-* - split: validation path: ruby/validation-* - split: test path: ruby/test-* ---

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

数据集概述

数据集配置及特征

  1. Go 语言数据集

    • 特征:
      • repository_name: 字符串
      • func_path_in_repository: 字符串
      • func_name: 字符串
      • whole_func_string: 字符串
      • language: 字符串
      • func_code_string: 字符串
      • func_code_tokens: 序列,字符串
      • func_documentation_string: 字符串
      • func_documentation_tokens: 序列,字符串
      • split_name: 字符串
      • func_code_url: 字符串
    • 分割:
      • 训练集: 282184 个示例,877763487.7648174 字节
      • 验证集: 12719 个示例,39170182.18101263 字节
      • 测试集: 11092 个示例,34052630.992171414 字节
    • 下载大小: 210439217 字节
    • 数据集大小: 950986300.9380014 字节
  2. Java 语言数据集

    • 特征: 同上
    • 分割:
      • 训练集: 363676 个示例,1131253062.4569702 字节
      • 验证集: 12379 个示例,38123098.138120554 字节
      • 测试集: 21737 个示例,66732964.28748918 字节
    • 下载大小: 356500962 字节
    • 数据集大小: 1236109124.88258 字节
  3. JavaScript 语言数据集

    • 特征: 同上
    • 分割:
      • 训练集: 94014 个示例,292440593.8633003 字节
      • 验证集: 5978 个示例,18410201.201202415 字节
      • 测试集: 4945 个示例,15181235.147519622 字节
    • 下载大小: 140053671 字节
    • 数据集大小: 326032030.21202236 字节
  4. PHP 语言数据集

    • 特征: 同上
    • 分割:
      • 训练集: 382068 个示例,1188463343.9292386 字节
      • 验证集: 18362 个示例,56548697.63407138 字节
      • 测试集: 20056 个示例,61572265.34249818 字节
    • 下载大小: 390937771 字节
    • 数据集大小: 1306584306.905808 字节
  5. Python 语言数据集

    • 特征: 同上
    • 分割:
      • 训练集: 351640 个示例,1093813798.2225087 字节
      • 验证集: 20025 个示例,61670170.4673935 字节
      • 测试集: 18892 个示例,57998765.299684666 字节
    • 下载大小: 536239180 字节
    • 数据集大小: 1213482733.9895868 字节
  6. Ruby 语言数据集

    • 特征: 同上
    • 分割:
      • 训练集: 42117 个示例,131009429.35882549 字节
      • 验证集: 1890 个示例,5820555.414900061 字节
      • 测试集: 1850 个示例,5679531.854987118 字节
    • 下载大小: 37336246 字节
    • 数据集大小: 142509516.62871265 字节

数据文件路径

  • Go:

    • 训练集: go/train-*
    • 验证集: go/validation-*
    • 测试集: go/test-*
  • Java:

    • 训练集: java/train-*
    • 验证集: java/validation-*
    • 测试集: java/test-*
  • JavaScript:

    • 训练集: javascript/train-*
    • 验证集: javascript/validation-*
    • 测试集: javascript/test-*
  • PHP:

    • 训练集: php/train-*
    • 验证集: php/validation-*
    • 测试集: php/test-*
  • Python:

    • 训练集: python/train-*
    • 验证集: python/validation-*
    • 测试集: python/test-*
  • Ruby:

    • 训练集: ruby/train-*
    • 验证集: ruby/validation-*
    • 测试集: ruby/test-*
搜集汇总
数据集介绍
stojchet/csn_filtered_subset 数据集图片
构建方式
在代码智能与程序语言处理领域,高质量的函数级语料库是支撑诸多下游任务的基础。stojchet/csn_filtered_subset 数据集源自著名的 CodeSearchNet 语料库,经过精细的筛选与清洗流程构建而成。该数据集涵盖了 Go、Java、JavaScript、PHP、Python 与 Ruby 六种主流编程语言,每条样本均包含函数名称、完整的函数代码字符串、对应的文档注释字符串,以及经分词处理的代码与文档 token 序列。此外,数据还保留了函数所属的仓库名称、在仓库中的路径以及代码来源 URL 等元信息,便于溯源与复现。数据集已按标准划分为训练、验证与测试三个子集,其中训练集样本量从 Ruby 的约 4.2 万条到 PHP 的约 38.2 万条不等,整体规模庞大且分布均衡,为多语言代码理解研究提供了坚实的资源保障。
特点
该数据集的核心特色在于其多语言覆盖与结构化信息的高度完整性。不同于仅提供原始代码的语料库,stojchet/csn_filtered_subset 同时存储了函数的代码与文档注释,且两者的 token 化版本也已预先计算,极大降低了研究者进行文本预处理的门槛。每个函数实例都关联了明确的语言标签,便于开展跨语言对比实验。数据集的规模经过精心平衡,各语言子集均具备足够数量的训练样本,能够支撑深度学习模型的充分训练。同时,验证与测试集的设置遵循严格的划分标准,确保了模型评估的公平性与可重复性。这些特性使得该数据集特别适用于代码搜索、代码摘要生成、函数命名预测以及多语言代码表征学习等任务。
使用方法
使用该数据集时,研究者可通过 Hugging Face Datasets 库便捷加载。以 Python 为例,执行 `load_dataset("stojchet/csn_filtered_subset", "python")` 即可获取 Python 语言子集,返回一个包含 train、validation 和 test 三个分片的 DatasetDict 对象。每个样本可像字典一样访问其键值,例如 `sample["func_code_string"]` 提取函数代码,`sample["func_documentation_string"]` 获取对应的文档注释。对于需要 token 级别输入的任务,可直接使用预计算好的 `func_code_tokens` 与 `func_documentation_tokens` 字段。研究者亦可指定其他语言配置名(如 "java"、"javascript")加载相应子集,进行单语言或多语言的联合实验。数据集的简洁接口设计使其能够无缝集成到现有的深度学习工作流中。
背景与挑战
背景概述
在代码智能领域,函数级代码与自然语言文档的跨模态对齐是支撑代码检索、自动摘要与注释生成等任务的核心基础。stojchet/csn_filtered_subset数据集源自经典的CodeSearchNet项目,由多位研究人员在2019年至2020年间构建,旨在为多种编程语言提供高质量的代码-文档配对样本。该数据集覆盖Go、Java、JavaScript、PHP、Python与Ruby六种语言,通过筛选GitHub上公开仓库中的函数定义及其配套注释,构建出结构化的训练、验证与测试划分。其核心研究问题在于如何利用大规模、多语言的函数代码与文档字符串对,训练模型理解代码语义与自然语言描述之间的映射关系。该数据集的出现显著推动了跨语言代码理解与检索任务的发展,成为后续多项基准评测与预训练模型(如CodeBERT、GraphCodeBERT)验证效果的重要参照。
当前挑战
该数据集面临的挑战首先体现在领域问题的复杂性上:不同编程语言语法风格各异,函数注释质量参差不齐,部分文档字符串可能缺失、过时或与代码逻辑不符,使得模型难以学习到鲁棒的语义对齐。此外,构建过程中需处理海量仓库的爬取与解析,过滤掉无注释或注释与代码不匹配的样本,确保数据质量。各语言间样本数量极不均衡,如Ruby仅约4.6万条训练样本,而Java、Python等超过35万条,这种分布差异可能导致模型在多语言场景下泛化能力不足。同时,函数内嵌的代码片段可能包含依赖外部上下文的标识符或类型信息,仅凭函数体与文档难以完整捕捉其真实意图,给后续的代码理解与生成任务带来额外难度。
常用场景
经典使用场景
在代码智能与软件工程领域,stojchet/csn_filtered_subset 数据集作为 CodeSearchNet 的精选子集,被广泛用于跨语言代码检索与语义匹配任务。研究者借助其精心标注的函数代码与文档字符串对,训练模型在 Go、Java、JavaScript、PHP、Python 和 Ruby 六种编程语言中,根据自然语言查询精准定位相关代码片段。该数据集特别适用于评估和提升神经检索模型在异构语言环境下的泛化能力,成为代码-文本跨模态学习研究的基准测试平台。
解决学术问题
该数据集有效解决了代码语义表示学习中的两大核心问题:一是缺乏大规模、多语言、高质量的函数级代码-文档对齐语料,二是现有数据集存在噪声过重或标注不一致的缺陷。通过提供经过过滤和标准化的函数代码与文档字符串对,它为无监督语义嵌入、对比学习以及预训练语言模型在代码理解上的应用提供了可靠的训练与评估基础。这一资源显著推动了代码检索、代码摘要生成和代码分类等学术研究方向的发展。
衍生相关工作
基于该数据集衍生了一系列经典工作,如使用对比学习框架的 CodeBERT 和 GraphCodeBERT 在代码检索任务中取得突破,以及 UniXcoder 通过跨模态预训练统一代码理解与生成。此外,针对多语言场景的 CodeRetriever 和 CoCoSoDa 等模型也以此数据集为基石,探索了更有效的代码-文本对齐策略。这些工作共同推动了代码智能领域从单一语言向多语言、从检索向生成的全方位演进。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务