【技术实现步骤摘要】
一种代码查询模型的生成方法和计算机设备
本申请涉及代码查询匹配领域,特别是涉及一种代码查询模型的生成方法和计算机设备。
技术介绍
随着互联网的发展,程序代码开源思想盛行,各个开源社区蓬勃发展,成千上万的高质量开源项目在面向软件开发者的信息搜索和分享平台中被在线公开。程序复用是提高软件开发效率的捷径,特别是在企业开发实践中构建软件项目开发几乎都不是从零开始,而是复用其他项目中的源代码示例。复用程序代码通常需要在众多开源项目中搜索符合开发人员要求的程序代码,现有技术中,大多是基于直接匹配和查询扩展的方法查询符合开发要求的代码,直接匹配和查询扩展的方法难以处理程序语言与自然语言之间异构语义的词语,在程序代码数据库庞大,结构繁杂时,无法找到完全符合开发要求的代码的问题。因此,现有技术有待改进。
技术实现思路
本专利技术所要解决的技术问题是,现有的直接匹配和查询扩展的方法难以处理程序语言与自然语言之间异构语义的词语,提供了一种代码查询模型的生成方法和计算机设备,通过初始词嵌入模块和初始Transfo ...
【技术保护点】
1.一种代码查询模型的生成方法,其特征在于,包括:/n在训练集中选取匹配语句对和非匹配语句对,其中,所述匹配语句对包括查询语句和该查询语句对应的匹配代码语句,所述非匹配语句对包括该查询语句和该查询语句对应的非匹配代码语句;/n基于初始词嵌入模块确定所述匹配语句对对应的匹配词嵌入向量集,以及基于所述初始词嵌入模块确定所述非匹配语句对对应的非匹配词嵌入向量集;/n基于初始Transformer模块和所述匹配词嵌入向量集确定匹配词嵌入矩阵集,以及基于所述初始Transformer模块和所述非匹配词嵌入向量集确定非匹配词嵌入矩阵集;/n基于初始交互注意力模块和所述匹配词嵌入矩阵集确 ...
【技术特征摘要】
1.一种代码查询模型的生成方法,其特征在于,包括:
在训练集中选取匹配语句对和非匹配语句对,其中,所述匹配语句对包括查询语句和该查询语句对应的匹配代码语句,所述非匹配语句对包括该查询语句和该查询语句对应的非匹配代码语句;
基于初始词嵌入模块确定所述匹配语句对对应的匹配词嵌入向量集,以及基于所述初始词嵌入模块确定所述非匹配语句对对应的非匹配词嵌入向量集;
基于初始Transformer模块和所述匹配词嵌入向量集确定匹配词嵌入矩阵集,以及基于所述初始Transformer模块和所述非匹配词嵌入向量集确定非匹配词嵌入矩阵集;
基于初始交互注意力模块和所述匹配词嵌入矩阵集确定所述匹配语句对对应的第一相似度,以及基于所述初始交互注意力模块和所述非匹配词嵌入矩阵集确定所述非匹配语句对对应的第二相似度;
基于所述第一相似度和所述第二相似度修改所述初始词嵌入模块、所述Transformer模块和所述初始交互注意力模块的参数,并继续执行所述在训练集中选取匹配语句对和非匹配语句对的步骤,直至满足预设训练条件,以得到代码查询模型,其中,所述代码查询模型包括已训练词嵌入模块、已训练Transformer模块和已训练交互注意力模块。
2.根据权利要求1所述的代码查询模型的生成方法,其特征在于,所述匹配词嵌入向量集包括:查询词嵌入向量和匹配代码词嵌入向量;所述基于初始词嵌入模块确定所述匹配语句对对应的匹配词嵌入向量集,具体包括:
将所述匹配语句对输入所述初始词嵌入模块,以得到所述查询语句对应的查询词嵌入向量,以及所述匹配代码语句对应的匹配代码词嵌入向量。
3.根据权利要求2所述的代码查询模型的生成方法,其特征在于,所述匹配词嵌入矩阵集包括:查询词嵌入矩阵和匹配代码嵌入矩阵,所述初始Transformer模块包括若干注意力头,每个注意力头均各自分别配置有查询/键/值权重矩阵;所述基于初始Transformer模块和所述匹配词嵌入向量集确定匹配词嵌入矩阵集,具体包括:
将所述查询词嵌入向量输入所述初始Transformer模块中每个注意力头各自分别对应的查询/键/值权重矩阵,确定所述查询词嵌入向量对应的查询词嵌入矩阵;
将所述匹配代码词嵌入向量输入所述初始Transformer模块中每个注意力头各自分别对应的查询/键/值权重矩阵,确定所述匹配代码词嵌入向量对应的匹配代码词嵌入矩阵。
4.根据权利要求1所述的代码查询模型的生成方法,其特征在于,所述初始交互注意力模块包括初始交互注意力子模块和初始相似匹配层;所述基于初始交互注意力模块和所述匹配词嵌入矩阵集确定所述匹配语句对对应的第一相似度,具体包括:
将所述匹配词嵌入矩阵集输入所述初始交互注意力子模块,以得到查询交互向量和匹配代码交互向量;
将所述查询交互向量和所述匹配代码交互向量输入初始所述相似匹配层,以得到所述匹配语句对对应的第一相似度。
5.根据权利要求4所述的代码查询模型的生成方法,其特征在于,所述初始交互注意力子...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。