本技术涉及软件开发,特别是一种软件开发需求的预测方法及电子设备。
背景技术:
1、随着信息技术的快速发展,软件开发已成为企业核心竞争力的关键组成部分。alm(application lifecycle management,应用生命周期管理)是一种覆盖整个软件开发和运维过程的综合管理方法,涵盖了需求分析、设计开发、测试验证以及部署运维等各个阶段。尽管alm在一定程度上提升了开发效率和质量,但由于开发人员的技能水平和经验差异,制定的开发需求常常存在不合理或不必要的情况,进而导致项目延期、成本超支和质量问题频发。
2、因此,亟需一种新的软件开发需求的预测方法。
技术实现思路
1、鉴于上述问题,本技术实施例提供了一种软件开发需求的预测方法及电子设备,以便克服上述问题或者至少部分地解决上述问题。
2、本技术第一方面,提供了一种软件开发需求的预测方法,所述方法包括:
3、获取待开发软件的项目信息;
4、将所述项目信息输入预先训练的开发需求预测模型,预测得到所述待开发软件的目标开发需求;
5、所述开发需求预测模型是基于以目标函数作为损失函数,并基于带有标签的样本数据和不带标签的样本数据训练得到的,其中,所述目标函数是基于带有标签的样本数据确定的第一目标子函数,以及基于所述带有标签的样本数据和不带标签的样本数据确定的第二目标子函数共同确定的,所述带有标签的样本数据包括项目信息以及与所述项目信息关联的开发需求。
6、可选地,基于所述带有标签的样本数据和所述不带标签的样本数据,确定所述第二目标子函数,包括:
7、对样本数据进行两两组合,得到多个样本数据组;
8、分别计算所述多个样本数据组各自的相似性权重,并获取每一个所述样本数据组中的两个所述样本数据各自的特征向量;
9、根据计算得到的所述多个样本数据组的相似性权重,确定所述多个样本数据组的拉普拉斯矩阵,根据所述拉普拉斯矩阵,确定约束条件,并根据每一个所述样本数据组中的两个所述样本数据各自的特征向量,确定每一个所述样本数据组中的两个所述样本数据的空间距离;
10、根据每一个所述样本数据组中的两个所述样本数据的空间距离,以及所述约束条件,确定所述第二目标子函数。
11、可选地,所述根据每一个所述样本数据组中的两个所述样本数据各自的特征向量,确定每一个所述样本数据组中的两个所述样本数据的空间距离,包括:
12、根据任一个样本数据组中的两个样本数据各自的特征向量,分别确定所述样本数据组中的两个所述样本数据之间的第一距离和第二距离,所述第一距离为所述样本数据组中的两个所述样本数据在初始空间的距离,所述第二距离为所述样本数据组中的两个所述样本数据在高维空间的距离;
13、所述根据每一个所述样本数据组中的两个所述样本数据的空间距离,以及所述约束条件,确定所述第二目标子函数,包括:
14、分别对每一个所述样本数据组中的两个所述样本数据的所述第一距离和所述第二距离进行正则化处理,得到正则化处理结果;
15、根据所述正则化处理结果,以及所述约束条件,确定所述第二目标子函数。
16、可选地,所述根据计算得到的所述多个样本数据组的相似性权重,确定所述多个样本数据组的拉普拉斯矩阵,包括:
17、根据所述多个样本数据组的相似性权重,构建所述多个样本数据组的邻接矩阵;
18、根据所述多个样本数据组的邻接矩阵,计算得到所述拉普拉斯矩阵。
19、可选地,所述将所述项目信息输入预先训练的开发需求预测模型之前,所述预测方法还包括:
20、获取预先构建的知识图谱,所述知识图谱包括关联有开发需求的项目信息和未关联开发需求的项目信息;
21、将所述关联有开发需求的项目信息作为带有标签的样本数据,将所述未关联开发需求的项目信息作为不带标签的样本数据,对预设模型进行模型训练,得到预测结果;
22、基于所述预测结果和所述目标函数,确定目标函数值;
23、在所述目标函数值满足预设的预测精度要求的情况下,结束训练,并将当前的所述预设模型作为所述开发需求预测模型;
24、在所述目标函数值不满足所述预测精度要求的情况下,调整所述预设模型的模型参数,并对调整后的预设模型继续进行迭代训练。
25、可选地,将所述知识图谱中的项目信息作为模型输入,所述对预设模型进行模型训练,得到预测结果,包括:
26、将所述知识图谱中任一个所述项目信息输入到所述预设模型的词嵌入层,得到该项目信息的第一级特征向量;
27、将所述第一级特征向量输入所述预设模型的柔性图卷积层,得到该项目信息的第二级特征向量;
28、将所述第二级特征向量输入所述预设模型的卷积玻尔兹曼机模块,得到该项目信息的第三级特征向量,将所述第三级特征向量作为所述预测结果;
29、所述第一级特征向量、所述第二级特征向量和所述第三级特征向量的向量维度逐级递增。
30、可选地,所述卷积玻尔兹曼机模块包括一维卷积层和受限玻尔兹曼机,所述将所述第二级特征向量输入所述预设模型的卷积玻尔兹曼机模块,得到该项目信息的第三级特征向量,包括:
31、将所述第二级特征向量输入所述一维卷积层,对所述第二级特征向量进行一维卷积操作,得到所述第二级特征向量的高维特征;
32、将所述第二级特征向量的高维特征输入所述受限玻尔兹曼机,得到所述第三级特征向量。
33、可选地,所述柔性图卷积层包括图卷积模块和多头注意力机制模块,所述将所述第一级特征向量输入所述预设模型的柔性图卷积层,得到该项目信息的第二级特征向量,包括:
34、将所述第一级特征向量输入所述图卷积模块,计算所述第一级特征向量的余弦相似度;
35、根据所述第一级特征向量的余弦相似度,设置所述图卷积模块的邻接矩阵;
36、将所述邻接矩阵输入所述多头注意力机制模块,以更新所述邻接矩阵
37、根据所述更新后的所述邻接矩阵,构建所述第一级特征向量的对称规范化拉普拉斯矩阵;
38、对所述对称规范化拉普拉斯矩阵进行特征分解,得到所述第二级特征向量。
39、可选地,在得到所述第二级特征向量之后,所述预测方法还包括:
40、将所述第二级特征向量输入所述预设模型的池化层,对所述第二级特征向量进行池化操作;
41、基于对所述第二级特征向量进行池化操作的结果,进行线性变换,得到所述第二级特征向量的线性变换值。
42、本技术第二方面,提供了一种软件开发需求的预测系统,所述系统包括:
43、获取模块,用于获取待开发软件的项目信息,所述项目信息用于表征所述待开发软件的第一文本描述;
44、预测模块,用于将所述项目信息输入预先训练的开发需求预测模型,预测得到所述待开发软件的目标开发需求,开发需求用于表征所述待开发软件的第二文本描述;
45、所述开发需求预测模型是基于以目标函数作为损失函数,并基于带有标签的样本数据和不带标签的样本数据训练得到的,其中,所述目标函数是基于带有标签的样本数据确定的第一目标子函数,以及基于所述带有标签的样本数据和不带标签的样本数据确定的第二目标子函数共同确定的,所述带有标签的样本数据包括项目信息以及与所述项目信息关联的开发需求。
46、可选地,所述系统还包括:
47、组合子模块,用于对样本数据进行两两组合,得到多个样本数据组;
48、计算与获取子模块,用于分别计算所述多个样本数据组各自的相似性权重,并获取每一个所述样本数据组中的两个所述样本数据各自的特征向量;
49、第一确定子模块,用于根据计算得到的所述多个样本数据组的相似性权重,确定所述多个样本数据组的拉普拉斯矩阵;
50、第二确定子模块,用于根据所述拉普拉斯矩阵,确定约束条件;
51、第三确定子模块,用于根据每一个所述样本数据组中的两个所述样本数据各自的特征向量,确定每一个所述样本数据组中的两个所述样本数据的空间距离;
52、第四确定子模块,用于根据每一个所述样本数据组中的两个所述样本数据的空间距离,以及所述约束条件,确定所述第二目标子函数。
53、可选地,所述根据每一个所述样本数据组中的两个所述样本数据各自的特征向量,确定每一个所述样本数据组中的两个所述样本数据的空间距离,所述第三确定子模块,包括:
54、第一确定子单元,用于根据任一个样本数据组中的两个样本数据各自的特征向量,分别确定所述样本数据组中的两个所述样本数据之间的第一距离和第二距离,所述第一距离为所述样本数据组中的两个所述样本数据在初始空间的距离,所述第二距离为所述样本数据组中的两个所述样本数据在高维空间的距离;
55、所述根据每一个所述样本数据组中的两个所述样本数据的空间距离,以及所述约束条件,确定所述第二目标子函数,所述系统还包括:
56、正则化子单元,用于分别对每一个所述样本数据组中的两个所述样本数据的所述第一距离和所述第二距离进行正则化处理,得到正则化处理结果;
57、第二确定子单元,用于根据所述正则化处理结果,以及所述约束条件,确定所述第二目标子函数。
58、可选地,所述根据计算得到的所述多个样本数据组的相似性权重,确定所述多个样本数据组的拉普拉斯矩阵,所述第一确定子模块,包括:
59、第一构建子单元,用于根据所述多个样本数据组的相似性权重,构建所述多个样本数据组的邻接矩阵;
60、第一计算子单元,用于根据所述多个样本数据组的邻接矩阵,计算得到所述拉普拉斯矩阵。
61、可选地,所述系统还包括:
62、获取子模块,用于获取预先构建的知识图谱,所述知识图谱包括关联有开发需求的项目信息和未关联开发需求的项目信息;
63、模型训练子模块,用于将所述关联有开发需求的项目信息作为带有标签的样本数据,将所述未关联开发需求的项目信息作为不带标签的样本数据,对预设模型进行模型训练,得到预测结果;
64、第五确定子模块,用于基于所述预测结果和所述目标函数,确定目标函数值;
65、在所述目标函数值满足预设的预测精度要求的情况下,结束训练,并将当前的所述预设模型作为所述开发需求预测模型;
66、在所述目标函数值不满足所述预测精度要求的情况下,调整所述预设模型的模型参数,并对调整后的预设模型继续进行迭代训练。
67、可选地,将所述知识图谱中的项目信息作为模型输入,所述对预设模型进行模型训练,得到预测结果,所述模型训练子模块,包括:
68、第一输入子单元,用于将知识图谱中任一个所述项目信息输入到所述预设模型的词嵌入层,得到该项目信息的第一级特征向量;
69、第二输入子单元,用于将所述第一级特征向量输入所述预设模型的柔性图卷积层,得到该项目信息的第二级特征向量;
70、第三输入子单元,用于将所述第二级特征向量输入所述预设模型的卷积玻尔兹曼机模块,得到该项目信息的第三级特征向量,将所述第三级特征向量作为所述预测结果;所述第一级特征向量、所述第二级特征向量和所述第三级特征向量的向量维度逐级递增。
71、可选地,所述卷积玻尔兹曼机模块包括一维卷积层和受限玻尔兹曼机,所述将所述第二级特征向量输入所述预设模型的卷积玻尔兹曼机模块,得到该项目信息的第三级特征向量,所述第三输入子单元,包括:
72、第四输入子单元,用于将所述第二级特征向量输入所述一维卷积层,对所述第二级特征向量进行一维卷积操作,得到所述第二级特征向量的高维特征;
73、第五输入子单元,用于将所述第二级特征向量的高维特征输入所述受限玻尔兹曼机,得到所述第三级特征向量。
74、可选地,所述柔性图卷积层包括图卷积模块和多头注意力机制模块,所述将所述第一级特征向量输入所述预设模型的柔性图卷积层,得到该项目信息的第二级特征向量,所述第二输入子单元,包括:
75、第二计算子单元,用于将所述第一级特征向量输入所述图卷积模块,计算所述第一级特征向量的余弦相似度;
76、设置子单元,用于根据所述第一级特征向量的余弦相似度,设置所述图卷积模块的邻接矩阵;
77、更新子单元,用于将所述邻接矩阵输入所述多头注意力机制模块,以更新所述邻接矩阵
78、第二构建子单元,用于根据所述更新后的所述邻接矩阵,构建所述第一级特征向量的对称规范化拉普拉斯矩阵;
79、特征分解子单元,用于对所述对称规范化拉普拉斯矩阵进行特征分解,得到所述第二级特征向量。
80、可选地,所述系统还包括:
81、池化子模块,用于将所述第二级特征向量输入所述预设模型的池化层,对所述第二级特征向量进行池化操作;
82、线性变换子模块,用于基于对所述第二级特征向量进行池化操作的结果,进行线性变换,得到所述第二级特征向量的线性变换值。
83、本技术第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如本技术第一方面所述的软件开发需求的预测方法。
84、本技术的有益效果:
85、本技术提供了一种软件开发需求的预测方法,所述方法包括:获取待开发软件的项目信息;将所述项目信息输入预先训练的开发需求预测模型,预测得到所述待开发软件的目标开发需求;所述开发需求预测模型是基于以目标函数作为损失函数,并基于带有标签的样本数据和不带标签的样本数据训练得到的,其中,所述目标函数是基于带有标签的样本数据确定的第一目标子函数,以及基于所述带有标签的样本数据和不带标签的样本数据确定的第二目标子函数共同确定的,所述带有标签的样本数据包括项目信息以及与所述项目信息关联的开发需求。本技术通过训练开发需求预测模型,能够准确预测待开发软件的目标开发需求,避免了开发人员凭经验或主观判断制定不合理需求的情况,此外,在训练开发需求预测模型时不仅利用了带标签的样本数据,还利用了不带标签的样本数据进行学习,不仅提高了数据的利用率,还提高了模型的预测精度以及泛化能力。
1.一种软件开发需求的预测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的软件开发需求的预测方法,其特征在于,基于所述带有标签的样本数据和所述不带标签的样本数据,确定所述第二目标子函数,包括:
3.根据权利要求2所述的软件开发需求的预测方法,其特征在于,所述根据每一个所述样本数据组中的两个所述样本数据各自的特征向量,确定每一个所述样本数据组中的两个所述样本数据的空间距离,包括:
4.根据权利要求2所述的软件开发需求的预测方法,其特征在于,所述根据计算得到的所述多个样本数据组的相似性权重,确定所述多个样本数据组的拉普拉斯矩阵,包括:
5.根据权利要求1-4中任一项所述的软件开发需求的预测方法,其特征在于,所述将所述项目信息输入预先训练的开发需求预测模型之前,所述预测方法还包括:
6.根据权利要求5所述的软件开发需求的预测方法,其特征在于,将所述知识图谱中的项目信息作为模型输入,所述对预设模型进行模型训练,得到预测结果,包括:
7.根据权利要求6所述的软件开发需求的预测方法,其特征在于,所述卷积玻尔兹曼机模块包括一维卷积层和受限玻尔兹曼机,所述将所述第二级特征向量输入所述预设模型的卷积玻尔兹曼机模块,得到该项目信息的第三级特征向量,包括:
8.根据权利要求6所述的软件开发需求的预测方法,其特征在于,所述柔性图卷积层包括图卷积模块和多头注意力机制模块,所述将所述第一级特征向量输入所述预设模型的柔性图卷积层,得到该项目信息的第二级特征向量,包括:
9.根据权利要求8所述的软件开发需求的预测方法,其特征在于,在得到所述第二级特征向量之后,所述预测方法还包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1-9中任一项所述的软件开发需求的预测方法。
