five

Neural Code Search Evaluation Dataset

收藏
arXiv2019-10-02 更新2024-07-30 收录
下载链接:
https://github.com/facebookresearch/Neural-Code-Search-Evaluation-Dataset
下载链接
链接失效反馈
官方服务:
资源简介:
本数据集名为‘Neural Code Search Evaluation Dataset’,由Facebook, Inc. 美国创建,旨在为代码搜索模型提供一个评估基准。数据集包含287对来自Stack Overflow的问答,每对都包含一个自然语言查询和一个相关的代码片段答案。数据集的创建过程涉及从GitHub公共仓库中提取代码片段,并使用Stack Exchange的数据转储来筛选问题。该数据集主要用于评估不同代码搜索模型的性能,特别是在解决开发者在编程过程中遇到的具体问题。

This dataset, named "Neural Code Search Evaluation Dataset", was created by Facebook, Inc. of the United States. It is designed to serve as an evaluation benchmark for code search models. The dataset contains 287 question-answer pairs sourced from Stack Overflow, where each pair includes a natural language query and a relevant code snippet answer. The dataset was constructed by extracting code snippets from public GitHub repositories and filtering questions using Stack Exchange data dumps. This dataset is primarily used to evaluate the performance of various code search models, especially for solving specific problems encountered by developers during their programming workflows.
提供机构:
Facebook, Inc. 美国
创建时间:
2019-08-27
原始信息汇总

Neural-Code-Search-Evaluation-Dataset 数据集概述

数据集内容

GitHub 仓库

  • 来源: 最受欢迎的 Android 仓库(按星标数量排名)。
  • 数量: 共 24,549 个仓库。
  • 文件: data/android_repositories_download_links.txt 包含下载链接。
  • 下载脚本: download.py 用于下载这些仓库。

搜索语料库

  • 来源: 从 24,549 个 GitHub 仓库解析的方法体。
  • 数量: 共 4,716,814 个方法。
  • 文件: data/search_corpus_1.tar.gzdata/search_corpus_2.tar.gz
  • 内容:
    • id: 方法的唯一标识符。
    • filepath: 文件路径,格式为 :owner/:repo/relative-file-path-to-the-repo
    • method_name: 方法名。
    • start_line: 方法的起始行号。
    • end_line: 方法的结束行号。
    • url: GitHub 链接,包含提交ID和行号。

评估数据集

  • 来源: 287 个 Stack Overflow 问题和答案对。
  • 文件: data/287_android_questions.json
  • 内容:
    • stackoverflow_id: Stack Overflow 帖子ID。
    • question: 帖子标题。
    • question_url: 帖子URL。
    • answer: 问题的代码片段答案。

NCS / UNIF 评分表

  • 模型:
    • NCS: 无监督模型,使用直接从搜索语料库派生的词嵌入。
    • NCS<sub>postrank</sub>: NCS 模型的扩展,执行后通过排序。
    • UNIF<sub>android</sub>, UNIF<sub>stackoverflow</sub>: 使用基于词袋的神经网络和注意力的监督扩展。
  • 文件: data/score_sheet.csv
  • 内容: 每个问题的第一个正确答案的排名(FRank)。

许可证

  • 类型: CC-BY-NC 4.0(署名-非商业性使用)。
