[发明专利]基于生成对抗网络的Java程序方法名推荐方法及系统有效

专利信息
申请号: 202310036231.7 申请日: 2023-01-10
公开(公告)号: CN115729532B 公开(公告)日: 2023-04-18
发明(设计)人: 徐悦甡;赵新瑜;黑蕾;李瑞;蒋志平 申请(专利权)人: 西安电子科技大学
主分类号: G06F8/30 分类号: G06F8/30;G06F8/41;G06N3/0464;G06N3/0475
代理公司: 成都九鼎天元知识产权代理有限公司 51214 代理人: 黎飞
地址: 710071 陕*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 生成 对抗 网络 java 程序 法名 推荐 方法 系统
【权利要求书】:

1.基于生成对抗网络的Java程序方法名推荐方法,其特征在于,包括以下步骤:

S1,代码预处理:将Java程序代码解析成为抽象语法树,并抽取出Java程序代码的抽象语法树中所有两个终端节点之间的路径作为抽象语法树路径;

S2,方法名生成:基于Java程序代码的抽象语法树路径,给出推荐的Java程序方法名;

S3,方法名判别:判别待判别方法名是否由步骤S2所生成,并给出评分;

S4,生成对抗网络训练:基于步骤S3所给出的评分,分别计算出步骤S2和步骤S3的损失值和梯度,并根据损失值和梯度优化步骤S2和步骤S3中的参数;

步骤S1中,方法源代码C经过代码预处理模块后,可得抽象语法树路径集合S

其中,是终端节点到终端节点的抽象语法树路径,为终端节点分词后的单词序列,为终端节点与之间抽象语法树路径的非终端节点单词序列,为终端节点分词后第l个单词,、表示抽象语法树中两个终端节点的编号,表示从终端节点到终端节点的抽象语法树路径中非终端节点的数量,表示非终端节点集合,表示非终端节点集合中第个非终端节点;

对一个终端节点到达其他终端节点所经过的路径为抽象语法树路径;

步骤S2中,利用编码器和解码器进行方法名生成;其中,编码器使用循环神经网络将代码的抽象语法树路径编码为一个隐含特征向量;解码器使用带有注意力机制的循环神经网络解码隐含特征向量,并给出推荐方法名;

步骤S2中,对于S

其中,R是隐含特征向量,encode(S)是方法名生成器中编码器的计算结果,是抽象语法树路径集合S中的抽象语法树路径,是映射到中的向量表示,是编码后的向量表示,是的向量表示,d是的向量维度,n是终端节点的个数;

步骤S2中,推荐方法名为:

其中,argmax(x)是获取向量x中最大数值的索引,指最大单词预测概率的索引,ATTENTION_GRU(R)是基于注意力机制的门控循环单元网络。

2.根据权利要求1所述的基于生成对抗网络的Java程序方法名推荐方法,其特征在于,步骤S3采用卷积神经网络结构进行方法名判别,以判别方法名是由步骤S2生成的虚假方法名还是源码的真实方法名。

3.根据权利要求2所述的基于生成对抗网络的Java程序方法名推荐方法,其特征在于,步骤S3包括以下步骤:

S31,对输入方法名判别器的方法名序列X使用不同尺寸的卷积核进行卷积操作,同一个尺寸的卷积核有多个,卷积计算如下:

其中,是方法名序列中第个单词到第i+h-1个单词的子序列,|vocab|是词汇表的大小,是尺寸为h的卷积核参数矩阵,b是偏置项,是单词经过卷积操作并拼接后生成的特征词,k是同一尺寸卷积核的数量,表示向量表示的维度,表示方法名序列X中单词的数量;

S32,对于方法名X进行卷积操作有:

S33,将U经过全连接层,得到二分类结果:

其中,是全连接层的系数矩阵,b是偏置项,P是一个二维向量,P中两个向量元素分别是预测为正样本、负样本的概率。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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