遇见数据集

claudios/java-trace-dataset

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

资源简介:

--- license: cc-by-sa-3.0 dataset_info: features: - name: project dtype: string - name: test_suite dtype: string - name: index_in_dump dtype: int64 - name: class_name dtype: string - name: method_name dtype: string - name: just_class_name dtype: string - name: just_method_name dtype: string - name: anonymous_classes dtype: string - name: anonymous_methods dtype: string - name: source_code dtype: string - name: notes dtype: string - name: java_calls dtype: string - name: calls_with_boundaries dtype: string - name: java_call_count dtype: int64 - name: max_depth dtype: int64 - name: loc_tuple sequence: int64 - name: id dtype: int64 splits: - name: train num_bytes: 23074236652 num_examples: 438224 - name: validation num_bytes: 549889066 num_examples: 10000 - name: with_libraries num_bytes: 550545938.8488278 num_examples: 10000 - name: without_libraries num_bytes: 235199288 num_examples: 10000 download_size: 63530054 dataset_size: 24409870944.848827 ---

许可协议:知识共享署名-相同方式共享3.0协议(CC BY-SA 3.0) 数据集信息: 特征字段: - 字段名:project,数据类型:字符串 - 字段名:test_suite,数据类型:字符串 - 字段名:index_in_dump,数据类型:64位整数 - 字段名:class_name,数据类型:字符串 - 字段名:method_name,数据类型:字符串 - 字段名:just_class_name,数据类型:字符串 - 字段名:just_method_name,数据类型:字符串 - 字段名:anonymous_classes,数据类型:字符串 - 字段名:anonymous_methods,数据类型:字符串 - 字段名:source_code,数据类型:字符串 - 字段名:notes,数据类型:字符串 - 字段名:java_calls,数据类型:字符串 - 字段名:calls_with_boundaries,数据类型:字符串 - 字段名:java_call_count,数据类型:64位整数 - 字段名:max_depth,数据类型:64位整数 - 字段名:loc_tuple,数据类型:64位整数序列 - 字段名:id,数据类型:64位整数 数据集拆分: - 拆分名称:train(训练集),字节占用量:23074236652,样本数量:438224 - 拆分名称:validation(验证集),字节占用量:549889066,样本数量:10000 - 拆分名称:with_libraries(含依赖库子集),字节占用量:550545938.8488278,样本数量:10000 - 拆分名称:without_libraries(无依赖库子集),字节占用量:235199288,样本数量:10000 下载总大小:63530054字节 数据集总大小:24409870944.848827字节

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

数据集概述

许可证

  • 本数据集遵循CC BY-SA 3.0许可证。

数据集特征

  • 项目名称: project (字符串类型)
  • 测试套件: test_suite (字符串类型)
  • 索引: index_in_dump (64位整数类型)
  • 类名: class_name (字符串类型)
  • 方法名: method_name (字符串类型)
  • 仅类名: just_class_name (字符串类型)
  • 仅方法名: just_method_name (字符串类型)
  • 匿名类: anonymous_classes (字符串类型)
  • 匿名方法: anonymous_methods (字符串类型)
  • 源代码: source_code (字符串类型)
  • 备注: notes (字符串类型)
  • Java调用: java_calls (字符串类型)
  • 带边界的调用: calls_with_boundaries (字符串类型)
  • Java调用计数: java_call_count (64位整数类型)
  • 最大深度: max_depth (64位整数类型)
  • 代码行数元组: loc_tuple (整数序列类型)
  • ID: id (64位整数类型)

数据集分割

  • 训练集:
    • 字节数: 23074236652
    • 样本数: 438224
  • 验证集:
    • 字节数: 549889066
    • 样本数: 10000
  • 包含库:
    • 字节数: 550545938.8488278
    • 样本数: 10000
  • 不包含库:
    • 字节数: 235199288
    • 样本数: 10000

数据集大小

  • 下载大小: 63530054 字节
  • 数据集大小: 24409870944.848827 字节
