基于同构网络的代码克隆检测方法及系统

基本信息

申请号 CN202010871698.X 申请日 -
公开(公告)号 CN112035165A 公开(公告)日 2020-12-04
申请公布号 CN112035165A 申请公布日 2020-12-04
分类号 G06F8/75;G06F40/30;G06N3/04;G06N3/08 分类 计算;推算;计数;
发明人 姚金龙;谷晶中;左洪强;程杰;张阳光;郑宏亮;高军涛 申请(专利权)人 山谷网安科技股份有限公司
代理机构 郑州大通专利商标代理有限公司 代理人 山谷网安科技股份有限公司
地址 450000 河南省郑州市金水区杨金路199号河南新科技市场8号楼
法律状态 -

摘要

摘要 本发明属于代码检测技术领域,特别涉及一种基于同构网络的代码克隆检测方法及系统,对提取待比较程序源码函数级别的抽象语法树,其所有叶子节点对应程序源码的句子文本信息,非叶子节点对应程序源码的结构信息;将抽象语法树重新排列,得到与递归自编码器形成同构网络模型的重构抽象语法树,递归自编码器隐藏层每一个节点与重构抽象语法树非叶子节点关联;训练学习递归自编码器模型收敛参数,通过损失函数来训练用于获取中间向量的模型参数;提取语法树的文本语义向量作为输入,通过收敛后模型参数获取待比较程序源码的中间向量;根据中间向量近似程度判定待比较程序源码相似性。本发明通过自动学习代码隐藏特征,提升代码克隆检测效率和准确性。