JetBrains-Research/lca-bug-localization
收藏Hugging Face2024-06-19 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/JetBrains-Research/lca-bug-localization
下载链接
链接失效反馈官方服务:
资源简介:
LCA(Bug Localization)数据集是一个用于评估Bug定位方法的基准数据集。该数据集包含了从GitHub收集的真实项目级别的大规模数据,包括Bug问题的描述、仓库的快照、需要修改的文件列表以及其他有用的数据和指标。数据集分为多个类别(如py、java、kt)和多个分割(如dev、test、train),并且提供了详细的字段描述和指标计算方法。所有仓库都发布在宽松的许可证下(如MIT、Apache-2.0、BSD-3-Clause和BSD-2-Clause),并且可以根据请求删除数据点。数据集经过仔细过滤、增强和手动标注,确保了数据质量,并提供了一个用于评估的黄金子集。
LCA(Bug Localization)数据集是一个用于评估Bug定位方法的基准数据集。该数据集包含了从GitHub收集的真实项目级别的大规模数据,包括Bug问题的描述、仓库的快照、需要修改的文件列表以及其他有用的数据和指标。数据集分为多个类别(如py、java、kt)和多个分割(如dev、test、train),并且提供了详细的字段描述和指标计算方法。所有仓库都发布在宽松的许可证下(如MIT、Apache-2.0、BSD-3-Clause和BSD-2-Clause),并且可以根据请求删除数据点。数据集经过仔细过滤、增强和手动标注,确保了数据质量,并提供了一个用于评估的黄金子集。
提供机构:
JetBrains-Research
原始信息汇总
数据集概述
基本信息
- 语言: 英语
- 许可证: Apache-2.0
- 任务类别: 文本生成
- 数据集名称: LCA (Bug Localization)
- 标签: code
数据集配置
配置: java
- 特征:
id: int64text_id: stringrepo_owner: stringrepo_name: stringissue_url: stringpull_url: stringcomment_url: stringlinks_count: int64link_keyword: stringissue_title: stringissue_body: stringbase_sha: stringhead_sha: stringdiff_url: stringdiff: stringchanged_files: stringchanged_files_exts: stringchanged_files_count: int64java_changed_files_count: int64kt_changed_files_count: int64py_changed_files_count: int64code_changed_files_count: int64repo_symbols_count: int64repo_tokens_count: int64repo_lines_count: int64repo_files_without_tests_count: int64changed_symbols_count: int64changed_tokens_count: int64changed_lines_count: int64changed_files_without_tests_count: int64issue_symbols_count: int64issue_words_count: int64issue_tokens_count: int64issue_lines_count: int64issue_links_count: int64issue_code_blocks_count: int64pull_create_at: timestamp[s]repo_stars: int64repo_language: stringrepo_languages: stringrepo_license: string
- 分割:
dev: 22190207 bytes, 2522 examplestest: 439932.73195876286 bytes, 50 examplestrain: 21750274.26804124 bytes, 2472 examples
- 下载大小: 14252663 bytes
- 数据集大小: 44380414.0 bytes
配置: kt
- 特征:
id: int64text_id: stringrepo_owner: stringrepo_name: stringissue_url: stringpull_url: stringcomment_url: stringlinks_count: int64link_keyword: stringissue_title: stringissue_body: stringbase_sha: stringhead_sha: stringdiff_url: stringdiff: stringchanged_files: stringchanged_files_exts: stringchanged_files_count: int64java_changed_files_count: int64kt_changed_files_count: int64py_changed_files_count: int64code_changed_files_count: int64repo_symbols_count: int64repo_tokens_count: int64repo_lines_count: int64repo_files_without_tests_count: int64changed_symbols_count: int64changed_tokens_count: int64changed_lines_count: int64changed_files_without_tests_count: int64issue_symbols_count: int64issue_words_count: int64issue_tokens_count: int64issue_lines_count: int64issue_links_count: int64issue_code_blocks_count: int64pull_create_at: timestamp[s]repo_stars: int64repo_language: stringrepo_languages: stringrepo_license: string
- 分割:
dev: 4867349 bytes, 618 examplestest: 393798.4627831715 bytes, 50 examplestrain: 4473550.537216828 bytes, 568 examples
- 下载大小: 3298535 bytes
- 数据集大小: 9734698.0 bytes
配置: py
- 特征:
id: int64text_id: stringrepo_owner: stringrepo_name: stringissue_url: stringpull_url: stringcomment_url: stringlinks_count: int64link_keyword: stringissue_title: stringissue_body: stringbase_sha: stringhead_sha: stringdiff_url: stringdiff: stringchanged_files: stringchanged_files_exts: stringchanged_files_count: int64java_changed_files_count: int64kt_changed_files_count: int64py_changed_files_count: int64code_changed_files_count: int64repo_symbols_count: int64repo_tokens_count: int64repo_lines_count: int64repo_files_without_tests_count: int64changed_symbols_count: int64changed_tokens_count: int64changed_lines_count: int64changed_files_without_tests_count: int64issue_symbols_count: int64issue_words_count: int64issue_tokens_count: int64issue_lines_count: int64issue_links_count: int64issue_code_blocks_count: int64pull_create_at: timestamp[s]repo_stars: int64repo_language: stringrepo_languages: stringrepo_license: string
- 分割:
dev: 26666884 bytes, 4339 examplestest: 307292.97073058307 bytes, 50 examplestrain: 26359591.029269416 bytes, 4289 examples
- 下载大小: 19864708 bytes
- 数据集大小: 53333768.0 bytes
数据集文件路径
- 配置: py
dev: py/dev-*test: py/test-*train: py/train-*
- 配置: java
dev: java/dev-*test: java/test-*train: java/train-*
- 配置: kt
dev: kt/dev-*test: kt/test-*train: kt/train-*
搜集汇总
数据集介绍

