code-search-net/code_search_net
收藏资源简介:
CodeSearchNet corpus是一个包含200万对(注释,代码)的数据集,这些数据来自GitHub上的开源库。数据集支持多种编程语言,包括Go、Java、JavaScript、PHP、Python和Ruby。数据集的主要用途是支持CodeSearchNet挑战,探索使用自然语言进行代码检索的问题。数据集的结构包括代码函数及其文档,以及相关的元数据。数据集分为训练集、测试集和验证集。数据集的创建过程包括从GitHub收集数据、使用Treesitter进行标记化、过滤无文档的函数等步骤。
CodeSearchNet corpus是一个包含200万对(注释,代码)的数据集,这些数据来自GitHub上的开源库。数据集支持多种编程语言,包括Go、Java、JavaScript、PHP、Python和Ruby。数据集的主要用途是支持CodeSearchNet挑战,探索使用自然语言进行代码检索的问题。数据集的结构包括代码函数及其文档,以及相关的元数据。数据集分为训练集、测试集和验证集。数据集的创建过程包括从GitHub收集数据、使用Treesitter进行标记化、过滤无文档的函数等步骤。
CodeSearchNet 数据集概述
数据集描述
基本信息
- 数据集名称: CodeSearchNet
- 数据类型: 代码和文档对
- 语言: 代码(多种编程语言)
- 许可证: 其他
- 多语言性: 多语言
- 数据规模: 10K<n<100K, 100K<n<1M, 1M<n<10M
- 源数据: 原始数据
- 任务类别: 文本生成, 填充掩码
- 任务ID: 语言建模, 掩码语言建模
- PapersWithCode ID: codesearchnet
- 配置名称: all, go, java, javascript, php, python, ruby
数据实例
一个数据点包含函数代码及其文档,以及函数的元数据,如仓库名称等。
数据字段
id: 任意数字repository_name: GitHub仓库名称func_path_in_repository: 仓库中文件的路径func_name: 函数名称whole_func_string: 函数代码 + 文档language: 编程语言func_code_string: 函数代码func_code_tokens: 由Treesitter生成的代码标记func_documentation_string: 函数文档func_documentation_string_tokens: 由Treesitter生成的文档标记split_name: 数据分割名称(train, test, valid)func_code_url: GitHub上函数代码的URL
数据分割
- 训练集:
all: 1880853个样本, 5850604083字节java: 454451个样本, 1429272535字节go: 317832个样本, 738153234字节python: 412178个样本, 1559645310字节javascript: 123889个样本, 480286523字节ruby: 48791个样本, 110681715字节php: 523712个样本, 1532564870字节
- 测试集:
all: 100529个样本, 308626333字节java: 26909个样本, 82377246字节go: 14291个样本, 32286998字节python: 22176个样本, 84342064字节javascript: 6483个样本, 24056972字节ruby: 2279个样本, 5359280字节php: 28391个样本, 80203877字节
- 验证集:
all: 89154个样本, 274564382字节java: 15328个样本, 42358315字节go: 14242个样本, 26888527字节python: 23107个样本, 92154786字节javascript: 8253个样本, 30168242字节ruby: 2209个样本, 4830744字节php: 26015个样本, 78163924字节
数据集大小
- 下载大小: 5117370511字节
- 数据集大小: 6433794798字节
数据集创建
数据收集和规范化
数据集从公开可用的非fork GitHub仓库收集,使用libraries.io识别至少被一个其他项目使用的项目,并按星标和fork数量排序。移除没有明确允许重新分发许可证的项目。使用Treesitter对所有Go、Java、JavaScript、Python、PHP和Ruby函数及其文档进行标记化。
数据过滤
移除没有文档的函数,截断文档到第一个完整段落,移除短于三个标记的文档和短于三行的函数实现,移除名称包含“test”的函数,移除构造函数和标准扩展方法,移除重复和近似重复的函数。
源语言生产者
开源贡献者生成了代码和文档,数据集是自动收集和预处理的。




