遇见数据集

poojaruhal/Code-comment-classification

收藏
Hugging Face2022-10-16 更新2024-03-04 收录
官方服务:

资源简介:

该数据集名为Code-comment-classification,主要用于代码注释的分类任务。数据集包含了从Java、Smalltalk和Python三种编程语言的开源项目中提取的类注释。数据集支持单标签和多标签文本分类任务,数据实例包括类名、注释内容以及分类类别等信息。数据集的创建目的是为了识别不同项目和编程语言中类注释所包含的信息。数据集的注释由四位具有至少四年编程经验的评估者完成,并通过10折交叉验证进行数据划分。

This dataset, named Code-comment-classification, is primarily designed for code comment classification tasks. It contains class comments extracted from open-source projects developed in three programming languages: Java, Smalltalk, and Python. The dataset supports both single-label and multi-label text classification tasks, with each data instance including information such as class name, comment content, and classification category. The purpose of creating this dataset is to identify the information contained in class comments across different projects and programming languages. All comments in the dataset were annotated by four evaluators with at least four years of programming experience, and the dataset was split using 10-fold cross-validation.

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

数据集概述

数据集名称

  • 名称: Code-comment-classification

数据集属性

  • 语言: 英语 (en)
  • 多语言性: 单语种 (monolingual)
  • 许可证: cc-by-nc-sa-4.0
  • 大小: 1K<n<10K
  • 源数据: 原始数据 (original)
  • 标签:
    • 源代码注释
    • Java类注释
    • Python类注释
    • Smalltalk类注释
  • 任务类别: 文本分类 (text-classification)
  • 任务ID:
    • 意图分类 (intent-classification)
    • 多标签分类 (multi-label-classification)

数据集内容

  • 摘要: 该数据集包含从Java、Smalltalk和Python三种编程语言的多个大型和多样化的开源项目中提取的类注释。
  • 支持的任务:
    • 单标签文本分类
    • 多标签文本分类
  • 语言: Java, Python, Smalltalk

数据集结构

  • 数据实例: 每个实例包含类名、类注释及其摘要等信息。
  • 数据字段:
    • class: 类名,包含语言扩展。
    • comment: 类注释。
    • categories: 分类,指示特定类型的信息。
  • 数据分割: 10折交叉验证。

数据集创建

  • 采集理由: 识别嵌入在不同项目和编程语言的类注释中的信息。
  • 源数据: 数据集从Java、Smalltalk和Python的开源项目中提取。
  • 注释:
    • 注释过程: 由四位具有至少四年编程经验的评估者进行,每位评估者负责一部分数据,每个分类由三位评估者复核。
    • 注释者: 文章作者。
  • 个人和敏感信息: 文本中嵌入的作者信息。

