数据集:

code_search_net

英文

CodeSearchNet语料库数据卡

数据集摘要

CodeSearchNet语料库是从GitHub上托管的开源库中提取的200万个(注释,代码)对的数据集。它包含多种编程语言的代码和文档。

CodeSearchNet语料库的收集是为了支持 CodeSearchNet challenge 项目,探索使用自然语言进行代码检索的问题。

支持的任务和排行榜

  • 语言建模:可以使用该数据集训练模型来建模编程语言,即构建编程语言的语言模型。

语言

  • 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

数据拆分

提供了三个拆分:

  • train
  • test
  • valid

数据集创建

策展原理

【需要更多信息】

源数据

初始数据收集和标准化

所有信息都可以从 original technical review 中获取

语料库收集:从公开提供的开源非派生GitHub存储库中收集,使用libraries.io识别所有由至少一个其他项目使用的项目,并按照所显示的星级和分叉数量进行排序以确定“流行度”。

然后,删除任何没有许可证或其许可证未明确允许重新分发项目部分的项目。然后使用GitHub的通用解析器Treesitter对所有的Go、Java、JavaScript、Python、PHP和Ruby函数(或方法)进行标记化,并使用启发式的正则表达式标记它们的相应文档文本(如果有)。

语料库过滤:

将没有文档的函数从语料库中删除。这样就得到了一组由($c_i$, $d_i$)表示的函数-文档对,其中$c_i$是一些由$di$文档化的函数。将这些($c_i$,$d_i$)对通过以下预处理任务:

  • 将文档$d_i$截断为第一个完整段落,以删除与函数参数和返回值的深入讨论
  • 删除$d_i$短于三个标记的对
  • 删除其实现短于三行的函数$c_i$
  • 删除名称包含子字符串“test”的函数
  • 删除构造函数和标准扩展方法(例如Python中的__str__或Java中的toString)
  • 删除重复的和相似的函数,只保留一个版本的函数
源语言的生产者是谁?

OpenSource贡献者贡献了代码和文档。

该数据集是自动收集和预处理的。

注释

注释过程

【需要更多信息】

注释者是谁?

【需要更多信息】

个人和敏感信息

【需要更多信息】

使用数据的注意事项

数据的社会影响

【需要更多信息】

偏见讨论

【需要更多信息】

其他已知限制

【需要更多信息】

附加信息

数据集策展人员

【需要更多信息】

授权信息

数据集中的每个示例都是从GitHub存储库中提取的,并且每个存储库都有自己的许可证。此数据集尚未包含逐例的许可证信息:您需要自行找出代码使用的许可证。

引用信息

@article{husain2019codesearchnet, title={{CodeSearchNet} challenge: Evaluating the state of semantic code search}, author={Husain, Hamel and Wu, Ho-Hsiang and Gazit, Tiferet and Allamanis, Miltiadis and Brockschmidt, Marc}, journal={arXiv preprint arXiv:1909.09436}, year={2019}}

贡献

感谢 @SBrandeis 添加了该数据集。