semeru/code-text-ruby
收藏Hugging Face2023-03-23 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/semeru/code-text-ruby
下载链接
链接失效反馈官方服务:
资源简介:
---
license: mit
Programminglanguage: "ruby"
version: "N/A"
Date: "Codesearchnet(Jun 2020 - paper release date)"
Contaminated: "Very Likely"
Size: "Standar 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/ruby 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 |
| :------------------- | :------: | :----: | :----: |
| Ruby | 24,927 | 1,400 | 1,261 |
## 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>
license: 许可证:MIT许可证
Programminglanguage: 编程语言:Ruby
version: 版本:无可用信息
Date: 数据日期:CodeSearchNet(2020年6月——论文发布日期)
Contaminated: 数据污染情况:极有可能存在数据污染
Size: 数据集规格:采用标准分词器(TreeSitter)进行处理
---
本数据集源自CodeXGLUE,并通过其官方预处理脚本完成数据预处理。
# 在Semeru集群中的存储位置
本数据集在Semeru集群中的存储路径为 /nfs/semeru/semeru_datasets/code_xglue/code-to-text/ruby
## CodeXGLUE——代码转文本任务
### 任务定义
本任务的目标是为代码生成自然语言注释,并通过[平滑化BLEU-4(smoothed BLEU-4)](https://www.aclweb.org/anthology/C04-1072.pdf)指标进行模型性能评估。
### 数据集说明
本数据集源自[CodeSearchNet](https://arxiv.org/pdf/1909.09436.pdf),并按照以下规则进行筛选:
- 移除无法解析为抽象语法树(Abstract Syntax Tree, AST)的代码样本
- 移除文档Token(Token)数量小于3或大于256的样本
- 移除文档包含特殊标记(如<img ...>或https://等链接)的样本
- 移除非英文的文档样本
### 数据格式
完成数据预处理后,将得到三个JSON行格式文件,即train.jsonl、valid.jsonl与test.jsonl。
每个文件的每一行对应一个代码函数,以下为单条样本的结构说明:
- **repo**:代码所属的所有者/仓库名称
- **path**:原始文件的完整存储路径
- **func_name**:函数或方法名称
- **original_string**:分词或语法解析前的原始代码字符串
- **language**:所用编程语言
- **code/function**:`original_string`中属于可执行代码的部分
- **code_tokens/function_tokens**:代码的Token(Token)分词结果
- **docstring**:原代码中的顶级注释或文档字符串(若存在)
- **docstring_tokens**:文档字符串的Token(Token)分词结果
### 数据统计
| 编程语言 | 训练集 | 开发集 | 测试集 |
| :------- | :------: | :------: | :------: |
| Ruby | 24,927 | 1,400 | 1,261 |
## 参考文献
<pre><code>@article{husain2019codesearchnet,
title={Codesearchnet挑战:评估语义代码搜索的研究现状},
author={Husain, Hamel and Wu, Ho-Hsiang and Gazit, Tiferet and Allamanis, Miltiadis and Brockschmidt, Marc},
journal={arXiv预印本 arXiv:1909.09436},
year={2019}
}</code></pre>
提供机构:
semeru原始信息汇总
数据集概述
数据集来源与处理
- 数据集来源于CodeSearchNet,通过CodeXGLUE的脚本进行预处理。
数据集存储位置
- 在Semeru系统中,数据集位于
/nfs/semeru/semeru_datasets/code_xglue/code-to-text/ruby。
任务定义
- 任务目标为生成代码的自然语言注释,评估指标为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:
original_string中的代码部分 - code_tokens/function_tokens:
code的tokenized版本 - docstring: 原始字符串中的顶级注释或docstring(如果存在)
- docstring_tokens:
docstring的tokenized版本
数据统计
| 编程语言 | 训练集 | 开发集 | 测试集 |
|---|---|---|---|
| Ruby | 24,927 | 1,400 | 1,261 |
引用
@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} }
搜集汇总
数据集介绍

构建方式
该数据集源自CodeSearchNet,经由CodeXGLUE项目引入并采用其预处理脚本进行加工。在构建过程中,研究者执行了严格的过滤策略:剔除无法解析为抽象语法树的代码样本,移除文档令牌数小于3或大于256的条目,过滤包含特殊标记(如<img...>或https:...)的文档,并确保所有文档均为英文。最终,Ruby语言子集保留了24,927条训练样本、1,400条验证样本和1,261条测试样本,每个样本以JSONL格式存储,包含仓库路径、函数名、原始字符串、代码及令牌化版本、文档字符串及令牌化版本等字段。
特点
该数据集聚焦于Ruby编程语言的代码-文本生成任务,具有高度专业化和领域针对性。其数据来源于真实开源项目,样本覆盖多种函数结构与注释风格,确保了注释生成的实用性和多样性。经过多轮过滤后,数据质量得到显著提升,避免了语法错误或噪声干扰。此外,数据集提供了标准化的令牌化版本(基于TreeSitter),便于直接用于序列到序列模型的训练与评估,并采用平滑BLEU-4作为评价指标,与学术界主流评估体系接轨。
使用方法
使用者可直接从HuggingFace加载该数据集,或通过Semeru平台访问本地存储版本。数据以JSONL格式提供,分为训练集、验证集和测试集,每行包含一个完整函数样本。典型应用流程包括:使用预训练语言模型(如CodeBERT或GPT系列)对代码令牌序列进行编码,以文档字符串令牌序列为监督目标进行微调;在推理阶段,模型生成注释后,通过平滑BLEU-4与参考注释对比评估性能。建议结合CodeXGLUE官方脚本进行数据预处理和结果复现,以确保实验一致性。
背景与挑战
背景概述
在软件工程领域,代码与自然语言之间的语义鸿沟一直是阻碍开发者高效理解与维护代码的难题。为弥合这一鸿沟,CodeXGLUE基准测试平台应运而生,其中代码到文本生成任务旨在通过自动生成代码注释来提升代码的可读性与可复用性。semeru/code-text-ruby数据集正是CodeXGLUE项目的重要组成部分,专注于Ruby编程语言的代码注释生成研究。该数据集源自2019年发布的CodeSearchNet挑战,由Hamel Husain等研究人员构建,并于2020年6月随论文正式公开。其核心研究问题在于如何利用大规模代码-注释对训练模型,使其能够为Ruby代码生成语义准确且自然流畅的文档注释。该数据集的提出为代码摘要、程序理解等下游任务提供了标准化评估基准,显著推动了跨语言代码智能领域的发展。
当前挑战
当前该数据集面临多重挑战。首先,从领域问题层面看,代码注释生成任务本身存在语义歧义性——同一段代码可能对应多种合理的注释表述,模型需在缺乏明确上下文的情况下捕捉编程意图,这对生成结果的准确性与多样性提出极高要求。其次,在数据集构建过程中,研究人员需严格过滤原始CodeSearchNet数据:剔除无法解析为抽象语法树的代码片段,移除文档长度不足3个或超过256个token的样本,并清洗包含特殊标记或非英语注释的条目。这些过滤规则虽提升了数据质量,但可能导致训练样本分布偏离真实场景,例如丢失包含复杂URL或混合语言注释的典型用例。此外,Ruby语言仅包含约2.5万训练样本,相较于Python等主流语言规模较小,模型易陷入过拟合,难以泛化至实际工程中的多样化代码风格与注释模式。
常用场景
经典使用场景
在自然语言处理与程序语言理解交叉领域,semeru/code-text-ruby数据集的核心经典用途是代码摘要生成(Code Summarization),即给定一段Ruby函数代码,要求模型自动生成自然语言注释或文档描述。该任务评估模型对程序语义的理解深度,通常采用平滑BLEU-4作为评价指标。数据集源自CodeSearchNet并经CodeXGLUE精细化过滤,剔除了无法解析为抽象语法树、文档长度异常或包含非英文特殊标记的样本,从而确保了训练数据的高质量与一致性。这一场景为研究代码与自然语言之间的语义映射关系提供了标准化的实验平台。
衍生相关工作
semeru/code-text-ruby作为CodeXGLUE基准的重要组成部分,催生了大量具有影响力的学术工作。其中最经典的包括CodeBERT(基于双模态Transformer的预训练模型),其利用该数据集进行代码-文本联合表示学习;GraphCodeBERT则进一步引入代码的抽象语法树结构信息,在代码摘要任务上取得突破性进展。此外,Seq2Seq模型家族(如基于LSTM的注意力机制模型)与Transformer模型在此数据集上的对比研究,系统性地揭示了不同架构在代码语义捕获能力上的差异。这些工作共同推动了代码智能领域从浅层特征工程向深度语义理解的演进。
数据集最近研究
最新研究方向
在代码智能领域,Ruby语言的代码-文本生成任务正成为自然语言处理与软件工程交叉的前沿热点。semeru/code-text-ruby数据集源自CodeXGLUE基准,基于CodeSearchNet精心筛选,剔除了不可解析的抽象语法树样本及非英文文档,保留了近2.5万条高质量训练样本。该数据集聚焦于从Ruby函数生成自然语言注释,评估指标采用平滑BLEU-4,推动了代码摘要与语义理解的研究。近年来,随着大语言模型在代码生成与理解中广泛应用,该数据集在评估模型对动态类型语言的注释能力方面具有关键意义,尤其在与GitHub Copilot等工具结合时,促进了开发者生产效率的提升和代码可维护性的增强。
以上内容由遇见数据集搜集并总结生成