附加信息

  • 数据集创建者: Pooja Rani, Ivan, Manuel

  • 许可证信息: cc-by-nc-sa-4.0

  • 引用信息:

    @article{RANI2021111047, title = {How to identify class comment types? A multi-language approach for class comment classification}, journal = {Journal of Systems and Software}, volume = {181}, pages = {111047}, year = {2021}, issn = {0164-1212}, doi = {https://doi.org/10.1016/j.jss.2021.111047}, url = {https://www.sciencedirect.com/science/article/pii/S0164121221001448}, author = {Pooja Rani and Sebastiano Panichella and Manuel Leuenberger and Andrea {Di Sorbo} and Oscar Nierstrasz}, keywords = {Natural language processing technique, Code comment analysis, Software documentation} }

搜集汇总
数据集介绍
poojaruhal/Code-comment-classification 数据集图片
构建方式
在软件工程领域,代码注释的质量与可维护性密切相关。poojaruhal/Code-comment-classification数据集旨在系统性地识别类注释中蕴含的信息类型。其构建过程始于从Java、Smalltalk和Python三种编程语言的多个大型开源项目中提取类注释。具体而言,研究团队从Eclipse、Guava等六个Java项目,GToolkit、Moose等七个Smalltalk项目,以及Django、PyTorch等七个Python项目中,各随机选取350条注释,形成包含约1050条样本的均衡语料库。随后,四位具备丰富编程经验的评估人员依据分布比例对注释进行划分,每条注释由三位评估者独立标注,最终归入26种预定义的信息类别,如摘要、扩展、弃用等,从而确保标注的客观性与一致性。
特点
该数据集的核心特点在于其多语言覆盖与细粒度的多标签分类结构。不同于仅关注单一语言的注释研究,它横跨Java、Python及Smalltalk三种语法迥异的语言,增强了模型的泛化能力。每个数据实例均包含原始注释文本及其对应的多种信息标签,支持单标签与多标签文本分类任务。此外,数据集通过10折交叉验证划分,便于进行稳健的模型评估。注释类别设计详尽,涵盖从功能性描述(如摘要、扩展)到非功能性信息(如许可证、所有权)乃至噪声标记,能够全面反映实际开发中类注释的复杂性。这种层次化的标注体系为深入理解注释语义提供了独特视角。
使用方法
该数据集主要面向文本分类与自然语言处理研究。使用时,可直接加载Hugging Face数据集库中的poojaruhal/Code-comment-classification,获取包含'class'、'comment'及多标签字段的实例。对于单标签分类,可将每个实例的'comment'字段作为输入,选择其主要类别作为目标;对于多标签分类,则需将26个布尔类别字段组合为多热编码向量。建议采用预训练语言模型(如BERT或CodeBERT)进行微调,并利用提供的10折交叉验证方案评估性能。研究者亦可针对特定语言子集进行实验,或探索注释类别间的层次关系,以优化分类效果。
背景与挑战
背景概述
在软件工程领域,代码注释作为程序理解与维护的关键辅助信息,其质量与类型直接影响开发者的认知效率。然而,跨编程语言的类注释类型识别一直缺乏系统性研究。为此,Pooja Rani、Sebastiano Panichella等研究者于2021年在《Journal of Systems and Software》发表相关论文,并创建了Code-comment-classification数据集。该数据集由苏黎世大学等机构的研究人员主导,从Java、Python和Smalltalk三种语言的二十个知名开源项目(如Eclipse、PyTorch、GToolkit)中提取类注释,并经由四位具有四年以上编程经验的评估者进行多轮标注。核心研究问题在于如何自动识别类注释中蕴含的多种信息类型(如摘要、用法、异常等),从而推动代码文档理解与自然语言处理技术的交叉发展。该数据集为多语言类注释分类提供了标准化基准,对软件维护工具和文档生成研究产生了重要影响。
当前挑战
数据集面临的核心挑战在于解决跨语言类注释类型分类的领域问题:不同编程语言(如Java的Javadoc风格与Smalltalk的散文式注释)在语法结构、语义表达和注释惯例上差异显著,现有自然语言处理模型难以泛化至多语言场景。此外,构建过程中亦遭遇多重困难:其一,注释文本中常嵌入作者信息、许可证等敏感内容,需在标注时剥离干扰项;其二,类注释可能同时包含多种信息类型(如摘要与用法并存),使得多标签分类的边界定义模糊;其三,样本来源项目规模各异,部分注释长度极短或包含代码片段,导致特征提取与标注一致性难以保障;其四,数据集仅含约1050条样本(每种语言350条),小样本量对深度学习模型的训练效果构成限制。
常用场景
经典使用场景
在软件工程与自然语言处理交叉领域,Code-comment-classification数据集被广泛用于代码注释类型识别任务。该数据集汇聚了Java、Python和Smalltalk三种编程语言中多个大型开源项目的类注释,并经由专家精细标注为摘要、扩展、弃用、异常等二十余种信息类别。研究者可借此训练单标签或多标签文本分类模型,自动判别注释所承载的语义功能,从而深入理解代码文档的内在结构。这一场景不仅验证了跨语言注释分类的可行性,也为后续构建智能代码理解工具奠定了基础。
衍生相关工作
围绕该数据集已衍生出一系列影响深远的经典工作。Rani等人在《Journal of Systems and Software》上发表的原始论文首次提出多语言类注释分类框架,并建立了完整的标注体系与基准模型。后续研究在此基础上拓展了注释类型体系,如引入行内注释分类、注释与代码一致性检测等任务;亦有工作将其作为评估基准,验证预训练语言模型(如CodeBERT、GraphCodeBERT)在注释语义理解上的表现。此外,该数据集还被用于注释生成、代码摘要质量评估以及跨项目注释模式挖掘等方向,持续推动软件文档智能化分析的边界。
数据集最近研究
最新研究方向
在软件工程与自然语言处理的交叉领域,代码注释分类正成为提升代码可维护性与理解性的关键前沿方向。poojaruhal/Code-comment-classification数据集聚焦于从Java、Python和Smalltalk三大编程语言的多元化开源项目中提取类注释,并对其进行细粒度分类,涵盖摘要、扩展、弃用、异常等二十余种信息类型。该研究呼应了当前大型语言模型与代码智能的热点浪潮,通过专家标注与多语言验证,为自动化注释质量评估、文档生成及代码理解工具提供了基准资源。其意义在于推动跨语言注释语义的标准化解析,助力开发者精准捕获设计意图,从而降低软件维护成本并提升协作效率。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务