本發(fā)明涉及代碼處理,尤其涉及一種代碼解析方法、裝置、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、目前人工智能平臺(tái)上有很多開源的github項(xiàng)目。很多github項(xiàng)目的readme文件中寫的內(nèi)容既不詳細(xì),也缺乏和代碼之間的關(guān)聯(lián),項(xiàng)目注釋也多以函數(shù)輸入輸出為主,針對(duì)函數(shù)內(nèi)部很多核心語(yǔ)句都缺乏對(duì)應(yīng)注釋和解釋。
2、目前,針對(duì)readme文件中所寫的項(xiàng)目中需要運(yùn)行的代碼,多依賴人工反復(fù)閱讀代碼去理解項(xiàng)目實(shí)現(xiàn)邏輯。此種方式處理效率低。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種代碼解析方法、裝置、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中依賴人工反復(fù)閱讀代碼去理解項(xiàng)目實(shí)現(xiàn)邏輯,導(dǎo)致處理效率低的缺陷。
2、本發(fā)明提供一種代碼解析方法,所述方法包括:
3、根據(jù)項(xiàng)目自述文件確定項(xiàng)目中需要運(yùn)行的代碼文件,將所述代碼文件中的代碼劃分成以函數(shù)為最小單元的片段,得到若干個(gè)代碼段;
4、根據(jù)所述代碼文件中的函數(shù)的調(diào)用關(guān)系確定所述若干個(gè)代碼段對(duì)應(yīng)的代碼層級(jí)關(guān)系;
5、按照代碼層級(jí)從低到高的順序,依次將若干個(gè)所述代碼段按照第一預(yù)設(shè)指令格式輸入至第一自然語(yǔ)言模型中,得到各所述代碼段對(duì)應(yīng)的代碼注釋,所述第一預(yù)設(shè)指令格式用于指示所述第一自然語(yǔ)言模型生成所述代碼段的代碼注釋,所述第一自然語(yǔ)言模型是根據(jù)標(biāo)識(shí)了原始代碼注釋的原始代碼段對(duì)初始自然語(yǔ)言模型訓(xùn)練得到的。
6、根據(jù)本發(fā)明提供的一種代碼解析方法,所述方法還包括:
7、確定所述項(xiàng)目自述文件所引用的文獻(xiàn),并獲取所述文獻(xiàn)對(duì)應(yīng)的預(yù)設(shè)格式的文獻(xiàn)文件;
8、將所述文獻(xiàn)文件中的內(nèi)容按照預(yù)設(shè)分隔符劃分成若干個(gè)句子;
9、依次將若干個(gè)所述句子按照第二預(yù)設(shè)指令格式輸入至第二自然語(yǔ)言模型中,得到各所述句子對(duì)應(yīng)的文獻(xiàn)解答,所述第二預(yù)設(shè)指令格式用于指示所述第二自然語(yǔ)言模型生成所述句子對(duì)應(yīng)的文獻(xiàn)解答;
10、基于所述代碼段對(duì)應(yīng)的代碼注釋與所述句子對(duì)應(yīng)的文獻(xiàn)解答之間的文本相似度,建立所述代碼段與所述句子之間的關(guān)聯(lián),以輔助代碼解讀。
11、根據(jù)本發(fā)明提供的一種代碼解析方法,所述方法還包括:
12、對(duì)所述項(xiàng)目自述文件中的文本信息進(jìn)行分塊處理,得到若干個(gè)文本塊;
13、獲取嵌入向量集,所述嵌入向量集中包括各所述代碼段的嵌入向量、各所述句子的嵌入向量以及各所述文本塊的嵌入向量;
14、在接收到用戶的問(wèn)詢語(yǔ)句的情況下,獲取所述問(wèn)詢語(yǔ)句的嵌入向量;
15、根據(jù)所述問(wèn)詢語(yǔ)句的嵌入向量與所述嵌入向量集中的各嵌入向量之間的第一相似度,從所述嵌入向量集中選取出第一相似度最高的目標(biāo)嵌入向量;
16、根據(jù)所述目標(biāo)嵌入向量,獲取所述問(wèn)詢語(yǔ)句對(duì)應(yīng)的答案信息。
17、根據(jù)本發(fā)明提供的一種代碼解析方法,所述根據(jù)所述目標(biāo)嵌入向量,獲取所述問(wèn)詢語(yǔ)句對(duì)應(yīng)的答案信息,包括:
18、獲取所述目標(biāo)嵌入向量所表示的目標(biāo)文本;
19、將所述目標(biāo)文本作為上下文信息,并與所述問(wèn)詢語(yǔ)句輸入至第三自然語(yǔ)言模型中,得到所述問(wèn)詢語(yǔ)句對(duì)應(yīng)的答案信息。
20、根據(jù)本發(fā)明提供的一種代碼解析方法,所述確定所述項(xiàng)目自述文件所引用的文獻(xiàn),并獲取所述文獻(xiàn)對(duì)應(yīng)的預(yù)設(shè)格式的文獻(xiàn)文件,包括:
21、基于預(yù)設(shè)正則表達(dá)式匹配出所述項(xiàng)目自述文件中引用文獻(xiàn)的文本信息;
22、基于所述文本信息解析出所引用的文獻(xiàn)的元信息;
23、基于所述元信息從開源文獻(xiàn)庫(kù)中獲取預(yù)設(shè)格式的文本文件。
24、根據(jù)本發(fā)明提供的一種代碼解析方法,所述第一自然語(yǔ)言模型是通過(guò)以下方式訓(xùn)練得到的:
25、爬取帶有原始代碼注釋的原始代碼段;
26、將所述原始代碼段輸入至初始自然語(yǔ)言模型中,得到所述初始自然語(yǔ)言模型輸出的預(yù)測(cè)注釋;
27、根據(jù)所述預(yù)測(cè)注釋與所述原始代碼注釋之間的第二相似度,對(duì)所述初始自然語(yǔ)言模型的模型參數(shù)進(jìn)行更新,直至所述第二相似度達(dá)到預(yù)設(shè)相似度要求,得到訓(xùn)練好的所述第一自然語(yǔ)言模型。
28、本發(fā)明還提供一種代碼解析裝置,所述裝置包括:
29、第一代碼解析模塊,用于根據(jù)項(xiàng)目自述文件確定項(xiàng)目中需要運(yùn)行的代碼文件,將所述代碼文件中的代碼劃分成以函數(shù)為最小單元的片段,得到若干個(gè)代碼段;
30、第二代碼解析模塊,用于根據(jù)所述代碼文件中的函數(shù)的調(diào)用關(guān)系確定所述若干個(gè)代碼段對(duì)應(yīng)的代碼層級(jí)關(guān)系;
31、第三代碼解析模塊,用于按照代碼層級(jí)從低到高的順序,依次將若干個(gè)所述代碼段按照第一預(yù)設(shè)指令格式輸入至第一自然語(yǔ)言模型中,得到各所述代碼段對(duì)應(yīng)的代碼注釋,所述第一預(yù)設(shè)指令格式用于指示所述第一自然語(yǔ)言模型生成所述代碼段的代碼注釋,所述第一自然語(yǔ)言模型是根據(jù)標(biāo)識(shí)了原始代碼注釋的原始代碼段對(duì)初始自然語(yǔ)言模型訓(xùn)練得到的。
32、本發(fā)明還提供一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如上述任一種所述代碼解析方法。
33、本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種所述代碼解析方法。
34、本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種所述代碼解析方法。
35、本發(fā)明提供的代碼解析方法、裝置、系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì),先根據(jù)項(xiàng)目自述文件確定項(xiàng)目中需要運(yùn)行的代碼文件,將代碼文件中的代碼劃分成以函數(shù)為最小單元的片段,得到若干個(gè)代碼段,接著根據(jù)代碼文件中的函數(shù)的調(diào)用關(guān)系確定若干個(gè)代碼段對(duì)應(yīng)的代碼層級(jí)關(guān)系,以通過(guò)代碼層級(jí)關(guān)系構(gòu)建起自底向上的邏輯體系,接著按照代碼層級(jí)從低到高的順序,依次將若干個(gè)代碼段按照第一預(yù)設(shè)指令格式輸入至第一自然語(yǔ)言模型中,通過(guò)按照代碼層級(jí)從低到高的順序?qū)⒋a段輸入至第一自然語(yǔ)言模型中,可以讓第一自然語(yǔ)言模型更好地理解代碼的上下文和邏輯流程,第一自然語(yǔ)言模型從而能夠利用代碼段之間的代碼層級(jí)關(guān)系來(lái)產(chǎn)生更準(zhǔn)確的注釋,實(shí)現(xiàn)快速地代碼解讀。
1.一種代碼解析方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的代碼解析方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的代碼解析方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的代碼解析方法,其特征在于,所述根據(jù)所述目標(biāo)嵌入向量,獲取所述問(wèn)詢語(yǔ)句對(duì)應(yīng)的答案信息,包括:
5.根據(jù)權(quán)利要求2所述的代碼解析方法,其特征在于,所述確定所述項(xiàng)目自述文件所引用的文獻(xiàn),并獲取所述文獻(xiàn)對(duì)應(yīng)的預(yù)設(shè)格式的文獻(xiàn)文件,包括:
6.根據(jù)權(quán)利要求1所述的代碼解析方法,其特征在于,所述第一自然語(yǔ)言模型是通過(guò)以下方式訓(xùn)練得到的:
7.一種代碼解析裝置,其特征在于,所述裝置包括:
8.一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至6任一項(xiàng)所述代碼解析方法。
9.一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至6任一項(xiàng)所述代碼解析方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至6任一項(xiàng)所述代碼解析方法。