semeru/code-text-go
收藏Hugging Face2023-03-24 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/semeru/code-text-go
下载链接
链接失效反馈官方服务:
资源简介:
---
license: mit
Programminglanguage: "go"
version: "N/A"
Date: "Codesearchnet(Jun 2020 - paper release date)"
Contaminated: "Very Likely"
Size: "Standard Tokenizer (TreeSitter)"
---
### Dataset is imported from CodeXGLUE and pre-processed using their script.
# Where to find in Semeru:
The dataset can be found at /nfs/semeru/semeru_datasets/code_xglue/code-to-text/go in Semeru
# CodeXGLUE -- Code-To-Text
## Task Definition
The task is to generate natural language comments for a code, and evaluted by [smoothed bleu-4](https://www.aclweb.org/anthology/C04-1072.pdf) score.
## Dataset
The dataset we use comes from [CodeSearchNet](https://arxiv.org/pdf/1909.09436.pdf) and we filter the dataset as the following:
- Remove examples that codes cannot be parsed into an abstract syntax tree.
- Remove examples that #tokens of documents is < 3 or >256
- Remove examples that documents contain special tokens (e.g. <img ...> or https:...)
- Remove examples that documents are not English.
### Data Format
After preprocessing dataset, you can obtain three .jsonl files, i.e. train.jsonl, valid.jsonl, test.jsonl
For each file, each line in the uncompressed file represents one function. One row is illustrated below.
- **repo:** the owner/repo
- **path:** the full path to the original file
- **func_name:** the function or method name
- **original_string:** the raw string before tokenization or parsing
- **language:** the programming language
- **code/function:** the part of the `original_string` that is code
- **code_tokens/function_tokens:** tokenized version of `code`
- **docstring:** the top-level comment or docstring, if it exists in the original string
- **docstring_tokens:** tokenized version of `docstring`
### Data Statistic
| Programming Language | Training | Dev | Test |
| :------------------- | :------: | :----: | :----: |
| Go | 167,288 | 7,325 | 8,122 |
## Reference
<pre><code>@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}
}</code></pre>
提供机构:
semeru原始信息汇总
数据集概述
数据集来源与处理
- 数据集来源于CodeSearchNet,通过CodeXGLUE的脚本进行预处理。
数据集存储位置
- 在Semeru系统中,数据集位于
/nfs/semeru/semeru_datasets/code_xglue/code-to-text/go。
任务定义
- 任务目标:为代码生成自然语言注释。
- 评估标准:使用smoothed bleu-4评分。
数据集过滤规则
- 移除无法解析为抽象语法树的代码示例。
- 移除文档token数量少于3或多于256的示例。
- 移除包含特殊token(如
<img ...>或https:...)的文档。 - 移除非英语文档。
数据格式
- 预处理后,数据集包含三个
.jsonl文件:train.jsonl,valid.jsonl,test.jsonl。 - 每个文件的每行代表一个函数,包含以下字段:
- repo: 仓库所有者/仓库名
- path: 原始文件的完整路径
- func_name: 函数或方法名
- original_string: 未进行tokenization或解析的原始字符串
- language: 编程语言
- code/function: 原始字符串中的代码部分
- code_tokens/function_tokens:
code的tokenized版本 - docstring: 原始字符串中的顶级注释或docstring(如果存在)
- docstring_tokens:
docstring的tokenized版本
数据统计
| 编程语言 | 训练集 | 开发集 | 测试集 |
|---|---|---|---|
| Go | 167,288 | 7,325 | 8,122 |
引用文献
- Husain, Hamel, et al. "Codesearchnet challenge: Evaluating the state of semantic code search." arXiv preprint arXiv:1909.09436 (2019).
搜集汇总
数据集介绍

