【技术实现步骤摘要】
大规模候选集中的语义代码搜索模型构建方法及相关装置
[0001]本申请涉及语义搜索领域,具体而言,涉及一种大规模候选集中的语义代码搜索模型构建方法及相关装置。
技术介绍
[0002]虽然近些年来对于自然语言甚至是图像的搜索已经取得了非常大的进步,但是对于代码的搜索,目前的技术仍然不能满足大多数使用者的需求。这是因为在传统的信息检索中,搜索的关键词往往和搜索的结果会有很多相同的词语,因此,通过关键词匹配的方式可以很容易找到相关的搜索结果。
[0003]但是,在代码搜索中,自然语言和代码各自使用的词汇很多时候存在着巨大差异,而目前大多数的代码搜索引擎仍然局限于关键字搜索,这种搜索策略需要用户了解相关编程语言的语法;或者需要用户可以预测目标代码片段周围的注释中可能包含的关键字。
[0004]因此,提出了基于语义代码搜索的相关技术,即通过在同一向量空间中表示查询语句和代码片段,然后,将余弦距离最近的代码片段作为查询语句对应的代码片段。然而,目前的相关技术在将查询语句和代码片段表示在同一向量空间时,忽略了二者可能共有的一些信息。
技术实现思路
[0005]为了克服现有技术中的至少一个不足,本申请提供一种大规模候选集中的语义代码搜索模型构建方法及相关装置,包括:
[0006]第一方面,本申请提供一种大规模候选集中的语义代码搜索模型构建方法,应用于模型训练设备,所述方法包括:
[0007]获取样本查询语以及样本代码片段;
[0008]训练目标模型学习所述样本查询语句与所述样本 ...
【技术保护点】
【技术特征摘要】
1.一种大规模候选集中的语义代码搜索模型构建方法,其特征在于,应用于模型训练设备,所述方法包括:获取样本查询语句以及样本代码片段;训练目标模型学习所述样本查询语句与所述样本代码片段之间的语义信息,直到所述目标模型满足预设收敛条件时,获得语义代码搜索模型。2.根据权利要求1所述的大规模候选集中的语义代码搜索模型构建方法,其特征在于,预设收敛条件包括第一条件以及第二条件,所述训练目标模型学习所述样本查询语句与所述样本代码片段之间的语义信息,直到所述目标模型满足预设收敛条件时,获得语义代码搜索模型,包括:训练所述目标模型对所述样本查询语句与所述样本代码片段中的关键信息进行预测,直到所述目标模型满足第一条件时,获得预训练模型;其中,所述关键信息包括被随机遮蔽的文本片段以及预设的关键词;训练所述预训练模型学习所述样本查询语句与所述样本代码片段语义之间的相似信息,直到所述预训练模型满足所述第二条件时,获得所述语义代码搜索模型。3.根据权利要求2所述的大规模候选集中的语义代码搜索模型构建方法,其特征在于,所述训练所述目标模型对所述样本查询语句与所述样本代码片段中的关键信息进行预测,直到所述目标模型满足第一条件时,获得预训练模型,包括:执行至少一次所述目标模型的迭代步骤,直到所述目标模型满足所述第一条件时,获得所述预训练模型;其中,所述目标模型的迭代步骤包括:按照预设概率从所述样本查询语句与所述样本代码片段中确定出所述文本片段;将遮蔽了所述文本片段的所述样本查询语句与所述样本代码片段,输入到所述目标模型;根据所述目标模型对所述文本片段的预测结果,获得所述目标模型的第一模型损失;根据所述目标模型对所述关键词的识别结果,获得所述目标模型的第二模型损失;将遮蔽了关键词的所述样本查询语句与所述样本代码片段,输入到所述目标模型;根据所述目标模型对所述关键词的预测结果,获得所述目标模型的第三模型损失;根据所述第一模型损失、所述第二模型损失以及所述第三模型损失,更新所述目标模型。4.根据权利要求3所述的大规模候选集中的语义代码搜索模型构建方法,其特征在于,所述第一模型损失的表达式为:式中,θ表示所述目标模型的模型参数,第t个被遮蔽的文本片段,y
\mask
表示遮蔽了所述文本片段的所述样本查询语句与所述样本代码片段,表示前t
‑
1个文本片段的预测结果,k表示所述文本片段的数量;所述第二模型损失的表达式为:
式中,m表示所述样本代码片段中文本词汇的数量;y
i
表示第i个词汇的实际类型,p
i
表示第i个词汇的预测结果;所述第三模型损失的表达式为:式中,θ表示所述目标模型的模型参数,S
j
第j个被遮蔽的关键词,x
\s
表示遮蔽了关键词的所述样本查询语句与所述样本代码片段,S
<j
表示前j
‑
1个关键词的预测结果,|S|表示所述关键词的数量。5.根据权利要求2所述的大规模候选集中的语义代码...
【专利技术属性】
技术研发人员:牛建伟,陈俊任,孙钢灿,
申请(专利权)人:北京航空航天大学杭州创新研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。