一种多模型融合的开发任务关联方法、装置、设备及介质

文档序号:29254114发布日期:2022-03-16 10:45阅读:133来源:国知局
一种多模型融合的开发任务关联方法、装置、设备及介质

1.本技术涉及软件开发领域,特别是涉及一种多模型融合的开发任务关联方法、装置、设备及介质。


背景技术:

2.社交化编程(social coding)最早由开源社区github提出,旨在提供一个对开发者友好的软件开发环境,帮助开发者进行高效的互联、协同、开发。社交化编程的出现,极大地增强了代码复用以及开发任务解决效率。开发者可以自主地参与报告和讨论任务,这样一来,任务报告作为一类重要的软件开发知识,经常会被不同开发者在不同的时间报告出来。实践中经常会出现两个任务报告含有相关的信息,开发者可以在任务讨论过程中,通过url链接将相关的任务报告关联起来。在一个软件项目中,发现并关联相关的任务报告可以为开发者提供更多的资源和信息去解决目标任务,从而提高任务解决效率。
3.目前在类似github这样的协同开发社区中,关联任务报告的方法主要依赖于开发者人工链接。然而,现实世界的链接过程需要耗费大量的时间和人力。尤其对于那些规模庞大的软件项目,开发者可能需要查找大量的历史任务数据,才能通过它们的文本描述信息定位到相关的任务,并且这样的基于人工的关联方法主要依赖于个体开发者的经验和知识。因此,如何实现自动化的开发任务关联成为了一个亟待解决的技术问题。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

5.本发明的主要目的在于提供了一种多模型融合的开发任务关联方法、装置、设备及介质,旨在解决现有技术无法实现自动化的开发任务关联的技术问题。
6.为实现上述目的,本发明提供了一种多模型融合的开发任务关联方法,所述方法包括:
7.根据预设指标在协同开发社区中构建活跃开源项目集;
8.在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库;
9.在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集;
10.在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分;
11.将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述最终相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具。
12.可选地,所述根据预设指标在协同开发社区中构建活跃开源项目集的步骤,包括:
13.在协同开发社区github中,利用api搜集项目的基本信息数据,并根据star、fork、delete以及creation time指标筛选出流行开源项目;
14.将所述筛选出的流行开源项目构建活跃开源项目集。
15.可选地,所述在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库的步骤,包括:
16.在所述活跃开源项目集中,利用github的issue api和pull request(pr)api采集所有项目的任务报告数据,具体数据搜集内容为:任务id、任务处理状态、提交者、任务标题、任务描述、任务评论、提交时间、类别、标签、里程碑等;
17.根据所述搜集到的报告数据构建备选任务报告数据库。
18.可选地,所述在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集的步骤,包括:
19.在所述备选任务报告数据库中,利用正则表达式抽取所有任务报告中的url链接信息;
20.利用github的cross-referenced api检查所述任务报告中的url链接信息,筛选出实际的任务报告关联连接,根据所述任务报告关联连接构建关联信息基准库;
21.在所述关联信息基准库中去除不包含链接信息的任务报告数据,形成最终的任务报告数据集。
22.可选地,所述在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分的步骤之前,还包括:
23.在所述任务报告数据集中提取每个任务报告数据中的文本数据,包括任务报告标题、描述和评论;
24.在所述文本数据中删除停用词、数字、标点符号和其他非字母字符;
25.使用nltk中的snowball stemmer技术将剩余单词转换为根形式,以减少特征维度并将相似的单词统一为一个共同的表示,以获得预处理后的任务报告数据。
26.可选地,所述在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和任务关联网络模型,获得计算查询任务和每个候选任务之间的相似性得分的步骤,包括:
27.在所述任务报告数据集中,根据任务报告的创建时间选取最新的40%样本作为查询任务数据组,将所述任务报告数据作为候选任务数据组;
28.使用结构数据解析模型计算所述查询任务和每个候选任务之间的结构信息(structural information)相似度scores;
29.使用文本语义表示模型计算所述查询任务和每个候选任务之间的文本信息(textual information)相似度score
t

