首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GitHub发布CodeSearchNet语料库以及挑战赛

GitHub发布了CodeSearchNet语料库以及CodeSearchNet挑战赛,以推动用自然语言搜索程序代码的技术发展。CodeSearchNet语料库是一个庞大的程序代码和自然语言注解数据集,让研究人员可以用来训练机器学习模型,并在CodeSearchNet挑战排行榜上竞争模型的精准度。

搜索程序代码以重复使用、调用或是审查其他人撰写程序代码的方式,是开发者的日常之一,但是目前程序代码搜索引擎的表现,与网页搜索引擎还有一大段距离,程序代码搜索引擎还无法良好地理解用户想要搜索的目标,而GitHub也提到,当他们使用机器学习技术改善程序代码搜索时,发现目前没有标准来衡量改善结果的进展,不像是自然语言处理有GLUE基准,程序代码搜索缺乏标准数据集来评估结果。

因此GitHub与机器学习创业公司Weights & Biases合作,发布了一个大型的数据集,以帮助数据科学家训练模型,也推出CodeSearchNet挑战赛的评估环境与排行榜,同时还附加了几个用来展示目前技术水准的基准模型。

CodeSearchNet发布的语料库,来自GitHub自家平台的开源项目,他们收集大量以Go、Java、JavaScript、PHP、Python和Ruby程序语言撰写的函数数据集,以及其说明文件,官方使用解析器TreeSitter作为基础架构,并发布了数据预处理工作管线,作为其他研究人员在程序代码中应用机器学习的起点。官方提到,虽然这项数据与程序代码搜索没有直接相关,但是可用来训练模型,将程序代码与相关的自然语言描述配对起来。

完整经过预处理的CodeSearchNet语料库,总共包含600万种方法,其中200万是具有文件字符串或JavaDoc等相游说明文件,另外还有指向数据原始位置,像是存储库或是行数的元数据。GitHub将语义程序代码搜索上的进展,发布成一系列基准模型,帮助研究人员开始程序代码搜索研究工作。

而与CodeSearchNet语料库搭配的是CodeSearchNet挑战赛,CodeSearchNet挑战赛的排行榜则使用带有注解的数据集,来评估程序代码搜索工具的品质,为此,GitHub收集了一组初始的程序代码搜索查询集,并由专业人员注解结果与查询的相关性。

GitHub从Bing搜索引擎收集了一般搜索查询具较高点击率的程序代码,并与StaQC(Stack Overflow Question-Code)结合,产生99个针对程序代码相关概念的查询,并使用基准模型从CodeSearchNet语料库为每个查询找出10个可能的结果,最后要求开发者、数据科学家和机器学习研究人员,为这些查询的结果的相关性进行评分。

这些数据集和工具都在GitHub平台上对外开放,而GitHub接下来会继续扩展数据集,包括更多的程序语言、查询以及注解,为下一个CodeSearchNet挑战赛做准备。

脸书在今年7月的时候,也公开了自家自然语言程序代码搜索工具NCS(Neural Code Search),同样使用了GitHub存储库和热门开发者论坛Stack Overflow上的数据,产生用作训练模型的数据集,让用户可以直接搜索“如何隐藏Android屏幕键盘?”这样的问题,而模型会回传相符的程序代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191001A0ICSY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券