(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210385696.9
(22)申请日 2022.04.13
(71)申请人 中国农业银行股份有限公司
地址 100005 北京市东城区建国门内大街
69号
(72)发明人 郭婷婷
(74)专利代理 机构 北京集佳知识产权代理有限
公司 11227
专利代理师 柳虹
(51)Int.Cl.
G06F 40/30(2020.01)
G06F 40/284(2020.01)
G06K 9/62(2022.01)
G06N 3/04(2006.01)
(54)发明名称
一种代码相似度检测方法及装置
(57)摘要
本发明提供一种代码相似度检测方法及装
置, 对第一代码段进行分词得到多个第一目标
词, 对第二代码段进行分词得到多个第二目标
词, 利用Glove模型对多个第一目标词进行空间
转换得到多个第一词向量, 利用Glove模型对多
个第二目标词分别进行空间转换得到多个第二
词向量, 利用递归神经网络对多个第一词向量进
行语义提取得到第一语义向量, 利用递归神经网
络对多个第二词向量进行语义提取得到第二语
义向量, 这样第一语义向量是包含第一代码段的
语义信息的向量, 第二语义向量是包含第二代码
段的语义信息的向量, 计算第一语义向量和第二
语义向量的相似度, 可以作为第一代码段和第二
代码段的相似度, 得到的相似度是考虑语义信息
的相似度, 具有更高的准确性。
权利要求书2页 说明书10页 附图2页
CN 114742069 A
2022.07.12
CN 114742069 A
1.一种代码相似度检测方法, 其特 征在于, 包括:
对第一代码段进行分词得到多个第 一目标词, 对第 二代码段进行分词得到多个第 二目
标词;
利用Glove模型对所述多个第一目标词分别进行空间转换得到多个第一词向量, 利用
Glove模型对所述多个第二目标词分别进行空间转换 得到多个第二词向量;
利用递归神经网络对所述多个第 一词向量进行语义提取得到第 一语义向量, 利用递归
神经网络对所述多个第二词向量进行语义 提取得到第二语义向量;
计算所述第 一语义向量和所述第 二语义向量的相似度, 作为所述第 一代码段和所述第
二代码段的相似度。
2.根据权利要求1所述的方法, 其特征在于, 所述利用Glove模型将所述多个第一目标
词分别进行空间转换 得到多个第一词向量, 包括:
根据所述多个第一目标词的初始词向量和所述多个第一目标词的上下文信息, 建立
Glove模型进行空间转换的第一损失函数, 对所述第一损失函数进行最小化以得到所述多
个第一目标词对应的多个第一词向量;
所述利用Glove模型对所述多个第二目标词分别进行空间转换得到多个第二词向量,
包括:
根据所述多个第二目标词的初始词向量和所述多个第二目标词的上下文信息, 建立
Glove模型进行空间转换的第二损失函数, 对所述第二损失函数进行最小化以得到所述多
个第二目标词对应的多个第二词向量。
3.根据权利要求2所述的方法, 其特征在于, 根据 所述多个第 一目标词的初始词向量和
所述多个第一目标词的上 下文信息, 建立Gl ove模型进行空间转换的第一损失函数, 包括:
将所述多个第 一目标词两两组合得到多个第 一词组; 根据属于同一第 一词组的两个第
一目标词的初始词向量的内积, 与所述两个第一目标词在同一个上下文窗口中共同出现次
数, 建立所述两个第一 目标词对应的损失函数; 基于所述两个第一 目标词在同一个上下文
窗口中共同出现次数, 确定所述损失函数对应的函数权重; 利用所述函数权重对所述损失
函数进行加权平均, 得到所述第一损失函数;
根据所述多个第二目标词的初始词向量和所述多个第二目标词的上下文信息, 建立
Glove模型进行空间转换的第二损失函数, 包括:
将所述多个第 二目标词两两组合得到多个第 二词组; 根据属于同一第 二词组的两个第
二目标词的初始词向量的内积, 与所述两个第二目标词在同一个上下文窗口中共同出现次
数, 建立所述两个第二 目标词对应的损失函数; 基于所述两个第二 目标词在同一个上下文
窗口中共同出现次数, 确定所述损失函数对应的函数权重; 利用所述函数权重对所述损失
函数进行加权平均, 得到所述第二损失函数。
4.根据权利要求1 ‑3任一项所述的方法, 其特征在于, 所述递归神经网络为双向长短时
记忆网络。
5.根据权利要求1 ‑3任一项所述的方法, 其特征在于, 对第 一代码段进行分词得到多个
第一目标词, 对第二代码段进行分词得到多个第二目标词之前, 所述方法还 包括:
对所述第一代码段进行预处理, 以去 除所述第一代码段中的冗余信息; 对所述第二代
码段进行 预处理, 以去除所述第二代码段中的冗余信息 。权 利 要 求 书 1/2 页
2
CN 114742069 A
26.一种代码相似度检测装置, 其特 征在于, 包括:
分词单元, 用于对第一代码段进行分词得到多个第一目标词, 对第二代码段进行分词
得到多个第二目标词;
空间转换单元, 用于利用Glove模型对所述多个第一目标词分别进行空间转换得到多
个第一词向量, 利用Glove模型对所述多个第二目标词分别进行空间转换得到多个第二词
向量;
语义提取单元, 用于利用递归神经网络对所述多个第 一词向量进行语义提取得到第 一
语义向量, 利用递归神经网络对所述多个第二词向量进行语义 提取得到第二语义向量;
相似度计算单元, 用于计算所述第一语义向量和所述第二语义向量的相似度, 作为所
述第一代码段和所述第二代码段的相似度。
7.根据权利要求6所述的装置, 其特 征在于, 所述空间转换 单元, 包括:
第一转换单元, 用于根据所述多个第 一目标词的初始词向量和所述多个第 一目标词的
上下文信息, 建立Glov e模型进行空间转换的第一损失函数, 对所述第一损失函数进 行最小
化以得到所述多个第一目标词对应的多个第一词向量;
第二转换单元, 用于根据所述多个第 二目标词的初始词向量和所述多个第 二目标词的
上下文信息, 建立Glov e模型进行空间转换的第二损失函数, 对所述第二损失函数进 行最小
化以得到所述多个第二目标词对应的多个第二词向量。
8.根据权利要求7 所述的装置, 其特 征在于, 所述第一 转换单元具体用于:
将所述多个第 一目标词两两组合得到多个第 一词组; 根据属于同一第 一词组的两个第
一目标词的初始词向量的内积, 与所述两个第一目标词在同一个上下文窗口中共同出现次
数, 建立所述两个第一 目标词对应的损失函数; 基于所述两个第一 目标词在同一个上下文
窗口中共同出现次数, 确定所述损失函数对应的函数权重; 利用所述函数权重对所述损失
函数进行加权平均, 得到所述第一损失函数; 对所述第一损失函数进行最小化以得到所述
多个第一目标词对应的多个第一词向量;
所述第二 转换单元具体用于:
将所述多个第 二目标词两两组合得到多个第 二词组; 根据属于同一第 二词组的两个第
二目标词的初始词向量的内积, 与所述两个第二目标词在同一个上下文窗口中共同出现次
数, 建立所述两个第二 目标词对应的损失函数; 基于所述两个第二 目标词在同一个上下文
窗口中共同出现次数, 确定所述损失函数对应的函数权重; 利用所述函数权重对所述损失
函数进行加权平均, 得到所述第二损失函数, 对所述第二损失函数进行最小化以得到所述
多个第二目标词对应的多个第二词向量。
9.根据权利要求6 ‑8任一项所述的装置, 其特征在于, 所述递归神经网络为双向长短时
记忆网络。
10.根据权利要求6 ‑8任一项所述的装置, 其特 征在于, 所述装置还 包括:
预处理单元, 用于对第一代码段进行分词得到多个第一目标词, 对第二代码段进行分
词得到多个第二目标词之前, 对所述第一代码段进行预处理, 以去除所述第一代码段中的
冗余信息; 对所述第二代码段进行 预处理, 以去除所述第二代码段中的冗余信息 。权 利 要 求 书 2/2 页
3
CN 114742069 A
3
专利 一种代码相似度检测方法及装置
文档预览
中文文档
15 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 17:44:24上传分享