创建包含深度学习/机器学习相关报告、提交和论坛帖子的全面错误数据集

问题描述 投票:0回答:1

对于一个大学项目,我需要创建一个包含多个错误的数据集,每个错误都有一个与其关联的错误报告、GitHub 提交和 Stack Overflow 帖子。我正在寻找将这些元素链接在一起的方法,并考虑 BM25 等相似性评分技术。还有其他建议吗?

dataset stack-overflow knowledge-graph bug-reporting
1个回答
0
投票

为深度学习/机器学习创建错误数据集 了解挑战 为机器学习创建强大的错误数据集是一项具有挑战性的任务,因为:

  • 数据异构性:Bug 报告、代码片段和论坛帖子具有不同的结构和格式。
  • 噪音和歧义:错误报告和论坛中的自然语言通常包含拼写错误、不一致和主观意见。
  • 数据量:收集足够数量的高质量数据可能非常耗时。 潜在来源和数据提取 虽然 Bugzilla、GitHub 和 Stack Overflow 是很好的起点,但请考虑使您的来源多样化: 公共错误跟踪系统
  • 开源项目:许多开源项目使用公共错误跟踪器,例如 Bugzilla、Mantis 或 Jira。
  • 政府和企业错误数据库:一些公共组织出于研究目的发布匿名错误数据。 代码存储库
  • GitHub:探索各种项目的问题并提出请求。
  • GitLab:与 GitHub 类似,但侧重于开放协作。
  • Bitbucket:另一个流行的代码托管平台。 社区论坛和问答平台
  • Stack Overflow:与代码相关的问题和答案的丰富来源。
  • Reddit:r/programming、r/learnprogramming 等 Reddit 子版块以及特定于项目的子版块可能很有价值。
  • 其他论坛:探索不同编程语言或领域的专门论坛。 数据提取技术
  • API:许多平台提供用于以编程方式访问数据的 API。
  • 网页抓取:对于没有 API 的网站,请考虑使用 BeautifulSoup 或 Scrapy 等库。
  • 数据清理和预处理:去除噪音、不一致和不相关的信息。 数据丰富和特征工程 为了提高数据集的质量:
  • 自然语言处理 (NLP):从文本数据中提取关键字、实体和情感。
  • 代码分析:分析代码片段以识别模式、错误和依赖关系。
  • 功能工程:根据错误严重性、优先级、组件和其他元数据创建附加功能。 BM25 的相似度评分替代方案
  • TF-IDF:根据术语在文档和整个语料库中的频率来衡量术语。
  • 词嵌入:将单词表示为捕获语义和句法关系的密集向量。
  • 句子嵌入:将整个句子表示为用于比较的向量。
  • Jaccard 相似度:测量单词或标记集之间的重叠。
  • 余弦相似度:计算两个向量之间角度的余弦。
  • 编辑距离:测量将一个字符串转换为另一字符串所需的最小编辑次数。 深度学习技术
  • 文本分类:根据错误报告的类型、严重性或组件对其进行分类。
  • 错误预测:预测特定代码部分发生错误的可能性。
  • 错误本地化:识别导致错误的代码区域。
  • 错误相似性:查找类似的错误报告以帮助分类和解决。 其他注意事项
  • 数据隐私:留意数据隐私法规并获得必要的权限。
  • 数据不平衡:使用过采样或欠采样等技术解决数据集中的类不平衡问题。
  • 评估指标:选择适当的指标来评估您的模型,例如准确度、精确度、召回率和 F1 分数。
  • 实验:尝试数据源、预处理技术和模型的不同组合,找到适合您的特定问题的最佳方法。 通过仔细考虑这些因素并利用可用的工具和技术,您可以为深度学习或机器学习项目创建有价值的错误数据集。 您想更深入地研究数据集创建的特定方面,例如数据预处理、特征工程或模型选择吗?
© www.soinside.com 2019 - 2024. All rights reserved.