[發明專利]一種代碼自動生成質量評估方法有效
| 申請號: | 202011557515.3 | 申請日: | 2020-12-25 |
| 公開(公告)號: | CN112698831B | 公開(公告)日: | 2022-08-09 |
| 發明(設計)人: | 姜瑛;張曉江;湯守國;李凌宇;丁家滿;汪海濤 | 申請(專利權)人: | 昆明理工大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N3/02;G06N3/08 |
| 代理公司: | 昆明人從眾知識產權代理有限公司 53204 | 代理人: | 陳波 |
| 地址: | 650093 云*** | 國省代碼: | 云南;53 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 自動 生成 質量 評估 方法 | ||
本發明公開了一種代碼自動生成質量評估方法,本發明首先定義了代碼自動生成質量屬性,并基于代碼自動生成數據和程序員行為數據抽取與代碼質量屬性相關的特征項及通用項,有助于從大量的代碼生成數據中挖掘出體現代碼生成質量的數據;通過代碼上下文建立多維語法樹,使用特征檢測器在多維語法樹中進行特征提取,將提取到的特征通過全連接神經網絡映射到代碼自動生成質量屬性,從而通過全連接神經網絡得到代碼質量屬性。綜上,本發明有助于從代碼自動生成與程序員行為數據中挖掘出體現代碼生成質量的特征,可以對代碼自動生成質量進行有效評估。
技術領域
本發明涉及一種代碼自動生成質量評估方法,屬于代碼自動生成質量評估領域。
背景技術
在基于機器學習的代碼自動生成的研究過程中,HindleA等人將傳統的N-Gram模型應用到代碼自動生成的研究中,使用語言模型N-Gram進行代碼預測,實驗通過MRR評估代碼自動生成的質量。Hellendoorn VJ等人在語言模型的基礎上加入“緩存”機制來維護程序的局部信息,通過對比循環神經網絡與帶有“緩存”機制的N-Gram,發現代碼的局部性特征對于token的預測有極大的幫助,使用循環神經網絡進行代碼預測時使用MRR對生成代碼質量進行評估。Nguyen TT等人使用一種統計語言模型SLAMC(A Novel StatisticalSemantic Language Model For Source Code),在語言模型的基礎上加入“緩存”機制來維護程序的局部信息。實驗結果表明,加入“緩存”機制的模型捕獲了源代碼中的局部規律,實驗使用Top-K的Precision對模型生成代碼準確性進行評估。RaychevV等人使用N-gram模型與循環神經網絡結合,在JavaAPI調用級別進行代碼補全,利用N-Gram模型對程序中的API調用序列建模,從而對API的調用序列進行預測。該研究通過分析Top-K個推薦代碼的Precision來評估模型的效果。Raychev V等人基于循環神經網絡,將程序代碼的抽象語法樹的序列化結果作為訓練數據集,并將網絡輸出結果區分為終結符的預測和非終結符的預測,該方法在一定程度上運用了存在于抽象語法樹中的結構化信息,進一步提升了與生成代碼相關的非終結符預測的準確性,該研究使用Top-K個推薦代碼的Precision來對模型生成代碼質量進行評估。
Allamanis M等人提出了專門為方法命名問題設計的神經概率語言模型的源代碼,該模型通過在一個高維連續空間中將名稱分配到稱為嵌入的位置,以一種具有相似嵌入的名稱傾向于在相似的上下文中使用的方式來了解哪些名稱在語義上是相似的,并通過F1-Measure評估模型的質量。
在現有研究中,用來評估代碼自動生成質量的方法主要包括Precision(精確率)、Recall(召回率)、MRR(Mean Reciprocal Rank)、F1-Measure。如果代碼自動生成工具推薦的是排序后的K個結果,可以使用Top-K的Precision、Recall、MRR、F-Measure對代碼自動生成性能進行評估。Precision又稱查準率,指代碼自動生成工具正確推薦的代碼數目占代碼自動生成工具推薦代碼總數的比例。Recall又稱查全率,定義為代碼自動生成工具正確推薦代碼數目與程序員真實需要的推薦代碼總數之間的比例。MRR主要體現代碼自動生成工具推薦代碼結果的優劣情況,靠前的結果較優,評分越高。第一個推薦代碼成功推薦,則分數為1;第二個推薦代碼成功推薦則分數為0.5;第n個推薦成功分數為1/n;若沒有推薦成功分數為0。F1-Measure是Precision和Recall的加權調和平均。現有研究中,缺乏針對代碼自動生成質量的統一評估方法。多數研究使用Precision、Recall、MRR、F1-Measure作為評估代碼自動生成質量的指標,但這些指標僅基于代碼自動生成個數以及生成代碼的正確性來進行計算。在實際開發中,代碼自動生成的質量不僅僅由代碼自動生成工具決定,程序員的行為在其中也起到了較大的作用。現有評估方法忽略了程序員行為在代碼自動生成過程中的重要性,只是針對代碼自動生成結果進行了評估。此外,由于大部分研究采用不同的評估指標,且各指標之間無法直接轉化,難以對各種代碼自動生成模型和方法進行對比。因此,針對代碼自動生成過程進行質量評估是亟待解決的問題。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于昆明理工大學,未經昆明理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011557515.3/2.html,轉載請聲明來源鉆瓜專利網。





