[发明专利]基于全局信息和局部信息的代码搜索嵌入方法及装置有效
申请号: | 202110697410.6 | 申请日: | 2021-06-23 |
公开(公告)号: | CN113449076B | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 彭敏;罗娟;黎芮彤;胡刚 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F16/33 | 分类号: | G06F16/33;G06F40/289;G06K9/62;G06N3/04 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 张凯 |
地址: | 430072*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 全局 信息 局部 代码 搜索 嵌入 方法 装置 | ||
1.一种基于全局信息和局部信息的代码搜索嵌入方法,其特征在于,所述基于全局信息和局部信息的代码搜索嵌入方法包括:
构建局部信息抽取模块,用于得到代码和查询的顺序信息向量、结构向量以及交互向量;
所述构建局部信息抽取模块,用于得到代码和查询的顺序信息向量、结构向量以及交互向量的步骤包括:
构建顺序信息抽取子模块:
使用ON-LSTM作为顺序信息抽取子模块,顺序地将由词嵌入构成的代码和查询,输入到ON-LSTM网络中,得到最终的隐藏状态:
其中,ct是代码的词嵌入向量,qt是查询的词嵌入向量,是输入代码段后ON-LSTM的最终隐藏状态,是输入查询后ON-LSTM的最终隐藏状态;
构建结构信息抽取子模块:
ON-LSTM能够在训练完成后,可以直接抽取出序列的结构信息,而不依赖于句子结构,抽取方法是将ON-LSTM结构中对于序列的结构信息有记忆的中间状态累加:
其中,是ON-LSTM中主遗忘门未经cumsum处理前的状态,seqlen是固定的序列长度,经过等式变换后,得到通过计算结构信息的等式,经由ON-LSTM输出的向量有两类,一类是顺序信息向量另一类是经过矩阵乘法操作后扩充为和顺序信息向量相同维度的初始结构向量
为了增强结构信息,分别使用卷积层对查询和代码段的初始结构向量进行信息增强处理,得到卷积层对查询和代码段的结构向量:
构建交互信息抽取子模块;
将查询的顺序信息向量和代码的顺序信息向量,通过交互注意力子模块,强调代码和查询两者最相关的部分,使用注意力机制为QC的交互表示构造注意矩阵M,包含了查询Q和代码C之间的交互信息,注意矩阵如下:
其中,Wq∈R2u×a,Wc∈R2u×a,V∈Ra是注意力参数,a是注意力维度;
使用池化操作,分别从代码方向和查询方向推导出基于池的投影向量,使用按行和按列值在M上的最大池得到mQ、mC,计算权重向量δQ∈R|Q|和δC∈R|C|如下所示:
δQ=softmax(mQ);δC=softmax(mC);
通过权重向量δQ∈R|Q|和δC∈R|C|以及和的计算得到交互向量:
VQ=δQhQ;VC=δChC;
构建全局信息抽取模块,用于根据代码和查询的顺序信息向量得到代码和查询的全局信息向量;
所述构建全局信息抽取模块,用于根据代码和查询的顺序信息向量得到代码和查询的全局信息向量的步骤包括:
构建全局信息抽取模块,通过共享的线性层和卷积层,对代码和查询的顺序信息向量进行计算得到代码和查询的全局信息向量;
分别将代码和查询的结构向量、交互向量以及全局信息向量拼接,得到代码和查询的特征向量;
构建相似度匹配模块,设置训练网络的综合损失函数,其中,所述相似度匹配模块,包括计算查询和代码的特征向量的余弦相似度的第一计算模块,以及计算查询和代码的第二结构向量的曼哈顿距离的第二计算模块,所述综合损失函数包括合页损失函数、有权重的曼哈顿距离以及正则损失;
对代码-描述匹配对语料进行结构化分词以及预处理,得到结构化词嵌入;
将结构化词嵌入先加载至局部信息抽取模块,再加载至全局信息抽取模块,设置初始化参数并利用训练集来训练拟合模型的参数,在验证集上迭代一定次数直到综合损失函数收敛,得到训练好的模型;
利用训练好的模型对待处理的查询进行预测,获得与待处理的查询对应的代码搜索结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110697410.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:无托盘砌块码垛打包流水线
- 下一篇:一种应用于服务集群内的负载均衡方法及装置
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置