本技術(shù)涉及軟件開發(fā),特別是一種軟件開發(fā)需求的預測方法及電子設備。
背景技術(shù):
1、隨著信息技術(shù)的快速發(fā)展,軟件開發(fā)已成為企業(yè)核心競爭力的關(guān)鍵組成部分。alm(application?lifecycle?management,應用生命周期管理)是一種覆蓋整個軟件開發(fā)和運維過程的綜合管理方法,涵蓋了需求分析、設計開發(fā)、測試驗證以及部署運維等各個階段。盡管alm在一定程度上提升了開發(fā)效率和質(zhì)量,但由于開發(fā)人員的技能水平和經(jīng)驗差異,制定的開發(fā)需求常常存在不合理或不必要的情況,進而導致項目延期、成本超支和質(zhì)量問題頻發(fā)。
2、因此,亟需一種新的軟件開發(fā)需求的預測方法。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,本技術(shù)實施例提供了一種軟件開發(fā)需求的預測方法及電子設備,以便克服上述問題或者至少部分地解決上述問題。
2、本技術(shù)第一方面,提供了一種軟件開發(fā)需求的預測方法,所述方法包括:
3、獲取待開發(fā)軟件的項目信息;
4、將所述項目信息輸入預先訓練的開發(fā)需求預測模型,預測得到所述待開發(fā)軟件的目標開發(fā)需求;
5、所述開發(fā)需求預測模型是基于以目標函數(shù)作為損失函數(shù),并基于帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)訓練得到的,其中,所述目標函數(shù)是基于帶有標簽的樣本數(shù)據(jù)確定的第一目標子函數(shù),以及基于所述帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)確定的第二目標子函數(shù)共同確定的,所述帶有標簽的樣本數(shù)據(jù)包括項目信息以及與所述項目信息關(guān)聯(lián)的開發(fā)需求。
6、可選地,基于所述帶有標簽的樣本數(shù)據(jù)和所述不帶標簽的樣本數(shù)據(jù),確定所述第二目標子函數(shù),包括:
7、對樣本數(shù)據(jù)進行兩兩組合,得到多個樣本數(shù)據(jù)組;
8、分別計算所述多個樣本數(shù)據(jù)組各自的相似性權(quán)重,并獲取每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量;
9、根據(jù)計算得到的所述多個樣本數(shù)據(jù)組的相似性權(quán)重,確定所述多個樣本數(shù)據(jù)組的拉普拉斯矩陣,根據(jù)所述拉普拉斯矩陣,確定約束條件,并根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量,確定每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離;
10、根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,以及所述約束條件,確定所述第二目標子函數(shù)。
11、可選地,所述根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量,確定每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,包括:
12、根據(jù)任一個樣本數(shù)據(jù)組中的兩個樣本數(shù)據(jù)各自的特征向量,分別確定所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)之間的第一距離和第二距離,所述第一距離為所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)在初始空間的距離,所述第二距離為所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)在高維空間的距離;
13、所述根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,以及所述約束條件,確定所述第二目標子函數(shù),包括:
14、分別對每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的所述第一距離和所述第二距離進行正則化處理,得到正則化處理結(jié)果;
15、根據(jù)所述正則化處理結(jié)果,以及所述約束條件,確定所述第二目標子函數(shù)。
16、可選地,所述根據(jù)計算得到的所述多個樣本數(shù)據(jù)組的相似性權(quán)重,確定所述多個樣本數(shù)據(jù)組的拉普拉斯矩陣,包括:
17、根據(jù)所述多個樣本數(shù)據(jù)組的相似性權(quán)重,構(gòu)建所述多個樣本數(shù)據(jù)組的鄰接矩陣;
18、根據(jù)所述多個樣本數(shù)據(jù)組的鄰接矩陣,計算得到所述拉普拉斯矩陣。
19、可選地,所述將所述項目信息輸入預先訓練的開發(fā)需求預測模型之前,所述預測方法還包括:
20、獲取預先構(gòu)建的知識圖譜,所述知識圖譜包括關(guān)聯(lián)有開發(fā)需求的項目信息和未關(guān)聯(lián)開發(fā)需求的項目信息;
21、將所述關(guān)聯(lián)有開發(fā)需求的項目信息作為帶有標簽的樣本數(shù)據(jù),將所述未關(guān)聯(lián)開發(fā)需求的項目信息作為不帶標簽的樣本數(shù)據(jù),對預設模型進行模型訓練,得到預測結(jié)果;
22、基于所述預測結(jié)果和所述目標函數(shù),確定目標函數(shù)值;
23、在所述目標函數(shù)值滿足預設的預測精度要求的情況下,結(jié)束訓練,并將當前的所述預設模型作為所述開發(fā)需求預測模型;
24、在所述目標函數(shù)值不滿足所述預測精度要求的情況下,調(diào)整所述預設模型的模型參數(shù),并對調(diào)整后的預設模型繼續(xù)進行迭代訓練。
25、可選地,將所述知識圖譜中的項目信息作為模型輸入,所述對預設模型進行模型訓練,得到預測結(jié)果,包括:
26、將所述知識圖譜中任一個所述項目信息輸入到所述預設模型的詞嵌入層,得到該項目信息的第一級特征向量;
27、將所述第一級特征向量輸入所述預設模型的柔性圖卷積層,得到該項目信息的第二級特征向量;
28、將所述第二級特征向量輸入所述預設模型的卷積玻爾茲曼機模塊,得到該項目信息的第三級特征向量,將所述第三級特征向量作為所述預測結(jié)果;
29、所述第一級特征向量、所述第二級特征向量和所述第三級特征向量的向量維度逐級遞增。
30、可選地,所述卷積玻爾茲曼機模塊包括一維卷積層和受限玻爾茲曼機,所述將所述第二級特征向量輸入所述預設模型的卷積玻爾茲曼機模塊,得到該項目信息的第三級特征向量,包括:
31、將所述第二級特征向量輸入所述一維卷積層,對所述第二級特征向量進行一維卷積操作,得到所述第二級特征向量的高維特征;
32、將所述第二級特征向量的高維特征輸入所述受限玻爾茲曼機,得到所述第三級特征向量。
33、可選地,所述柔性圖卷積層包括圖卷積模塊和多頭注意力機制模塊,所述將所述第一級特征向量輸入所述預設模型的柔性圖卷積層,得到該項目信息的第二級特征向量,包括:
34、將所述第一級特征向量輸入所述圖卷積模塊,計算所述第一級特征向量的余弦相似度;
35、根據(jù)所述第一級特征向量的余弦相似度,設置所述圖卷積模塊的鄰接矩陣;
36、將所述鄰接矩陣輸入所述多頭注意力機制模塊,以更新所述鄰接矩陣
37、根據(jù)所述更新后的所述鄰接矩陣,構(gòu)建所述第一級特征向量的對稱規(guī)范化拉普拉斯矩陣;
38、對所述對稱規(guī)范化拉普拉斯矩陣進行特征分解,得到所述第二級特征向量。
39、可選地,在得到所述第二級特征向量之后,所述預測方法還包括:
40、將所述第二級特征向量輸入所述預設模型的池化層,對所述第二級特征向量進行池化操作;
41、基于對所述第二級特征向量進行池化操作的結(jié)果,進行線性變換,得到所述第二級特征向量的線性變換值。
42、本技術(shù)第二方面,提供了一種軟件開發(fā)需求的預測系統(tǒng),所述系統(tǒng)包括:
43、獲取模塊,用于獲取待開發(fā)軟件的項目信息,所述項目信息用于表征所述待開發(fā)軟件的第一文本描述;
44、預測模塊,用于將所述項目信息輸入預先訓練的開發(fā)需求預測模型,預測得到所述待開發(fā)軟件的目標開發(fā)需求,開發(fā)需求用于表征所述待開發(fā)軟件的第二文本描述;
45、所述開發(fā)需求預測模型是基于以目標函數(shù)作為損失函數(shù),并基于帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)訓練得到的,其中,所述目標函數(shù)是基于帶有標簽的樣本數(shù)據(jù)確定的第一目標子函數(shù),以及基于所述帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)確定的第二目標子函數(shù)共同確定的,所述帶有標簽的樣本數(shù)據(jù)包括項目信息以及與所述項目信息關(guān)聯(lián)的開發(fā)需求。
46、可選地,所述系統(tǒng)還包括:
47、組合子模塊,用于對樣本數(shù)據(jù)進行兩兩組合,得到多個樣本數(shù)據(jù)組;
48、計算與獲取子模塊,用于分別計算所述多個樣本數(shù)據(jù)組各自的相似性權(quán)重,并獲取每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量;
49、第一確定子模塊,用于根據(jù)計算得到的所述多個樣本數(shù)據(jù)組的相似性權(quán)重,確定所述多個樣本數(shù)據(jù)組的拉普拉斯矩陣;
50、第二確定子模塊,用于根據(jù)所述拉普拉斯矩陣,確定約束條件;
51、第三確定子模塊,用于根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量,確定每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離;
52、第四確定子模塊,用于根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,以及所述約束條件,確定所述第二目標子函數(shù)。
53、可選地,所述根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)各自的特征向量,確定每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,所述第三確定子模塊,包括:
54、第一確定子單元,用于根據(jù)任一個樣本數(shù)據(jù)組中的兩個樣本數(shù)據(jù)各自的特征向量,分別確定所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)之間的第一距離和第二距離,所述第一距離為所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)在初始空間的距離,所述第二距離為所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)在高維空間的距離;
55、所述根據(jù)每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的空間距離,以及所述約束條件,確定所述第二目標子函數(shù),所述系統(tǒng)還包括:
56、正則化子單元,用于分別對每一個所述樣本數(shù)據(jù)組中的兩個所述樣本數(shù)據(jù)的所述第一距離和所述第二距離進行正則化處理,得到正則化處理結(jié)果;
57、第二確定子單元,用于根據(jù)所述正則化處理結(jié)果,以及所述約束條件,確定所述第二目標子函數(shù)。
58、可選地,所述根據(jù)計算得到的所述多個樣本數(shù)據(jù)組的相似性權(quán)重,確定所述多個樣本數(shù)據(jù)組的拉普拉斯矩陣,所述第一確定子模塊,包括:
59、第一構(gòu)建子單元,用于根據(jù)所述多個樣本數(shù)據(jù)組的相似性權(quán)重,構(gòu)建所述多個樣本數(shù)據(jù)組的鄰接矩陣;
60、第一計算子單元,用于根據(jù)所述多個樣本數(shù)據(jù)組的鄰接矩陣,計算得到所述拉普拉斯矩陣。
61、可選地,所述系統(tǒng)還包括:
62、獲取子模塊,用于獲取預先構(gòu)建的知識圖譜,所述知識圖譜包括關(guān)聯(lián)有開發(fā)需求的項目信息和未關(guān)聯(lián)開發(fā)需求的項目信息;
63、模型訓練子模塊,用于將所述關(guān)聯(lián)有開發(fā)需求的項目信息作為帶有標簽的樣本數(shù)據(jù),將所述未關(guān)聯(lián)開發(fā)需求的項目信息作為不帶標簽的樣本數(shù)據(jù),對預設模型進行模型訓練,得到預測結(jié)果;
64、第五確定子模塊,用于基于所述預測結(jié)果和所述目標函數(shù),確定目標函數(shù)值;
65、在所述目標函數(shù)值滿足預設的預測精度要求的情況下,結(jié)束訓練,并將當前的所述預設模型作為所述開發(fā)需求預測模型;
66、在所述目標函數(shù)值不滿足所述預測精度要求的情況下,調(diào)整所述預設模型的模型參數(shù),并對調(diào)整后的預設模型繼續(xù)進行迭代訓練。
67、可選地,將所述知識圖譜中的項目信息作為模型輸入,所述對預設模型進行模型訓練,得到預測結(jié)果,所述模型訓練子模塊,包括:
68、第一輸入子單元,用于將知識圖譜中任一個所述項目信息輸入到所述預設模型的詞嵌入層,得到該項目信息的第一級特征向量;
69、第二輸入子單元,用于將所述第一級特征向量輸入所述預設模型的柔性圖卷積層,得到該項目信息的第二級特征向量;
70、第三輸入子單元,用于將所述第二級特征向量輸入所述預設模型的卷積玻爾茲曼機模塊,得到該項目信息的第三級特征向量,將所述第三級特征向量作為所述預測結(jié)果;所述第一級特征向量、所述第二級特征向量和所述第三級特征向量的向量維度逐級遞增。
71、可選地,所述卷積玻爾茲曼機模塊包括一維卷積層和受限玻爾茲曼機,所述將所述第二級特征向量輸入所述預設模型的卷積玻爾茲曼機模塊,得到該項目信息的第三級特征向量,所述第三輸入子單元,包括:
72、第四輸入子單元,用于將所述第二級特征向量輸入所述一維卷積層,對所述第二級特征向量進行一維卷積操作,得到所述第二級特征向量的高維特征;
73、第五輸入子單元,用于將所述第二級特征向量的高維特征輸入所述受限玻爾茲曼機,得到所述第三級特征向量。
74、可選地,所述柔性圖卷積層包括圖卷積模塊和多頭注意力機制模塊,所述將所述第一級特征向量輸入所述預設模型的柔性圖卷積層,得到該項目信息的第二級特征向量,所述第二輸入子單元,包括:
75、第二計算子單元,用于將所述第一級特征向量輸入所述圖卷積模塊,計算所述第一級特征向量的余弦相似度;
76、設置子單元,用于根據(jù)所述第一級特征向量的余弦相似度,設置所述圖卷積模塊的鄰接矩陣;
77、更新子單元,用于將所述鄰接矩陣輸入所述多頭注意力機制模塊,以更新所述鄰接矩陣
78、第二構(gòu)建子單元,用于根據(jù)所述更新后的所述鄰接矩陣,構(gòu)建所述第一級特征向量的對稱規(guī)范化拉普拉斯矩陣;
79、特征分解子單元,用于對所述對稱規(guī)范化拉普拉斯矩陣進行特征分解,得到所述第二級特征向量。
80、可選地,所述系統(tǒng)還包括:
81、池化子模塊,用于將所述第二級特征向量輸入所述預設模型的池化層,對所述第二級特征向量進行池化操作;
82、線性變換子模塊,用于基于對所述第二級特征向量進行池化操作的結(jié)果,進行線性變換,得到所述第二級特征向量的線性變換值。
83、本技術(shù)第三方面,提供了一種電子設備,包括存儲器、處理器及存儲在所述存儲器上的計算機程序,所述處理器執(zhí)行所述計算機程序以實現(xiàn)如本技術(shù)第一方面所述的軟件開發(fā)需求的預測方法。
84、本技術(shù)的有益效果:
85、本技術(shù)提供了一種軟件開發(fā)需求的預測方法,所述方法包括:獲取待開發(fā)軟件的項目信息;將所述項目信息輸入預先訓練的開發(fā)需求預測模型,預測得到所述待開發(fā)軟件的目標開發(fā)需求;所述開發(fā)需求預測模型是基于以目標函數(shù)作為損失函數(shù),并基于帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)訓練得到的,其中,所述目標函數(shù)是基于帶有標簽的樣本數(shù)據(jù)確定的第一目標子函數(shù),以及基于所述帶有標簽的樣本數(shù)據(jù)和不帶標簽的樣本數(shù)據(jù)確定的第二目標子函數(shù)共同確定的,所述帶有標簽的樣本數(shù)據(jù)包括項目信息以及與所述項目信息關(guān)聯(lián)的開發(fā)需求。本技術(shù)通過訓練開發(fā)需求預測模型,能夠準確預測待開發(fā)軟件的目標開發(fā)需求,避免了開發(fā)人員憑經(jīng)驗或主觀判斷制定不合理需求的情況,此外,在訓練開發(fā)需求預測模型時不僅利用了帶標簽的樣本數(shù)據(jù),還利用了不帶標簽的樣本數(shù)據(jù)進行學習,不僅提高了數(shù)據(jù)的利用率,還提高了模型的預測精度以及泛化能力。