基于同构网络的代码克隆检测方法及系统
基本信息
申请号 | CN202010871698.X | 申请日 | - |
公开(公告)号 | CN112035165A | 公开(公告)日 | 2020-12-04 |
申请公布号 | CN112035165A | 申请公布日 | 2020-12-04 |
分类号 | G06F8/75;G06F40/30;G06N3/04;G06N3/08 | 分类 | 计算;推算;计数; |
发明人 | 姚金龙;谷晶中;左洪强;程杰;张阳光;郑宏亮;高军涛 | 申请(专利权)人 | 山谷网安科技股份有限公司 |
代理机构 | 郑州大通专利商标代理有限公司 | 代理人 | 山谷网安科技股份有限公司 |
地址 | 450000 河南省郑州市金水区杨金路199号河南新科技市场8号楼 | ||
法律状态 | - |
摘要
摘要 | 本发明属于代码检测技术领域,特别涉及一种基于同构网络的代码克隆检测方法及系统,对提取待比较程序源码函数级别的抽象语法树,其所有叶子节点对应程序源码的句子文本信息,非叶子节点对应程序源码的结构信息;将抽象语法树重新排列,得到与递归自编码器形成同构网络模型的重构抽象语法树,递归自编码器隐藏层每一个节点与重构抽象语法树非叶子节点关联;训练学习递归自编码器模型收敛参数,通过损失函数来训练用于获取中间向量的模型参数;提取语法树的文本语义向量作为输入,通过收敛后模型参数获取待比较程序源码的中间向量;根据中间向量近似程度判定待比较程序源码相似性。本发明通过自动学习代码隐藏特征,提升代码克隆检测效率和准确性。 |
