[发明专利]基于生成对抗网络的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中,方法源代码
其中,是终端节点到终端节点的抽象语法树路径,为终端节点分词后的单词序列,为终端节点与之间抽象语法树路径的非终端节点单词序列,为终端节点分词后第
对一个终端节点到达其他终端节点所经过的路径为抽象语法树路径;
步骤S2中,利用编码器和解码器进行方法名生成;其中,编码器使用循环神经网络将代码的抽象语法树路径编码为一个隐含特征向量;解码器使用带有注意力机制的循环神经网络解码隐含特征向量,并给出推荐方法名;
步骤S2中,对于
其中,
步骤S2中,推荐方法名为:
其中,
2.根据权利要求1所述的基于生成对抗网络的Java程序方法名推荐方法,其特征在于,步骤S3采用卷积神经网络结构进行方法名判别,以判别方法名是由步骤S2生成的虚假方法名还是源码的真实方法名。
3.根据权利要求2所述的基于生成对抗网络的Java程序方法名推荐方法,其特征在于,步骤S3包括以下步骤:
S31,对输入方法名判别器的方法名序列
其中,是方法名序列中第个单词到第
S32,对于方法名
S33,将
其中,是全连接层的系数矩阵,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310036231.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:双电芬顿处理高盐有机废水工艺
- 下一篇:复杂水质中氰离子的测定方法