遇见数据集

LukasSonn/DoxygenStrings-Long

收藏
Hugging Face2023-11-06 更新2024-03-04 收录
官方服务:

资源简介:

--- license: apache-2.0 --- # Dataset Info C++ + Natural Description -> Doxygen Documentation This dataset was created for my bachelors thesis investigating how LLMs can be fine-tuned to generate doxygen documentation. It was created by using the “Source code analysis dataset” by Gelman, Banjo Obayomi, Jessica Moore und David Slater (doi: 10.1016/j.dib.2019.104712). The following SQL-Statement was used to grab raw data from the dataset: ``` SELECT * FROM all_data WHERE LENGTH(comment) > 300 and LENGTH(code) > 100 AND LENGTH(code) < 80 AND code NOT LIKE '%//%' AND code NOT LIKE '%/*%' AND code NOT LIKE '%*/%' AND filename LIKE '%.cpp%' LIMIT 12000 ``` After selecting the Data Code LLaMa Instruct 34B is tasked to combine the human-written description of the functionality with the function code into a Doxygen-Comment. Any results which included the sample doxygen string or no doxygen string at all where filtered from the set.

--- 许可证:Apache-2.0 --- # 数据集说明:C++代码+自然描述 → Doxygen文档 本数据集专为支撑本科毕业论文构建,用于探究如何对大语言模型(Large Language Model, LLM)进行微调以生成Doxygen文档。本数据集基于Gelman、Banjo Obayomi、Jessica Moore与David Slater发布的「源代码分析数据集」(DOI: 10.1016/j.dib.2019.104712)构建。 我们使用以下SQL语句从原数据集中提取原始数据: sql SELECT * FROM all_data WHERE LENGTH(comment) > 300 AND LENGTH(code) > 100 AND LENGTH(code) < 80 AND code NOT LIKE '%//%' AND code NOT LIKE '%/*%' AND code NOT LIKE '%*/%' AND filename LIKE '%.cpp%' LIMIT 12000 上述SQL语句用于从`all_data`表中查询满足如下条件的全部记录:注释字段长度大于300、代码字段长度介于100至80之间、代码不包含单行注释`//`与块注释`/*`、`*/`,且文件名后缀为`.cpp`,最终限制返回12000条数据。 完成数据筛选后,我们调用Code LLaMa Instruct 34B模型,将人工编写的功能描述与对应函数代码整合为Doxygen注释。随后,我们过滤掉包含示例Doxygen字符串或完全未生成任何Doxygen注释的结果。

提供机构:
LukasSonn
原始信息汇总

数据集信息:C++代码与自然描述生成Doxygen文档

数据集来源

  • 数据集基于Gelman, Banjo Obayomi, Jessica Moore和David Slater的“源代码分析数据集”(doi: 10.1016/j.dib.2019.104712)创建。

数据选择标准

  • 使用SQL语句从源数据集中筛选数据: sql SELECT * FROM all_data WHERE LENGTH(comment) > 300 and LENGTH(code) > 100 AND LENGTH(code) < 80 AND code NOT LIKE %//% AND code NOT LIKE %/% AND code NOT LIKE %/% AND filename LIKE %.cpp% LIMIT 12000

数据处理

  • 使用Code LLaMa Instruct 34B模型将人工编写的功能描述与函数代码结合,生成Doxygen注释。
  • 过滤掉包含示例Doxygen字符串或无Doxygen字符串的结果。