构建方式
在软件工程领域,缺陷定位是提升代码维护效率的关键环节。LCA缺陷定位数据集通过系统化方法构建,其数据源自GitHub上真实项目的缺陷报告与修复记录。构建过程首先从开源仓库中筛选出符合许可要求的项目,随后提取与缺陷相关的议题描述、拉取请求及代码差异。数据集经过严格过滤与人工标注,确保每个数据点包含缺陷描述、仓库快照以及待修改文件列表,并依据编程语言划分为Java、Kotlin和Python三个独立配置,以支持跨语言研究。
使用方法
针对缺陷定位任务的研究与应用,该数据集提供了灵活的使用途径。用户可通过Hugging Face的load_dataset函数加载数据,并选择特定语言配置与数据划分。为获取完整的仓库内容,数据集附带了压缩的仓库文件,可利用hf_hub_download下载并解压,结合GitPython等工具访问历史提交与差异信息。数据集设计支持流式数据加载,通过HFDataSource可直接获取仓库在缺陷可重现状态下的快照,便于基线模型的实施与评估。相关工具脚本已开源,为复现与扩展研究提供了便利。
背景与挑战
背景概述
在软件工程领域,缺陷定位是提升软件维护效率的核心挑战之一。JetBrains Research于2024年发布的LCA缺陷定位数据集,作为长代码竞技场基准的重要组成部分,旨在推动自动化缺陷定位技术的研究。该数据集通过整合GitHub上的真实项目级数据,提供了包含缺陷问题描述、仓库快照及需修改文件列表的丰富资源。其设计聚焦于解决在大型代码库中,如何依据自然语言描述的缺陷报告精准定位相关源代码文件的难题,为代码智能与软件维护社区提供了高质量的评估基准。
当前挑战
缺陷定位任务面临多重挑战:在问题层面,自然语言描述的模糊性与代码语义的复杂性导致模型难以建立准确映射;在数据层面,构建过程需克服大规模代码仓库的异构性、版本历史的动态性以及测试文件的干扰过滤。此外,确保数据质量要求对海量开源项目进行精细筛选与人工标注,以提供可靠的金标准子集,这增加了数据采集与验证的复杂度。
常用场景
经典使用场景
在软件工程领域,缺陷定位是维护大型代码库的核心挑战之一。LCA缺陷定位数据集通过整合GitHub上的真实项目数据,为研究者提供了一个标准化的评估平台。该数据集最经典的使用场景是训练和评估基于自然语言处理与代码分析相结合的缺陷定位模型。给定一个包含错误描述的issue以及对应的代码仓库快照,模型需要精准识别出需要修改以修复缺陷的源代码文件。这一过程不仅涉及对自然语言描述的理解,还要求模型能够解析代码结构和语义,从而在庞大的代码库中定位到具体的缺陷位置。
解决学术问题
该数据集有效解决了软件工程中自动化缺陷定位的若干关键学术问题。传统方法往往依赖于启发式规则或简单的信息检索技术,难以处理复杂的长上下文代码环境。LCA数据集通过提供大规模、高质量的真实项目数据,支持了基于深度学习的端到端缺陷定位模型的研发。它促进了模型在理解自然语言与代码语义关联、处理长序列代码输入以及跨项目泛化能力等方面的研究进展,为提升缺陷定位的准确性和可扩展性提供了实证基础。
实际应用
在实际的软件开发与维护流程中,LCA缺陷定位数据集具有显著的应用价值。它能够为集成开发环境(IDE)或代码审查工具提供智能辅助功能,帮助开发者快速定位报告缺陷所涉及的代码文件,从而缩短调试时间。此外,该数据集也可用于构建自动化代码审查系统,在持续集成/持续部署(CI/CD)流水线中预先识别潜在缺陷关联,提升软件质量。对于大型开源项目维护团队,基于此类数据训练的模型可以高效处理海量issue,优化资源分配。
数据集最近研究
最新研究方向
在软件工程领域,缺陷定位作为提升开发效率的关键环节,正随着大语言模型技术的演进迎来新的研究浪潮。JetBrains-Research/lca-bug-localization数据集以其大规模、多语言、真实项目级的特性,为前沿研究提供了坚实基础。当前研究焦点集中于利用长上下文建模能力,将自然语言描述的缺陷报告与整个代码库的语义信息进行深度对齐,以精准识别需修改的文件。这一方向与代码智能助手、自动化调试等热点应用紧密相连,其进展有望显著降低软件维护成本,推动智能化软件开发工具的实用化进程。
以上内容由遇见数据集搜集并总结生成



