[發(fā)明專利]一種代碼自動(dòng)生成質(zhì)量評(píng)估方法有效
| 申請(qǐng)?zhí)枺?/td> | 202011557515.3 | 申請(qǐng)日: | 2020-12-25 |
| 公開(kāi)(公告)號(hào): | CN112698831B | 公開(kāi)(公告)日: | 2022-08-09 |
| 發(fā)明(設(shè)計(jì))人: | 姜瑛;張曉江;湯守國(guó);李凌宇;丁家滿;汪海濤 | 申請(qǐng)(專利權(quán))人: | 昆明理工大學(xué) |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06N3/02;G06N3/08 |
| 代理公司: | 昆明人從眾知識(shí)產(chǎn)權(quán)代理有限公司 53204 | 代理人: | 陳波 |
| 地址: | 650093 云*** | 國(guó)省代碼: | 云南;53 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 代碼 自動(dòng) 生成 質(zhì)量 評(píng)估 方法 | ||
1.一種代碼自動(dòng)生成質(zhì)量評(píng)估方法,其特征在于:所述方法步驟如下:
Step1、基于代碼自動(dòng)生成數(shù)據(jù)和程序員行為數(shù)據(jù)抽取特征項(xiàng)并進(jìn)行標(biāo)注,作為數(shù)據(jù)集D;
Step2、使用數(shù)據(jù)集D中代碼上下文進(jìn)行預(yù)訓(xùn)練,生成代碼符號(hào)向量;
Step3、根據(jù)代碼上下文建立多維語(yǔ)法樹(shù);
Step4、通過(guò)特征檢測(cè)器在多維語(yǔ)法樹(shù)中進(jìn)行特征提取,將提取到的特征通過(guò)全連接神經(jīng)網(wǎng)絡(luò)映射到代碼自動(dòng)生成質(zhì)量屬性;
Step5、使用全連接神經(jīng)網(wǎng)絡(luò)輸出的代碼質(zhì)量屬性對(duì)代碼自動(dòng)生成質(zhì)量進(jìn)行評(píng)估;
所述Step3具體如下:
Step3.1、輸入數(shù)據(jù)集D,執(zhí)行Step3.2;
Step3.2、將數(shù)據(jù)集D中所有文件路徑存入file中并去重,初始化文件路徑個(gè)數(shù)f=0,樣本samples=[],執(zhí)行Step3.3;
Step3.3、判斷f是否小于file中文件路徑個(gè)數(shù),是則執(zhí)行Step3.4,否則執(zhí)行Step4;其中,一條代碼自動(dòng)生成數(shù)據(jù)和程序員行為數(shù)據(jù)對(duì)應(yīng)一個(gè)文件路徑;
Step3.4、將第f個(gè)文件路徑file[f]中代碼上下文解析為語(yǔ)法樹(shù)root,將數(shù)據(jù)集D中文件路徑為file[f]與代碼質(zhì)量屬性相關(guān)的特征項(xiàng)存入records,代碼自動(dòng)生成質(zhì)量標(biāo)注存入label,執(zhí)行Step3.5;
Step3.5、初始化節(jié)點(diǎn)隊(duì)列queue=[root];根節(jié)點(diǎn)字段root_josn={'node':root節(jié)點(diǎn)類型,'code':root節(jié)點(diǎn)表示的代碼,'children':[],'record':None};節(jié)點(diǎn)隊(duì)列字段queue_json=[root_json];f+=1,執(zhí)行Step3.6;
Step3.6、判斷queue是否不為空,是則執(zhí)行Step3.7,否則執(zhí)行Step3.3;
Step3.7、當(dāng)前節(jié)點(diǎn)current_node=queue隊(duì)首元素,并將queue隊(duì)首元素出隊(duì);當(dāng)前節(jié)點(diǎn)字段current_node_json=queue_json=[root_json],執(zhí)行Step3.8;
Step3.8、孩子節(jié)點(diǎn)children=current_node子節(jié)點(diǎn)列表,將children存入queue,c=0,執(zhí)行Step3.9;
Step3.9、判斷c是否小于children節(jié)點(diǎn)個(gè)數(shù),是則執(zhí)行Step3.10,否則執(zhí)行Step3.3;
Step3.10、初始化記錄re=None,num=0,rc=0,執(zhí)行Step3.11;
Step3.11、判斷rc是否小于records個(gè)數(shù),是則執(zhí)行Step3.12,否則執(zhí)行Step3.15;其中,一條代碼自動(dòng)生成數(shù)據(jù)和程序員行為數(shù)據(jù)對(duì)應(yīng)的records個(gè)數(shù)取值為1;
Step3.12、判斷children[c]代碼是否等于數(shù)據(jù)集D中生成代碼內(nèi)容,是則執(zhí)行Step3.13,否則執(zhí)行Step3.14;
Step3.13、re=數(shù)據(jù)集D中生成代碼內(nèi)容為children[c]的與代碼質(zhì)量屬性相關(guān)的特征項(xiàng),子樹(shù)datum={'tree':root_json,'label':label[num]},num+=1,將datum添加到samples中,執(zhí)行Step3.15;
Step3.14、rc=rc+1,執(zhí)行Step3.11;
Step3.15、孩子節(jié)點(diǎn)字段child_json={'node':children[c]節(jié)點(diǎn)類型,'code':children[c]中生成代碼內(nèi)容,'children':[],'record':re},執(zhí)行Step3.16;
Step3.16、將child_json添加到current_node_json['children']中,rc+=1,c+=1,執(zhí)行Step3.9。
2.根據(jù)權(quán)利要求1所述的代碼自動(dòng)生成質(zhì)量評(píng)估方法,其特征在于:所述Step1具體如下:
Step1.1、定義代碼自動(dòng)生成質(zhì)量屬性集合A,初始化代碼自動(dòng)生成數(shù)據(jù)和程序員行為數(shù)據(jù),執(zhí)行Step1.2;
Step1.2、基于代碼自動(dòng)生成數(shù)據(jù)和程序員行為數(shù)據(jù)抽取與代碼質(zhì)量屬性相關(guān)的特征項(xiàng)、抽取通用特征項(xiàng)并進(jìn)行標(biāo)注,作為數(shù)據(jù)集D,執(zhí)行Step2。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于昆明理工大學(xué),未經(jīng)昆明理工大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011557515.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)