搜集汇总
数据集介绍
LukasSonn/DoxygenStrings-Long 数据集图片
构建方式
该数据集源自Gelman等人发布的“源代码分析数据集”,原始数据经过精细的SQL筛选,选取了注释长度超过300字符、代码长度介于100至800字符之间、且不含行内注释的C++源文件。在此基础上,借助Code LLaMa Instruct 34B模型,将人工编写的功能描述与函数代码融合,自动生成Doxygen格式的注释。最终,通过过滤掉仅包含示例Doxygen字符串或无任何Doxygen注释的样本,确保了数据质量。
特点
数据集聚焦于C++代码与自然语言描述的配对,专为微调大语言模型以生成Doxygen文档而设计。其核心特色在于,所有注释均为模型基于真实代码与人工描述合成的Doxygen格式,兼具专业性与规范性。数据条目超过一万条,覆盖了多样化的函数实现,为训练模型理解代码语义与文档生成规则提供了丰富的素材。
使用方法
该数据集适用于监督式微调任务,用户可将其作为训练集,引导模型学习从C++函数代码到Doxygen注释的映射关系。使用时,建议将代码作为输入特征,对应的Doxygen注释作为目标标签,构建序列到序列的学习范式。数据集以标准格式提供,可直接加载至HuggingFace Transformers或PyTorch框架,便于集成至现有训练流水线。
背景与挑战
背景概述
在软件工程领域,代码文档的自动生成一直是提升开发效率与代码可维护性的核心议题。Doxygen作为C++社区广泛使用的文档生成工具,其注释格式的规范性对代码理解与协作至关重要。LukasSonn/DoxygenStrings-Long数据集诞生于2023年,由研究者Lukas Sonn在其学士学位论文中创建,旨在探索大规模语言模型(LLM)在生成Doxygen文档注释方面的潜力。该数据集基于Gelman等人发布的“源代码分析数据集”,通过结构化查询筛选出长度超过300字符的注释与100至80字符之间的代码片段,并剔除包含注释标记的样本,最终利用Code LLaMa Instruct 34B模型将人工编写的功能描述与函数代码融合为完整的Doxygen注释。这一工作填补了针对C++语言、结合自然语言描述与代码结构的高质量文档生成数据集的空白,为后续研究提供了可复现的基准资源。
当前挑战
该数据集所面临的挑战首先源于领域问题的复杂性:自动生成Doxygen注释不仅需要理解代码的语法与语义,还需准确映射功能描述与代码逻辑之间的关系,这对模型在跨模态信息对齐与上下文理解上提出了严苛要求。其次,数据构建过程中存在多重技术瓶颈:原始数据源中长注释与短代码的筛选条件(如LENGTH(comment) > 300且LENGTH(code)介于100至80之间)可能导致样本分布不均,影响模型的泛化能力;同时,依赖Code LLaMa Instruct 34B生成注释时,过滤掉未包含Doxygen字符串的样本虽保证了格式一致性,却可能引入生成偏差,削弱数据集的自然多样性。此外,数据集仅覆盖.cpp文件,对头文件、模板代码或复杂继承结构的支持不足,限制了其在真实工业场景中的适用性。
常用场景
经典使用场景
在软件工程与自然语言处理交叉领域,该数据集被广泛用于微调大语言模型以自动生成符合Doxygen规范的C++函数文档。研究者将函数源代码与其对应的自然语言描述作为输入,训练模型输出结构化的Doxygen注释,涵盖参数说明、返回值描述及功能概述。这一经典场景聚焦于代码注释的自动化生成,尤其针对长序列代码片段(代码长度介于100至300字符),旨在提升文档编写效率与一致性。
解决学术问题
该数据集有效解决了代码文档自动生成中注释质量与格式规范性的双重挑战。传统方法依赖模板匹配或规则系统,难以处理复杂函数语义;而该数据集通过筛选高信息量注释(长度超300字符)并利用LLaMa Instruct 34B进行Doxygen格式转换,为研究提供了高质量训练样本。其学术意义在于验证了大语言模型在代码-文档映射任务中的泛化能力,推动了代码智能领域从语法分析向语义理解的演进。
衍生相关工作
该数据集衍生出多项经典研究,包括基于对比学习的文档生成模型(如CodeBERT-Doc)、结合静态分析的多模态注释方法,以及面向低资源语言的跨语言文档迁移工作。后续工作进一步扩展了数据规模,引入Python、Java等多语言支持,并探索了文档质量自动评估指标(如BLEU-Doc)。这些工作共同构建了从代码到文档的端到端生成范式,成为代码智能领域的重要基准。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务