[发明专利]面向技术特征的源代码对比方法、系统与程序产品有效
| 申请号: | 202210808406.7 | 申请日: | 2022-07-11 |
| 公开(公告)号: | CN114880023B | 公开(公告)日: | 2022-09-30 |
| 发明(设计)人: | 龚斌;宁祥东;孙宇清;万林 | 申请(专利权)人: | 山东大学 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F8/41 |
| 代理公司: | 济南竹森知识产权代理事务所(普通合伙) 37270 | 代理人: | 刘宏广 |
| 地址: | 250100 山*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 技术 特征 源代码 对比 方法 系统 程序 产品 | ||
1.一种面向技术特征的源代码对比方法,其特征在于,包括:
代码文件预处理阶段,用于输出代码的函数调用结构、函数名称和内置类名称;
对所述函数调用结构语义编码阶段:采用基于图卷积神经网络的自编码器方法对函数调用结构进行语义编码,得到函数调用结构向量;
对所述函数名称和内置类名称的调用信息使用TF-IDF算法编码阶段,分别得到函数向量和内置类向量;
最后将函数调用结构向量、函数向量和内置类向量进行拼接作为整体技术特征向量,以比对代码相似度;
所述代码文件预处理阶段包括:
使用函数调用结构生成工具得到代码技术特征中函数调用结构的DOT文件,其中,DOT文件用于描述函数调用结构的图表示中节点以及节点之间的关系,将DOT文件经过预处理后得到函数调用结构的图表示:
在公式(I)中,V表示函数名称的集合;
所述函数调用结构语义编码阶段包括:
代码文件经过上述预处理后得到函数调用结构的图表示、函数名称和内置类名称,使用基于图卷积神经网络GCN的自编码器方法对函数调用结构的图表示进行语义编码,结构语义向量
在公式(II)(III)(IV)中,
所述图自编码器采用sigmoid函数作为解码器来重构原始的图,所述解码器的计算如公式(V)所示:
在公式(V)中,是重构原始图的邻接矩阵;σ是sigmoid函数;
使用重构图的邻接矩阵与原始图的邻接矩阵的交叉熵作为损失函数,损失函数的计算如公式(VI)所示:
在公式(VI)中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210808406.7/1.html,转载请声明来源钻瓜专利网。





