[发明专利]一种代码自动生成质量评估方法有效

专利信息
申请号: 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作为评估代码自动生成质量的指标,但这些指标仅基于代码自动生成个数以及生成代码的正确性来进行计算。在实际开发中,代码自动生成的质量不仅仅由代码自动生成工具决定,程序员的行为在其中也起到了较大的作用。现有评估方法忽略了程序员行为在代码自动生成过程中的重要性,只是针对代码自动生成结果进行了评估。此外,由于大部分研究采用不同的评估指标,且各指标之间无法直接转化,难以对各种代码自动生成模型和方法进行对比。因此,针对代码自动生成过程进行质量评估是亟待解决的问题。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明理工大学,未经昆明理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011557515.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top