Document
拖动滑块完成拼图
个人中心

预订订单
服务订单
发布专利 发布成果 人才入驻 发布商标 发布需求

在线咨询

联系我们

龙图腾公众号
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 恭喜北京工业大学陈昊亮获国家专利权

恭喜北京工业大学陈昊亮获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网恭喜北京工业大学申请的专利一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN114398079B

龙图腾网通过国家知识产权局官网在2025-04-25发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202210052857.2,技术领域涉及:G06F8/75;该发明授权一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法是由陈昊亮;高红雨;苏航设计研发完成,并于2022-01-18向国家知识产权局提交的专利申请。

一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法在说明书摘要公布了:本发明公开了一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法,给定两个代码片段,先拆分它们的抽象语法树到语句级别,然后通过RvNN获得每个语句级别的树结构信息,然后再通过带方向信息的Transformer来获得每个语句树的顺序信息,再经过最大池化层生成最终的代码表示向量,通过比较两个代码表示向量的差的绝对值来判别两个代码是否是语义克隆。本发明的主要思想是使用具有方向信息的Transformer‑encoder来改进现在的模型,现有的研究大部分仍然使用LSTM或GRU,但不适合并行计算,而且不能很好地关注到全局的信息。实验表明,本发明与现有技术相比,检测具有更高的F1值,且耗时较少。

本发明授权一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法在权利要求书中公布了:1.一种基于RvNN+Transformer神经网络模型的代码语义克隆检测方法,其特征在于,该方法具体包括以下流程:步骤1、代码的预处理;一个代码完整的抽象语法树如果直接输入模型可能会出现梯度消失的问题,所以需要先进行拆分,把抽象语法树分割成一组语句树,对于有嵌套结构的语句把它的花括号内的代码分割出来;然后把每个语句树按顺序存储到本地,语句树是以多级数组的形式存储,第一级的值是第二级的父节点;步骤2、代码的预训练;由于深度学习模型必须要传入向量,所以需要先把代码的每个token转化为向量;利用Word2vec的Skip-Gram模型对数据集中代码的所有token进行训练,生成每个token对应的词向量;词向量的维度d为128;步骤3、建立神经网络模型,由RvNN语句树编码层,Transformer-encoder层和最大池化层组成;为了训练得到语句树上的结构信息,所以需要将语句树自底向上的输入到RvNN模型中;具体转化过程如下:对一个代码的语句树进行深度优先遍历并借助训练好的Skip-Gram模型将各个节点值转化为d维向量Vi;然后对语句树中各节点对应向量公式1进行更新,从而使其包含子节点信息; 其中,vn表示节点n对应的向量,为权重矩阵,k为编码维度,C为节点n对应的子节点数量,bn为偏差,hi为子节点i更新后的向量,σ为激活函数;为获得节点向量中最重要的特征,在完成对各节点的向量更新后,使用公式2对语句树的所有子节点i更新后的向量hi进行最大池化,以获取语句树的最终向量表示;et=[maxhi1,…,maxhik],i=1,…,N2其中,N为语句树的节点数量;最终一个代码完整的抽象语法树表示为[e1,…,ei,…,et],i∈[1,t];其中t表示语句树的数量;由于代码的顺序信息也很重要,所以需要Transformer-encoder模型训练代码各个语句树之间的顺序信息;Transformer-encoder模型需要使用带有相对位置信息的注意力计算得分公式,公式如下: AttQ,K,V=softmaxArelV6其中,H是输入的语句树向量e和位置编码的和,维度为dk,Q,V是向量H通过对应的矩阵W映射得到的;K为了增强输入向量H的信息,所以不用矩阵映射;输入向量t是目标token索引,j是上下文token索引,表示第i个token和第j个token的相似度,u和v是可学习参数,Rt-j是相对位置编码;将A矩阵经过softmax进行归一化,再乘上V就得到最终表示;通过Transformer-encoder层变化的语句向量再经过最大池化获取最终的代码表示r;公式如下:r=[maxV1,…,maxVi],i=1,…,N7其中,N表示一个语句树对应的节点总数;步骤4、设计Siamese架构进行代码语义克隆检测,具体包括:给定的两个代码转换为两个语句树集合作为输入,再把每个语句树自底向上传入到RvNN模型中;然后通过步骤3设计的模型输出最终的向量表示,计算两个代码向量距离来辨别两个代码是否克隆。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人北京工业大学,其通讯地址为:100124 北京市朝阳区平乐园100号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。