30.使用历史关联度模型计算所述查询任务和每个候选任务之间的历史信息(historical information)相似度scoreh。
31.可选地,所述将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述相似度得分构建基于多模型融合的开
发任务关联模型,以生成任务报告关联工具的步骤,包括:
32.将所述查询任务和每个候选任务之间的相似性得分进行加权求和以获得最终相似度得分,并根据所述最终相似度得分构建基于多模型融合的开发任务关联模型;
33.利用top-k召回率评价指标,以及所述任务报告数据集,对模型进行评估;
34.根据评估结果选取最优子模型权重组合形成任务报告关联工具。
35.此外,为实现上述目的,本发明还提出一种多模型融合的开发任务关联装置,所述装置包括:
36.项目构建模块,用于根据预设指标在协同开发社区中构建活跃开源项目集;
37.数据构建模块,用于在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库;
38.链接获取模块,用于在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集;
39.任务计算模块,用于在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分;
40.工具生成模块,用于将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述最终相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具。
41.此外,为实现上述目的,本发明还提出一种计算机设备,所述计算机设备包括:存储器,处理器以及存储在所述存储器上并可在所述处理器上运行的多模型融合的开发任务关联程序,所述多模型融合的开发任务关联程序配置为实现如上文所述的多模型融合的开发任务关联方法。
42.此外,为实现上述目的,本发明还提出一种介质,所述介质上存储有多模型融合的开发任务关联程序,所述多模型融合的开发任务关联程序被处理器执行时实现如上文所述的多模型融合的开发任务关联方法的步骤。
43.本发明根据预设指标在协同开发社区中构建活跃开源项目集;在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库;在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集;在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分;将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述最终相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具,通过与深度学习技术结合实现了为新任务推荐相关的任务报告,通过将相似度得分进行加权求和以筛选出最优权重和最终构建任务报告关联工具,实现了自动化的开发任务关联。
附图说明
44.图1是本发明实施例方案涉及的硬件运行环境的多模型融合的开发任务关联设备的结构示意图;
45.图2为本发明多模型融合的开发任务关联方法第一实施例的流程示意图。
具体实施方式
46.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
47.参照图1,图1为本发明实施例方案涉及的硬件运行环境的多模型融合的开发任务关联设备结构示意图。
48.如图1所示,该多模型融合的开发任务关联设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
49.本领域技术人员可以理解,图1中示出的结构并不构成对多模型融合的开发任务关联设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
50.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及多模型融合的开发任务关联程序。
51.在图1所示的多模型融合的开发任务关联设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明多模型融合的开发任务关联设备中的处理器1001、存储器1005可以设置在多模型融合的开发任务关联设备中,所述多模型融合的开发任务关联设备通过处理器1001调用存储器1005中存储的多模型融合的开发任务关联程序,并执行本发明实施例提供的多模型融合的开发任务关联方法。
52.本发明实施例提供了一种多模型融合的开发任务关联方法,参照图2,图2为本发明多模型融合的开发任务关联方法第一实施例的流程示意图。
53.本实施例中,所述多模型融合的开发任务关联方法包括以下步骤:
54.步骤s10:根据预设指标在协同开发社区中构建活跃开源项目集。
55.在具体实施中,利用github的api搜集满足以下条件的流行开源项目:至少含有10个star;至少被fork了1次;没有被delete,且不是fork项目;项目创建于2010年以后和2021年以前;同时筛选出满足以下条件的活跃开源项目:至少含有100个issue或pull request;至少含有3个代码贡献者;近3个月内有代码提交、开发任务处理、贡献合并、提交评论等开发活动。
56.进一步地,所述根据预设指标在协同开发社区中构建活跃开源项目集的步骤,包括:在协同开发社区github中,利用api搜集项目的基本信息数据,并根据star、fork、delete以及creation time指标筛选出流行开源项目;将所述筛选出的流行开源项目构建活跃开源项目集。
57.步骤s20:在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据
以构建备选任务报告数据库。
58.在具体实施中基于活跃开源项目集,利用github的issue api采集所有项目的issue报告数据,具体数据搜集内容包括:任务id、任务处理状态(开放、关闭)、提交者、任务标题、任务描述、任务评论、提交时间、类别(“0”代表issue)、标签、里程碑等;利用github的pull request(pr)api采集所有项目的pr报告数据,具体数据搜集内容包括:任务id、任务处理状态(开放、关闭)、提交者、任务标题、任务描述、任务评论、提交时间、类别(“1”代表pr)、标签、里程碑等;组合所有项目的issue报告数据和所有项目的pr报告数据的采集数据结果,构建备选任务报告数据库。
59.进一步地,所述在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库的步骤,包括:在所述活跃开源项目集中,利用github的issue api和pull request(pr)api采集所有项目的任务报告数据,具体数据搜集内容为:任务id、任务处理状态、提交者、任务标题、任务描述、任务评论、提交时间、类别、标签、里程碑等;根据所述搜集到的报告数据构建备选任务报告数据库。
60.步骤s30:在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集。
61.在具体实施中,对备选任务报告数据集,利用正则表达式(github.com/[a-za-z0-9-_.]/[a-za-z0-9-_.]/issues|pull/[0-9]+))抽取所有任务报告中的url链接信息;利用github的cross-referenced api检查任务报告中的链接信息,筛选出实际的任务报告关联链接,构建任务关联信息基准库。在具体工作中,只考虑项目内部链接,暂不考虑跨项目的任务链接。根据任务关联信息基准库,去除不包含链接信息的任务报告数据,形成最终的任务报告数据集;
[0062]
进一步地,所述在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集的步骤,包括:在所述备选任务报告数据库中,利用正则表达式抽取所有任务报告中的url链接信息;利用github的cross-referenced api检查所述任务报告中的url链接信息,筛选出实际的任务报告关联连接,根据所述任务报告关联连接构建关联信息基准库;在所述关联信息基准库中去除不包含链接信息的任务报告数据,形成最终的任务报告数据集。
[0063]
步骤s40:在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分。
[0064]
进一步地,所述在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分的步骤之前,还包括:在所述任务报告数据集中提取每个任务报告数据中的文本数据,包括任务报告的标题、描述和评论;在所述文本数据中删除停用词、数字、标点符号和其他非字母字符;使用nltk中的snowball stemmer技术将剩余单词转换为根形式,以减少特征维度并将相似的单词统一为一个共同的表示,以获得预处理后的任务报告数据。
[0065]
在具体实施中,使用nltk中的snowball stemmer技术将剩余的单词转换为它们的根形式,以减少特征维度并将相似的单词统一为一个共同的表示。
[0066]
进一步地,所述在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分的步骤,包括:在所述任务报告数据集中,根据任务报告的创建时间选取最新的40%样本作为查询任务数据组,将所述任务报告数据作为候选任务数据组;使用结构数据解析模型计算所述查询任务和每个候选任务之间的结构信息(structural information)相似度scores;使用文本语义表示模型计算所述查询任务和每个候选任务之间的文本信息(textual information)相似度score
t
;使用历史关联度模型计算所述查询任务和每个候选任务之间的历史信息(historical information)相似度scoreh。
[0067]
在具体实施中,对于每个项目,根据任务报告的创建时间,选取最新的40%样本作为查询任务数据组,所有任务报告数据均为候选任务数据组;抽取并分析任务报告的结构化数据,使用结构数据解析模型计算查询任务和每个候选任务(任务创建时间需早于查询任务)之间的结构信息相似度scores。任务报告的结构化数据变量包括:任务处理状态state(布尔类型,“0”代表开放、“1”代表关闭)、提交者submitter(文本类型)、类别标签type(布尔类型,“0”代表issue,“1”代表pr)、标签label(文本类型)、里程碑milestone(文本类型)、描述复杂度complexity(数值型,任务报告标题和描述的单词总数)、评论comment(数值型,评论数量)等。其中,对于特定的文本类型变量x,需要对任务报告数据中的所有x变量值进行汇总并去重,得到n个不同x值,然后依次用自然数字{1,

,n}对不同的x值进行编码,在数值和x文本值之间建立一一映射;对于具有多个label的任务报告,仅选取第一个label作为分析对象。然后,对于每个任务报告构建形成表征其结构信息的特征向量{state,submitter,type,label,milestone,complexity,comment}。对于给定两个任务报告的结构信息特征向量v
s1
和v
s2
,利用余弦相似度计算它们的结构信息相似度得分scores,计算方法如下:
[0068][0069]
抽取并分析任务报告的文本数据,使用文本语义表示模型计算查询任务和每个候选任务(任务创建时间需早于查询任务)之间的文本信息相似度score
t
。基于预处理过的任务报告文档数据(任务标题、任务描述和任务评论),使用bert文本表示模型计算查询任务和每个候选任务(任务创建时间需早于查询任务)之间的文本相似度scoreb。调用bert_serving.client库中的bertclient函数对任务报告中的每个句子进行特征提取,表征向量维度阈值可设置为100、200、500、1000等。对于给定两个任务报告的文本信息特征向量v
t1
和v
t2
,利用余弦相似度计算它们的文本信息相似度得分score
t
,计算方法见公式:
[0070][0071]
根据任务报告提交者信息,抽取该提交者的所有历史提交或者参与评论的任务报告数据,使用历史关联度模型计算所述查询任务和每个候选任务(任务创建时间需早于查询任务)之间的历史信息(historical information)相似度scoreh。根据任务报告的提交者信息,从所述任务报告数据集中抽取该提交者的历史参与(提交或者参与评论)任务报告
id,按照任务报告的提交时间逆序排列,对于每个任务报告构建形成表征其提交者历史信息的特征向量{id1,id2,

,idn}。其中,表征向量维度阈值可设置为100、200、500、1000等;若该提交者尚未产生历史参与信息,或者已有维度低于维度阈值,则特征向量由“0”填充。因此,对于给定两个任务报告的历史信息特征向量v
h1
和v
h2
,利用余弦相似度计算它们的历史信息相似度得分scoreh,计算方法见公式:
[0072][0073]
步骤s50:将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述最终相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具。
[0074]
进一步地,所述将所述查询任务和每个候选任务之间的相似性得分进行加权求和并得到每个任务报告之间的最终相似度得分,根据所述相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具的步骤,包括:将所述查询任务和每个候选任务之间的相似性得分进行加权求和以获得最终相似度得分,并根据所述最终相似度得分构建基于多模型融合的开发任务关联模型;利用top-k召回率级评价指标,以及所述任务报告数据集,对模型进行评估;根据评估结果选取最优子模型权重组合形成任务报告关联工具。
[0075]
在具体实施中,将上文所述得到的三种子模型相似度评分进行加权求和,构建基于多模型融合的开发任务关联模型,并利用多种评价指标进行模型评估,选取最优的子模型权重组合,形成最终的任务报告关联工具。具体实施步骤如下:将s5得到的三种相似度评分进行加权求和,三个评分权重分别为a、b、c,从而计算每个任务报告对之间的最终相似度得分score,计算方式见公式:
[0076]
score=a.scores+b.score
t
+c.scoreh[0077]
利用top-k召回率(r@k)评价指标,以及任务关联信息基准库,对模型进行评估,其中,r@k目的是检查top-k推荐结果是否正确。对于待查询任务报告i,其r@k可以计算如下公式,实际评估时,k可以选取1-10:
[0078][0079]
可以理解的是,分别赋予上述三个评分权重a、b、c不同的权值(总和为1),根据上文提到的模型评估指标,对所有项目的查询任务报告关联结果进行性能评估,计算所有项目的r@1、r@5、r@10平均值,并将三个指标进行相加求和,形成最终评估指标。根据最终评估指标,选择最优的子模型权重组合,在此基础上结合三个子模型形成最终的任务报告关联工具。
[0080]
本实施例根据预设指标在协同开发社区中构建活跃开源项目集;在所述活跃开源项目集中,利用api采集所有项目的开发任务报告数据以构建备选任务报告数据库;在所述备选任务报告数据库中利用正则表达式抽取所有任务报告中的url链接信息以生成任务报告数据集;在所述任务报告数据集中构建查询任务数据组和候选任务数据组,分别利用结构数据解析模型、文本语义表示模型和历史关联度模型,获得计算查询任务和每个候选任务之间的相似性得分;将所述查询任务和每个候选任务之间的相似性得分进行加权求和并
得到每个任务报告之间的最终相似度得分,根据所述最终相似度得分构建基于多模型融合的开发任务关联模型,以生成任务报告关联工具,通过与深度学习技术结合实现了为新任务推荐相关的任务报告,通过将相似度得分进行加权求和以筛选出最优权重和最终构建任务报告关联工具,实现了自动化的开发任务关联。
[0081]
此外,本发明实施例还提出一种介质,所述介质上存储有多模型融合的开发任务关联程序,所述多模型融合的开发任务关联程序被处理器执行时实现如上文所述的多模型融合的开发任务关联方法的步骤。
[0082]
本发明多模型融合的开发任务关联装置的实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
[0083]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0084]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0085]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0086]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1