一种基于多模态属性决策的代码搜索方法技术

技术编号:31807079 阅读:36 留言:0更新日期:2022-01-08 11:09
本发明专利技术涉及数据搜索查询技术,其公开了一种基于多模态属性决策的代码搜索方法,提高组件代码块的搜索的准确率和效率。该方法包括:S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;S2、对各个待匹配数据对进行预处理,获得元组词向量;S3、通过基于BERT的注意力网络提取各个元组的序列特征;S4、利用skip

【技术实现步骤摘要】
一种基于多模态属性决策的代码搜索方法


[0001]本专利技术涉及数据搜索查询技术,具体涉及一种基于多模态属性决策的代码搜索方法。

技术介绍

[0002]传统技术中,对于组件代码块的搜索通常基于余弦相似度实现,具体介绍如下:
[0003]组件代码块搜索的任务目标:给定一个包含海量组件代码块的数据库,用户输入一个查询语句,搜索系统从数据库中匹配最符合用户期望的组件代码块并返回给用户。
[0004]输入:组件代码块数据库DB={c1,c2,...,c
N
},其中,c
N
表示第N个组件代码块;用户查询语句q={w1,w2,...,w
m
},其中,w
m
表示第m个单词;候选数K。
[0005]输出:最优的K个组件代码块。
[0006]包括如下步骤:
[0007]步骤1:对查询语句q分词、统一小写字母,并截断到固定长度;
[0008]步骤2:对组件代码块数据库DB中的任意一个组件代码块c
i
分词、统一小写字母,并截断到固本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于多模态属性决策的代码搜索方法,其特征在于,包括以下步骤:S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;S2、对各个待匹配数据对进行预处理,获得元组词向量;S3、通过基于BERT的注意力网络提取各个元组的序列特征;S4、利用skip

gram网络提取各个元组的结构特征;S5、针对每一元组的序列特征和结构特征,采用多模态向量匹配模型进行相似度匹配,得到相似度匹配结果;S6、针对每一元组,基于获得的相似度匹配结果,利用门控机制对多属性得分进行输出控制,获得各元组的最终得分,并从高至低进行排序;S7、选出排序靠前的K个最终得分对应的组件代码块组成候选组件代码块集反馈给用户,所述K≥1。2.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,步骤S2具体包括:S21、对查询语句文本序列按照空格进行分词处理,获得查询语句的词向量Q;S22、对组件代码块文本序列按照空格进行分词处理,获得所有组件代码块的词向量{C1,C2,...,C
N
},其中C
N
表示第N个组件代码块的词向量;S23、对组件代码块方法名按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块方法名的词向量{M1,M2,...,M
N
},其中M
N
表示第N个组件代码块方法名的词向量;S24、对组件代码块调用的API序列按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块调用的API序列的词向量{A1,A2,...,A
N
},其中A
N
表示第N个组件代码块调用的API序列的词向量;S25、将查询语句的词向量Q、组件代码块的词向量{C1,C2,...,C
N
}、组件代码块方法名的词向量{M1,M2,...,M
N
}、组件代码块调用的API序列的词向量{A1,A2,...,A
N
}组成待匹配数据对,作为元组词向量:S=(Q,C1,M1,A1),(Q,C2,M2,A2),...,(Q,C
N
,M
N
,A
N
)。3.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,步骤S3中,所述基于BERT的注意力网络由多个网络结构块堆叠而成,每个所述网络结构块均包括输入层、注意力表示层和前馈神经网络层:输入层,用于对输入的词向量与对应的位置向量按位相加,获得输入层词表示;注意力表示层,用于通过多头注意力机制对输入层表示进行处理,获取多个注意力输出并对所有注意力输出进行拼接,将拼接后的多个注意力头部输出压缩至输入的维度;前馈神经网络层,用于调节注意力表示层中每个注意力头的权重矩阵。4.如权利要求3所述的一种基于多模态属性决策的代码搜索方法,其特征在于,步骤S3中,所述提取各个元组的序列特征具体包括:S31、针对各元组中的元素C
i
、M
i
、A
i
的词向量根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量S32、针对每一个元组,对经过[CLS]表示的词向量进行平均池化处理,获得第i个元组的序列表示,作为该元组的序列特征
S33、将查询语句的词向量Q根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量Q1;S34、对经过[CLS]表示的词向量Q1进行平均池化处理,获得Q的序列表示,作为Q的序列特征Q2。5.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,步骤S4具体包括:S41、利用python工具包javalang将所有组件代码块转换为抽象语法树;S42、对抽象语法树采样T条路径,得到路径向量P={p1,...,p
T
},其中p
T
表示第T条路径,T表示该语法抽象数从根节点到叶子节点不重复路径的数量;S43、将路径向量P输入skip

gram模型,得到路径向量P的嵌入向量表示P
nodes
,对于任一路径表示其表示的路径是p
i
,其中node
l
表示第l个节点的嵌入向量,l是该路径的长度,p
i
是P中的任意一条路径;S44、对于任一路径表示使用LSTM从前向编码得到隐状态表示序列:其中表示前向LSTM第l个节点的隐状态表示,即前向LSTM最后一个隐状态,表示前向LSTM;S45、对于任一路径表示使用LSTM从...

【专利技术属性】
技术研发人员:陈爱国朱大勇赵太银秦科罗光春尹佳胡鑫源
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1