CodeQueries:一个面向代码语义查询的数据集
软件工程
2023-07-17 v2 计算与语言
摘要
开发者经常对其正在处理的代码的语义方面存在疑问,例如“是否存在一个父类声明了冲突属性的类?”。回答这些问题需要理解代码语义,如类的属性与继承关系。此类问题的答案应识别出构成答案的代码片段(例如子类的声明)以及支撑事实(例如冲突属性的定义)。现有关于代码问答的工作考虑了是/否问题或方法级上下文。我们贡献了一个称为 CodeQueries 的带标注 Python 代码语义查询数据集。与现有数据集相比,CodeQueries 中的查询涉及代码语义,上下文为文件级,答案为代码片段。我们基于广泛使用的静态分析工具 CodeQL 所支持的查询来策划该数据集,并包含正例与负例,以及需要单跳与多跳推理的查询。为评估数据集的价值,我们评估了基线神经方法。我们在一个 CodeQueries 子集上研究了大语言模型(GPT3.5-Turbo)的零样本与少样本设置。我们还评估了微调后的 BERT 风格模型(CuBERT)。我们发现这些模型在 CodeQueries 上仅取得有限成功。因此,CodeQueries 是一个用于测试神经模型在抽取式问答设置下理解代码语义能力的具有挑战性的数据集。
引用
@article{arxiv.2209.08372,
title = {CodeQueries: A Dataset of Semantic Queries over Code},
author = {Surya Prakash Sahu and Madhurima Mandal and Shikhar Bharadwaj and Aditya Kanade and Petros Maniatis and Shirish Shevade},
journal= {arXiv preprint arXiv:2209.08372},
year = {2023}
}