搜集汇总
数据集介绍
main_image_url
构建方式
在自然语言与代码片段映射研究日益兴盛的背景下,Neural Code Search Evaluation Dataset应运而生。该数据集从Stack Overflow社区精心筛选出287个高质量问答对,每个问题均附带一个被广泛认可的代码答案。构建过程首先通过启发式过滤流水线,从带有“Android”和“Java”标签的17000个热门问题中剔除开放式讨论,进而利用代码相似度工具Aroma确保答案在搜索语料库中存在匹配。搜索语料库则源自GitHub上最受欢迎的24549个Android仓库,解析出超过470万个方法体,为模型检索提供了丰富的代码空间。
特点
该数据集的核心亮点在于其严谨的评估框架与多维度信息。每个问答对不仅包含Stack Overflow的原始问题、答案及作者信息,还提供了三个来自搜索语料库的最佳匹配代码示例及其GitHub链接,使得评估不再局限于单一答案。此外,数据集附带了NCS、NCSpostrank、UNIFandroid和UNIFstackoverflow四种模型的基准评分表,以首次命中排名(FRank)为指标,为后续研究提供了可复现的比较基线。这种设计既模拟了真实开发者的查询场景,又通过自动化相似度工具避免了人工评判的主观偏差。
使用方法
研究人员可直接利用该数据集作为通用基准,评估基于自然语言的代码检索模型。使用时,模型需针对每个自然语言查询,从搜索语料库的470万个方法体中检索出最相关的代码片段。评估指标可选用首次正确答案排名(FRank)或平均倒数排名(MRR),其中FRank通过Aroma工具计算返回结果与Stack Overflow标准答案的结构相似度(阈值0.25)来判定正确性。数据集以JSON格式提供查询、答案及示例ID,便于快速加载与集成,同时附带的CSV评分表可立即用于对比现有模型性能。
背景与挑战
背景概述
随着自然语言处理与软件工程领域的交叉融合,利用自然语言查询检索代码片段已成为研究热点。然而,缺乏统一且高质量的评估基准使得不同代码搜索模型的性能比较变得困难。为此,Facebook的研究人员Hongyu Li、Seohyun Kim与Satish Chandra于2019年构建了Neural Code Search Evaluation Dataset。该数据集基于Stack Overflow上的287个自然语言查询与代码答案对,并结合GitHub上24,549个热门Android仓库中的4,716,814个方法体作为搜索语料库,旨在为神经代码搜索模型提供一个标准化的评估平台。通过提供NCS、NCSpostrank、UNIFandroid和UNIFstackoverflow等模型的基准结果,该数据集有效推动了代码检索领域的可复现研究,成为后续工作的重要参照。
当前挑战
该数据集面临的核心挑战包括:其一,领域问题层面,自然语言查询与代码片段之间存在语义鸿沟,同一功能可用多种编程范式实现,模型需在庞大语料库中精准匹配语义等价代码,而现有模型在Top-1准确率上仍显不足(如NCS仅33个查询命中);其二,构建过程中,从Stack Overflow过滤出非开放性、有明确代码答案的问题需依赖启发式规则,且人工筛选287个最终样本耗时且易引入主观偏差;此外,利用Aroma工具自动评估代码相似性时,阈值的设定难以完全模拟人工判断,可能导致误标或漏标正确结果,影响基准的可靠性。
常用场景
经典使用场景
在代码搜索领域,自然语言查询与代码片段之间的语义映射一直是研究的热点。Neural Code Search Evaluation Dataset 作为一个精心构建的基准测试集,其经典使用场景在于评估基于自然语言的代码检索模型的性能。该数据集包含287对来自Stack Overflow的高质量问答对,以及从GitHub上最受欢迎的Android仓库中提取的超过470万个方法体作为搜索语料库。研究者可借此模拟开发者日常的代码搜索行为,通过查询与语料库的匹配,衡量模型返回结果的相关性与准确性,从而在统一框架下对比不同方法的优劣。
衍生相关工作
该数据集催生了一系列具有影响力的衍生工作。论文中提供的NCS与UNIF模型作为基准,后续研究者在此基础上提出了多种改进方案,例如结合注意力机制的深度神经网络、利用预训练语言模型(如CodeBERT)进行查询-代码联合编码的方法。此外,该数据集的构建范式被扩展至其他编程语言与领域,如Python和JavaScript的代码搜索基准。Aroma代码相似度工具亦成为评估代码语义一致性的常用标准,被广泛应用于代码克隆检测、代码翻译等任务中。这些衍生工作不仅深化了对代码语义理解的研究,也促进了软件工程与自然语言处理领域的交叉融合。
数据集最近研究
最新研究方向
在自然语言驱动的代码检索领域,Neural Code Search Evaluation Dataset的提出为模型评估提供了标准化基准。该数据集基于Stack Overflow的287个问答对与GitHub上超过4,700个方法级代码片段构建,聚焦于Android与Java生态中的真实开发场景。前沿研究围绕其展开,重点关注如何通过无监督词嵌入与有监督注意力网络(如NCS与UNIF模型)提升查询与代码片段的语义匹配精度。与之关联的热点事件包括深度学习在软件工程中的渗透以及自动化代码补全工具(如GitHub Copilot)的兴起,这些进展使得该数据集成为衡量检索模型鲁棒性与实用性的关键标尺。其影响在于推动了从传统信息检索向神经代码搜索的范式转换,为后续研究提供了可复现的评估框架,并促进了跨模型性能的透明对比,对提升开发者生产力具有深远意义。
相关研究论文
  • 1
    Neural Code Search Evaluation DatasetFacebook, Inc. 美国 · 2019年
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务