构建方式
该数据集源自CodeXGLUE项目,并基于CodeSearchNet语料库进行精细过滤构建。原始数据经过严格清洗流程:剔除无法解析为抽象语法树的代码样本,移除文档词元数量少于3或超过256的条目,删除包含特殊标记(如HTML标签或URL)的文档,并筛选出非英文注释。最终得到Go语言的167,288条训练样本、7,325条验证样本及8,122条测试样本,每条数据以JSONL格式存储,包含仓库路径、函数名称、原始字符串、代码词元及文档注释词元等结构化字段。
使用方法
该数据集适用于训练和评估代码注释生成模型,典型用法是加载JSONL文件后,将'code_tokens'字段作为输入序列,'docstring_tokens'字段作为目标序列,构建监督学习任务。可采用标准序列到序列架构(如Transformer)进行训练,并通过平滑BLEU-4指标评估生成质量。研究者可直接使用HuggingFace Datasets库加载,或通过预处理脚本将数据转换为模型兼容格式。数据已按官方划分提供训练、验证和测试集,便于复现基准实验。
背景与挑战
背景概述
在软件工程与自然语言处理交叉领域,代码摘要生成任务旨在为源代码自动生成人类可读的自然语言注释,这一研究对提升代码理解与维护效率具有深远意义。semeru/code-text-go数据集源自2020年发布的CodeSearchNet挑战,由微软研究院、剑桥大学等机构的研究人员Hamel Husain、Ho-Hsiang Wu等人构建,聚焦于Go编程语言。该数据集基于CodeXGLUE基准的预处理流程,从CodeSearchNet原始语料中筛选出约16.7万条训练样本、7千余条验证样本及8千余条测试样本,专为代码到文本(code-to-text)任务设计。其核心研究问题在于评估模型能否从Go语言函数代码中生成准确的注释,通过平滑BLEU-4指标进行量化评价。该数据集的出现推动了语义代码搜索与注释生成技术的发展,成为后续多语言代码理解模型的基准测试之一。
当前挑战
该数据集所解决的领域挑战在于代码注释生成任务中存在的语义鸿沟问题:Go语言函数代码的结构化特征与自然语言注释间的映射关系复杂,模型需同时理解语法树、变量命名、控制流等代码逻辑,并生成符合英语语法的连贯注释。构建过程中面临多重挑战:首先,原始CodeSearchNet数据需经过严格过滤,包括剔除无法解析为抽象语法树的样本、过滤文档长度过短(<3词)或过长(>256词)的条目,以及去除包含特殊标记或非英语注释的实例,这要求高精度的解析与清洗工具;其次,Go语言特有的并发模型(如goroutine)和接口类型增加了代码语义理解的难度;此外,数据集可能存在污染风险(如预训练语料中已包含类似注释),影响评估公平性,需要后续研究在模型训练与测试中谨慎处理数据泄露问题。
常用场景
经典使用场景
在代码智能研究领域,semeru/code-text-go数据集被广泛用于代码到自然语言描述生成的经典任务。该数据集源自CodeSearchNet,经过精心过滤,保留了Go语言中可解析为抽象语法树的函数样本,并剔除了文档过短、过长或包含特殊标记的异常条目。研究者通常利用其提供的函数代码与对应的docstring对,训练序列到序列模型,以自动为Go代码片段生成语义连贯的注释。这一场景不仅考验模型对Go语言语法的理解,还要求其能捕捉代码逻辑与自然语言之间的映射关系,是评估神经机器翻译和代码理解能力的标准基准。
解决学术问题
该数据集有效解决了代码注释自动生成这一学术难题,即如何从结构化代码中提取高层语义并转化为人类可读的文本描述。传统方法依赖人工编写注释,耗时且易出错,而semeru/code-text-go为监督学习提供了大规模、高质量的平行语料。它推动了基于Transformer的预训练模型(如CodeBERT、GraphCodeBERT)在代码摘要任务上的发展,使得模型能学习到函数名、变量类型与控制流中的隐含意图。其意义在于显著降低了软件文档维护成本,并提升了代码可读性研究的数据基础,为后续跨语言代码理解与生成研究铺平了道路。
实际应用
在实际软件工程中,该数据集驱动的模型可被集成至集成开发环境(IDE)或代码审查工具中,实现实时注释建议。例如,开发者编写Go函数后,系统能自动生成描述性注释,加速代码文档化过程。此外,它还可用于代码搜索平台,通过自然语言查询匹配函数实现,提升代码复用效率。在开源项目维护中,自动化注释生成能帮助新成员快速理解遗留代码逻辑,减少沟通成本。这些应用直接受益于数据集的规模与质量,使得模型在实际部署中能处理多样化的Go代码风格和注释模式。
数据集最近研究
最新研究方向
在代码智能领域,semeru/code-text-go数据集聚焦于代码到自然语言描述的生成任务,是评估语义代码搜索与注释生成能力的重要基准。当前前沿研究方向紧密围绕大语言模型在代码理解中的应用,尤其是利用该数据集训练和微调模型,以生成高质量、符合语境的函数注释。随着GitHub Copilot等AI编程助手的普及,代码注释生成已成为提升代码可读性与维护效率的关键技术。该数据集源自CodeSearchNet并经过严格清洗,确保了数据质量,其包含的16万余条Go语言函数-注释对,为研究跨语言代码表示、抽象语法树解析及代码语义对齐提供了丰富资源。这一方向的研究不仅推动了自动化文档生成的发展,也对软件工程中的代码复用与知识图谱构建产生了深远影响。
以上内容由遇见数据集搜集并总结生成



