neulab/conala
收藏Hugging Face2022-10-20 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/neulab/conala
下载链接
链接失效反馈官方服务:
资源简介:
CoNaLa数据集是一个用于代码生成任务评估的基准数据集,包含代码和自然语言对。数据集从Stack Overflow爬取,经过自动过滤和人工标注,分为2,379个训练样本和500个测试样本。此外,还提供了一个自动挖掘的数据集,包含近60万个样本。数据集主要用于评估代码生成任务,语言为英语和Python代码。数据集结构包括两个版本:经过人工标注的版本和自动挖掘的版本,分别包含不同的字段和分割。
The CoNaLa dataset is a benchmark dataset for code generation task evaluation, comprising paired natural language and code data. It is crawled from Stack Overflow, followed by automatic filtering and manual annotation, and is split into 2,379 training samples and 500 test samples. Additionally, an automatically mined dataset containing nearly 600,000 samples is also provided. This dataset is primarily used for evaluating code generation tasks, with content consisting of English natural language and Python code. The dataset includes two versions: the manually annotated version and the automatically mined version, which feature distinct fields and data splits respectively.
提供机构:
neulab
原始信息汇总
数据集概述
名称: CoNaLa 类型: 代码与自然语言对数据集 目的: 用于评估代码生成任务 来源: 从Stack Overflow爬取并经过自动过滤和人工标注 数据量:
- 人工标注集: 训练集2,379条,测试集500条
- 自动挖掘集: 约593,891条
数据集结构
-
人工标注集:
- 特征: [question_id, intent, rewritten_intent, snippet]
- 训练集: 2,379条
- 测试集: 500条
-
自动挖掘集:
- 特征: [question_id, parent_answer_post_id, prob, snippet, intent, id]
- 训练集: 593,891条
数据实例
-
人工标注集:
{ question_id: 41067960, intent: How to convert a list of multiple integers into a single integer?, rewritten_intent: "Concatenate elements of a list x of multiple integers to a single integer", snippet: sum(d * 10 ** i for i, d in enumerate(x[::-1])) }
-
自动挖掘集:
{ question_id: 34705205, parent_answer_post_id: 34705233, prob: 0.8690001442846342, snippet: sorted(l, key=lambda x: (-int(x[1]), x[0])), intent: Sort a nested list by two elements, id: 34705205_34705233_0 }
数据字段
-
人工标注集:
字段 类型 描述 question_id int64 Stack Overflow问题ID intent string 自然语言意图(即Stack Overflow问题标题) rewritten_intent string 众包修订后的意图,更好地反映代码的完整含义 snippet string 实现意图的代码片段 -
自动挖掘集:
字段 类型 描述 question_id int64 Stack Overflow问题ID parent_answer_post_id int64 候选代码片段提取自的答案帖子ID intent string 自然语言意图(即Stack Overflow问题标题) snippet string 实现意图的代码片段 id string 意图/代码片段对的唯一ID prob float64 挖掘模型给出的概率
数据分割
- 人工标注集: 训练集和测试集
- 自动挖掘集: 仅训练集
搜集汇总
数据集介绍

构建方式
在代码生成研究领域,CoNaLa数据集通过系统化流程构建而成。其核心数据源自Stack Overflow平台,首先采用自动化爬虫技术收集原始问答对,随后运用先进的挖掘模型进行初步筛选,以概率评分机制识别潜在的高质量代码与自然语言对。经过自动过滤后,人工标注者进一步精炼数据,对自然语言描述进行改写以更精确地匹配代码片段语义,最终形成包含2,379个训练样本和500个测试样本的精选子集,同时保留了近60万条自动挖掘的原始数据以供扩展研究。
使用方法
研究者可通过Hugging Face库便捷加载该数据集,使用`load_dataset("neulab/conala")`获取精选版本,或指定`"mined"`配置以访问自动挖掘版本。数据集结构清晰,精选版本包含训练集与测试集,适用于监督学习下的模型训练与评估;自动挖掘版本则仅含训练集,可用于预训练或数据增强。典型应用流程包括:以`intent`或`rewritten_intent`字段作为模型输入,以`snippet`字段作为生成目标,构建端到端的代码生成任务。用户可依据`question_id`追溯Stack Overflow原始上下文,进行深入分析或数据验证。
背景与挑战
背景概述
在软件工程与自然语言处理交叉领域,代码生成任务长期面临高质量对齐数据稀缺的挑战。为应对此问题,卡内基梅隆大学等机构的研究团队于2018年推出了CoNaLa数据集,其核心目标是从Stack Overflow平台挖掘并构建代码与自然语言意图的对齐语料。该数据集通过自动化挖掘与人工精校的双重流程,形成了包含精准标注的Python代码片段及其对应自然语言描述的基准资源,显著推动了代码智能生成领域的研究进展,为后续的模型训练与评估提供了关键支撑。
当前挑战
CoNaLa数据集致力于解决代码生成任务中自然语言意图与代码片段精准对齐的核心难题,其挑战主要体现在两方面:在领域问题层面,如何从海量异构的社区问答数据中有效提取语义一致且语法正确的代码-文本对,并克服自然语言描述的模糊性与代码实现多样性之间的鸿沟;在构建过程中,自动化挖掘模型需在噪声显著的原始数据中识别高质量候选对,而后续的人工精校则需协调专家与众包资源,确保标注的一致性与语义完整性,这些环节均对数据质量与规模提出了严峻考验。
常用场景
经典使用场景
在代码生成研究领域,CoNaLa数据集作为评估代码生成任务的重要基准,其经典使用场景聚焦于自然语言到代码的转换。研究者通常利用该数据集训练和验证模型,以评估模型根据自然语言描述生成相应Python代码片段的能力。通过精心标注的训练集和测试集,该数据集为模型性能提供了标准化的评估框架,促进了代码生成技术的迭代与优化。
解决学术问题
CoNaLa数据集有效解决了代码生成研究中自然语言与编程语言对齐的难题。它通过从Stack Overflow挖掘并人工标注的高质量代码-自然语言对,为学术研究提供了可靠的训练和测试资源。该数据集不仅缓解了代码生成领域数据稀缺的问题,还推动了基于深度学习的代码生成模型的发展,为自动化编程辅助工具的研发奠定了数据基础。
实际应用
在实际应用层面,CoNaLa数据集支撑了智能编程助手和代码自动补全系统的开发。这些系统能够理解开发者的自然语言意图,并生成相应的代码片段,从而提升软件开发的效率。此外,该数据集还可用于教育领域,辅助编程初学者通过自然语言描述学习代码实现,降低了编程学习的门槛。
数据集最近研究
最新研究方向
在代码生成领域,CoNaLa数据集作为自然语言与Python代码对齐的基准,近年来推动了基于深度学习的代码合成技术的前沿探索。研究焦点集中于利用大规模预训练模型,如Codex与CodeT5,通过微调策略提升从自然语言描述到可执行代码的转换精度。热点事件涉及多模态学习与检索增强生成技术的融合,旨在解决复杂意图下的代码生成鲁棒性问题,其影响深远,为自动化编程工具与智能辅助系统奠定了数据基础,显著加速了软件工程智能化进程。
以上内容由遇见数据集搜集并总结生成