搜集汇总
数据集介绍
claudios/java-trace-dataset 数据集图片
构建方式
在软件工程与程序语言研究领域,高质量的调用轨迹数据集对理解代码结构与行为至关重要。claudios/java-trace-dataset 数据集通过系统性地从大规模Java开源项目代码仓库中提取方法级别的调用关系构建而成。其构建过程涵盖对每个方法及其所属类的精确解析,记录方法内部的Java调用序列、调用边界以及调用深度等关键信息。数据经过结构化处理,形成包含项目标识、测试套件、源代码及调用元数据的多维特征表,最终划分为训练集、验证集以及是否包含库调用的专用子集,以满足不同研究场景的需求。
特点
该数据集的一个显著特点在于其丰富且精细的调用信息标注。每条记录不仅提供方法所在的类名与方法名,还特别区分了匿名类与匿名方法,并记录了完整的Java调用序列与调用边界,为程序分析与代码理解任务提供了细粒度支撑。此外,数据集通过`java_call_count`与`max_depth`字段量化调用复杂度,辅以`loc_tuple`记录代码行数分布,使得研究者能够从多个维度考察方法的调用特征。其规模庞大,训练集包含超过43万个样本,并设有专用子集便于对比有无库依赖下的调用模式差异。
使用方法
使用该数据集时,研究者可直接从HuggingFace平台加载,利用其预设的训练、验证及两个专用测试子集进行模型训练与评估。对于代码调用图生成或程序行为预测等任务,可提取`source_code`、`java_calls`及`calls_with_boundaries`字段作为输入特征,结合`max_depth`等数值属性辅助分析。数据集以JSON格式存储,便于集成到PyTorch或TensorFlow等框架的数据管道中,通过简单的字段映射即可适配下游模型,极大降低了在代码智能任务中获取高质量调用轨迹数据的门槛。
背景与挑战
背景概述
在软件工程领域,代码理解和程序分析一直是核心研究问题,尤其是对于Java这类广泛使用的编程语言。claudios/java-trace-dataset数据集由研究者于近年创建,旨在为Java代码的调用链追踪与动态分析提供大规模结构化数据。该数据集涵盖了来自多个开源项目的43万余个训练样本,包含方法调用、调用深度、源代码片段等丰富特征,为机器学习驱动的代码分析、程序行为建模以及自动化测试生成等方向提供了坚实的数据基础。其影响力体现在促进了从传统静态分析向数据驱动动态分析的范式转变,成为软件仓库挖掘与程序理解研究中的重要基准资源。
当前挑战
该数据集所解决的核心领域挑战在于Java程序中方法调用关系的复杂性与动态行为难以被大规模、细粒度地捕获和结构化表示。传统静态分析难以处理反射、多态等动态特性,而该数据集通过追踪运行时调用链,提供了包含调用边界、嵌套深度等信息的标注数据,为模型学习代码执行逻辑提供了可能。在构建过程中,挑战包括从海量开源项目中提取精确的调用轨迹、处理匿名类与匿名方法的动态绑定、以及确保跨项目的一致性与数据完整性,这些步骤对数据清洗与标准化提出了极高要求。
常用场景
经典使用场景
在软件工程与程序语言研究领域,claudios/java-trace-dataset 数据集为静态与动态程序分析提供了宝贵的资源。该数据集收录了来自海量Java项目的细粒度调用轨迹信息,涵盖方法调用序列、调用深度及源代码片段等关键特征。其经典使用场景聚焦于代码理解与行为建模,研究者可借助其中结构化的调用链数据,训练模型以预测程序执行路径、识别异常调用模式或重构代码结构。数据集中丰富的元数据(如匿名类与方法标记)更赋予研究者剖析现代Java语言特性的能力,从而推动面向复杂软件系统的自动化分析工具的发展。
实际应用
在实际软件工程场景中,该数据集赋能了智能代码审查与故障定位系统的构建。开发团队可利用其中标注的调用边界与层次结构,训练模型自动识别方法间依赖关系,从而在持续集成流水线中预测变更影响范围。此外,数据集中的调用计数与深度信息可服务于性能瓶颈检测,例如通过对比正常与异常调用模式,辅助定位高延迟方法。基于该数据集的模型还能为大型代码库提供自动补全建议,优化开发者编写高效、可维护代码的体验,显著降低人工调试成本。
衍生相关工作
围绕claudios/java-trace-dataset,学术界涌现了一系列创新工作。研究者基于其调用轨迹数据,发展了面向深度学习的程序表示方法,如将调用序列编码为图神经网络输入的模型,用于缺陷预测与代码摘要任务。另有工作利用数据集的匿名类与方法标记,探索了Java语言特性对程序动态行为的影响,催生了针对Lambda表达式与内部类的专用分析框架。此外,该数据集中的with_libraries与without_libraries划分激励了模块化学习研究,推动了跨库知识迁移技术在代码搜索与安全漏洞检测中的突破。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务