System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及人工智能,尤其涉及一种代码搜索方法、系统及存储介质。
技术介绍
1、在软件开发的过程中,开发人员经常使用代码搜索提高开发效率。
2、在相关技术中,可以将代码片段视为普通的字符文本,以将字符文本与用户查询进行自然语言字符文本匹配,从而得到与用户查询对应的代码片段,进而实现代码搜索。
3、然而,代码片段是用编程语言表达的文本,具有特定的关键字、语法规则和特定程序结构,而用户查询是用简略的自然语言表达的文本,因此,用户查询和代码片段之间自然存在语义鸿沟。所以采用上述相关技术中的方法存在搜索的准确性和可靠性偏低的技术问题。
4、
技术介绍
部分的内容仅仅是专利技术人个人所知晓的信息,并不代表上述信息在本公开申请日之前已经进入公共领域,也不代表其可以成为本公开的现有技术。
技术实现思路
1、本公开提供一种代码搜索方法、系统及存储介质,用以解决上述技术问题中的至少一种。
2、第一方面,本公开提供一种代码搜索方法,包括:
3、从待查询代码库中提取待查询代码片段,并基于第一搜索模型确定与所述待查询代码片段对应的第一向量表示集,其中,所述第一搜索模型被训练为预测代码片段对应的向量表示、以及与查询对应的向量表示;
4、基于注释生成模型生成与所述待查询代码片段对应的待查询语义注释,并基于第二搜索模型确定与所述待查询语义注释对应的第二向量表示集,其中,所述注释生成模型被训练为预测与代码片段对应的语义注释,所述第二搜索模型被训练为
5、获得用户输入的用户查询;
6、基于查询增强模型确定与所述用户查询对应的增强查询,所述查询增强模型被训练为将查询转化为意图表达增强的替代查询;
7、基于所述第一搜索模型确定与所述增强查询对应的第三向量表示集,并基于所述第二搜索模型确定与所述增强查询对应的第四向量表示集;
8、根据所述第一向量表示集、所述第二向量表示集、所述第三向量表示集、所述第四向量表示集,从所述待查询代码片段中确定并输出与所述用户查询对应的目标代码片段。
9、在一些实施例中,所述根据所述第一向量表示集、所述第二向量表示集、所述第三向量表示集、所述第四向量表示集,从所述待查询代码片段中确定并输出与所述用户查询对应的目标代码片段,包括:
10、计算得到所述第一向量表示集与所述第三向量表示集之间的第一余弦相似度;
11、计算得到所述第二向量表示集与所述第四向量表示集之间的第二余弦相似度;
12、根据所述第一余弦相似度和所述第二余弦相似度确定并输出所述目标代码片段。
13、在一些实施例中,所述根据所述第一余弦相似度和所述第二余弦相似度确定所述目标代码片段,包括:
14、获得与所述第一搜索模型和所述第二搜索模型各自对应的权值参数;
15、根据所述第一余弦相似度、所述第二余弦相似度、以及所述权值参数,确定所述增强查询与所述待查询代码片段对应的余弦相似度得分;
16、根据所述余弦相似度得分确定并输出所述目标代码片段。
17、在一些实施例中,训练得到所述第一搜索模型、所述第二搜索模型、所述查询增强模型的过程包括:
18、从源代码文件数据集中提取训练数据集,所述训练数据集中包括训练代码片段、以及用于对所述训练代码片段进行描述的训练描述信息;
19、根据所述训练数据集训练得到所述第一搜索模型、所述第二搜索模型、所述查询增强模型。
20、在一些实施例中,根据所述训练数据集训练得到所述第一搜索模型,包括:
21、将所述训练描述信息作为训练查询,并生成第一数据集,其中,所述第一数据集表征所述训练查询与所述训练代码片段之间对应关系的查询-代码对;
22、基于所述第一数据集训练得到所述第一搜索模型。
23、在一些实施例中,根据所述训练数据集训练得到所述第二搜索模型,包括:
24、基于注释生成模型生成与所述训练代码片段对应的训练语义注释,并生成第二数据集,其中,所述注释生成模型被训练为预测与代码片段对应的语义注释,所述第二数据集表征所述训练查询与所述训练语义注释之间对应关系的查询-注释对;
25、基于所述第二数据集训练得到所述第二搜索模型。
26、在一些实施例中,根据所述训练数据集训练得到所述查询增强模型,包括:
27、对所述训练查询进行泛化处理,得到泛化训练查询,并生成第三数据集,其中,所述第三数据集表征所述训练查询与所述泛化训练查询之间对应关系的查询-泛化查询对;
28、基于所述第三数据集训练得到所述查询增强模型。
29、在一些实施例中,所述对所述训练查询进行泛化处理,得到泛化训练查询,包括下述中的至少一种:
30、对所述训练查询进行词性识别,得到所述训练查询的词性分类信息,并基于所述词性分类信息对所述训练查询进行缺省处理;
31、对所述训练查询进行同义替换处理。
32、第二方面,本公开提供一种代码搜索系统,包括:处理器,以及与所述处理器通信连接的存储器;
33、所述存储器存储计算机执行指令;
34、所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的方法。
35、第三方面,本公开提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行如第一方面任一项所述的方法。
36、第四方面,本公开提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的方法。
37、本实施例提供的代码搜索方法、系统及存储介质,包括:从待查询代码库中提取待查询代码片段,并基于第一搜索模型确定与所述待查询代码片段对应的第一向量表示集,其中,所述第一搜索模型被训练为预测代码片段对应的向量表示、以及与查询对应的向量表示;基于注释生成模型生成与所述待查询代码片段对应的待查询语义注释,并基于第二搜索模型确定与所述待查询语义注释对应的第二向量表示集,其中,所述注释生成模型被训练为预测与代码片段对应的语义注释,所述第二搜索模型被训练为预测语义注释的向量表示、以及与查询对应的向量表示;获得用户输入的用户查询;基于查询增强模型确定与所述用户查询对应的增强查询,所述查询增强模型被训练为将查询转化为意图表达增强的替代查询;基于所述第一搜索模型确定与所述增强查询对应的第三向量表示集,并基于所述第二搜索模型确定与所述增强查询对应的第四向量表示集;根据所述第一向量表示集、所述第二向量表示集、所述第三向量表示集、所述第四向量表示集,从所述待查询代码片段中确定并输出与所述用户查询对应的目标代码片段,以从代码角度和用户查询角度同时进行语义描述增强,以有效解决用户查询和代码片段之间的语义鸿沟问题,突破代码搜索性能局限。本文档来自技高网...
【技术保护点】
1.一种代码搜索方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一向量表示集、所述第二向量表示集、所述第三向量表示集、所述第四向量表示集,从所述待查询代码片段中确定并输出与所述用户查询对应的目标代码片段,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一余弦相似度和所述第二余弦相似度确定所述目标代码片段,包括:
4.根据权利要求1所述的方法,其特征在于,训练得到所述第一搜索模型、所述第二搜索模型、所述查询增强模型的过程包括:
5.根据权利要求4所述的方法,其特征在于,根据所述训练数据集训练得到所述第一搜索模型,包括:
6.根据权利要求5所述的方法,其特征在于,根据所述训练数据集训练得到所述第二搜索模型,包括:
7.根据权利要求5所述的方法,其特征在于,根据所述训练数据集训练得到所述查询增强模型,包括:
8.根据权利要求7所述的方法,其特征在于,所述对所述训练查询进行泛化处理,得到泛化训练查询,包括下述中的至少一种:
9.一种代码
10.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行权利要求1-8中任一项所述的方法。
...【技术特征摘要】
1.一种代码搜索方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一向量表示集、所述第二向量表示集、所述第三向量表示集、所述第四向量表示集,从所述待查询代码片段中确定并输出与所述用户查询对应的目标代码片段,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一余弦相似度和所述第二余弦相似度确定所述目标代码片段,包括:
4.根据权利要求1所述的方法,其特征在于,训练得到所述第一搜索模型、所述第二搜索模型、所述查询增强模型的过程包括:
5.根据权利要求4所述的方法,其特征在于,根据所述训练数据集训练得到所述第一搜...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。