System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及开源系统,特别涉及一种开源项目中issues关联预测和关联类型分类方法。
技术介绍
1、github已经成为许多成功的开源协作项目中不可或缺的工具。在这个生态系统中,issues管理系统扮演着关键角色,作为一个中心枢纽,开发人员可以在其中报告错误、请求功能增强,评审项目任务等等。issues关联系统不仅促进了贡献者之间的沟通,还助于确定项目开发的优先级和跟踪任务进展。有效的issues管理对于项目保持组织良好、确保及时解决问题至关重要,从而显著提高软件项目开发的效率。然而,在处理大型github项目时,有效地管理issues带来了一系列挑战,例如numpy这样的项目已经累积了超过1万个issues,其中近2000个issues仍然处于未解决状态。issues处理人员通常面临高工作负荷,需要手动筛选每个issue,从而使得及时解决issues变得更加复杂。此外,issues的来源广泛,可能涉及各种各样的类型,包括修复bug、请求功能增强等等,这经常导致多个提交可能涉及到同一个issue或相互依赖的issues。识别issues之间的关联性对于简化管理过程至关重要。这可能包括将相关issue进行分组,以便集中处理,识别与先前解决issues之间的联系,从而避免重复工作,或者将issue分配给有类似问题经验的处理人员。这些措施不仅提高了issues处理的效率,还为处理相关issue提供了参考。尽管issues管理如此重要,github目前仍然缺乏足够的工具来有效识别这些issues之间的联系,这在功能上是一个显著的不足。
2、因此,在github中识别issues之间联系的挑战引起了研究人员的广泛关注。例如,相关研究使用信息检索技术(如tf-idf)和深度学习方法(如单词和文档嵌入)来推荐语义相关的issues。然而,他们的方法主要侧重于issues文本的相似性,通常仅仅确认issues之间的存在而不深入探讨不同类型的联系。因此,更深入地了解不同类型的联系,而不仅仅是它们的存在,对于获取关于问题处理过程更全面的信息至关重要。在这方面,也有相关方法已经应用深度学习来预测不同类型的issues的关联,然而他们的研究主要集中在jira系统内部的issues管理,这与github在issues关联管理方面显著不同。jira提供了高级功能,用户可以定义和管理多种issues链接类型,相比之下,github的issues链接机制相对基础。虽然github允许通过引用其他issues或在评论和pull request中使用标签来描述联系,但缺乏像jira那样的结构化方法来指定不同类型的关联。虽然github引入了将某些issues标记为“duplicate”的功能,但不支持直接从issue元数据中提取链接类型,因此jira和github在问题关联类型及其数据结构上存在显著差异,这些差异影响了issues数据在两者之间的可访问性和可用性。这种差异也成为基于深度学习方法预测github中issues关联类型的挑战。此外,github内部的issues链接数据存在明显的不平衡,主要存在两个主要问题,第一是在有和没有标记链接的问题之间存在着显著的差异,在github项目中近90%的问题都缺乏带标记的联系。第二是issues之间的关联类型存在不平衡,现有的方法和研究都发现,超过一半的标记链接是在issues和它们修复的bug的pull request之间的。以上这些挑战强调了当前方法的不足,以及迫切需要新的方法来有效地识别github中问题之间的联系。
技术实现思路
1、本专利技术提供一种开源项目中issues关联预测和关联类型分类方法,以弥补现有issues关联预测和关联类型分类方法的不足,提高关联issues推荐的准确度,帮助开发者发现issues之间的关联以提高开发的效率,深入挖掘关联issues之间的特征。
2、本专利技术实施例提供一种开源项目中issues关联预测和关联类型分类方法,包括以下步骤:
3、s1,issues关联预测阶段:用于预测两个issues组成的issues对之间是否存在关联,首先收集与issue相关的不同数据源,分别提取issues之间的显式、隐式的链接以及pull request的commit message链接,显式链接是由开发人员在提交issue后使用标签表示的链接,隐式链接为从issue处理历史和相关信息的分析中获得,而commit message中的链接则从message文本中进行匹配;然后提取出三种不同类别的特征来评估issues之间的相关性,提取的特征被用于训练二元分类器来预测任何两个给定issues之间是否存在链接;
4、s2,issues关联类型分类阶段:用于进一步预测在issues关联预测阶段中被预测为存在关联的issues对的关联类型,当前阶段的目标主要在issues关联预测阶段识别没有明确链接的issues,通过采用多分类器方法,提取深层次的语义特征和交互图特征对具有明确定义的链接类型的issues进行多分类器的训练。
5、可选地,在本专利技术的一个实施例中,issues关联预测阶段具体包括以下步骤:
6、s1.1,首先从开源项目中收集原始数据,包括项目中所有的issues、issue的所有comments、issues发生事件的时间线timeline和详细的html页面,以及项目的所有commits数据,所有收集到的数据被存储在json文件中,每个文件根据issue的编号进行命名;
7、s1.2,提取issues之间的所有潜在的链接,这些链接来自两个主要来源:issues的处理流数据和issues的详细html页面;首先遍历每个issue识别时间轴中记录的所有“cross-reference”事件以提取“隐式链接”,然后分析issues的文本内容,使用正则表达式识别issue的编号,接着对链接的类型进行了分类,根据相关方法中的语义模式,通过匹配链接位置周围的文本中的正则表达式来确定每个链接的类型,对于无法确定类型的链接,将其分类为“unclear”;通过提取和匹配步骤,得到了所有的隐式链接;如果当前的issue是pr,在本步骤中还会分析与pr相关的所有commits,使用正则表达式规则来检测链接,并确定在每个commit message中引用的目标issue,然后通过检查项目的issue文件来验证所引用的编号是否与项目中的实际issue有关,如果不是,就会被忽略,将pr commit message中的链接称为“pr_commit_links”;最后从issue的html详细信息页面右列的“development”模块中提取链接,提取的链接是由开发人员在开发过程中手动添加和维护的,被称为“显式链接”,表明链接issue是对当前issue的修复,虽然显式链接也记录在issue时间轴的连接事件中,但从连接事件直接解析并不会显示到当前链接的issue链接;所有标识的链接都以<s_number,t_num本文档来自技高网...
【技术保护点】
1.一种开源项目中issues关联预测和关联类型分类方法,其特征在于,
2.根据权利要求1所述的方法,其特征在于,issues关联预测阶段具体包括以下步骤:
3.根据权利要求1所述的方法,其特征在于,issues关联类型分类阶段具体包括以下步骤:
【技术特征摘要】
1.一种开源项目中issues关联预测和关联类型分类方法,其特征在于,
2.根据权利要求1所述的方法,其特征在于,issue...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。