【技术实现步骤摘要】
本专利技术涉及代码搜索,尤其涉及一种基于预训练模型的代码搜索系统及方法。
技术介绍
1、代码搜索任务是帮助开发人员可以通过搜索一个大规模的代码库来重用以前编写的代码片段的行为。代码搜索需要用户输入一段描述代码功能的自然语言,然后模型输出相对应的编程语言供用户使用。代码搜索技术可以大大降低开发人员编写代码的时间,提升工作效率,并且提升软件质量。
2、在早期,编程语言和自然语言的搜索主要通过检索技术实现。codenn模型第一次将代码片段和自然语言描述联合嵌入到高维向量空间中,这样代码片段及其相应的描述就具有相似的向量。使用统一的向量表示,可以根据其向量检索与自然语言查询相关的代码片段。语义相关的单词也可以被识别,在查询中可以处理无关/有噪声的关键字。其性能相比于传统的检索技术有较大提升。更为重要的是,codenn提出了统一编程语言和自然语言到同一维度的概念,为后来的模型指出一条新的方向。
3、如今基于转换器的预训练语言模型,如bert模型、roberta模型等,在自然语言处理(nlp)任务中取得了巨大的成功。code
...【技术保护点】
1.一种基于预训练模型的代码搜索系统,其特征在于:包括数据采集模块、代码片段预处理模块、Token特征提取模块、自然语言预处理模块、自然语言特征提取模块、自注意力嵌入模块、句子相似度计算模块、相似度计算模块;
2.根据权利要求1所述的一种基于预训练模型的代码搜索系统,其特征在于:还包括聚类模块;所述聚类模块利用聚类算法在高维空间中评估代码片段之间的相似性,并基于这些相似性把相近的代码片段归集成簇;在用户发起搜索请求时,首先确定用户的自然语言描述与哪个向量簇的相似度最高;然后,通过自注意力嵌入模块以及相似度计算模块将特定的向量簇进行相似度分析并识别出最匹配的
...【技术特征摘要】
1.一种基于预训练模型的代码搜索系统,其特征在于:包括数据采集模块、代码片段预处理模块、token特征提取模块、自然语言预处理模块、自然语言特征提取模块、自注意力嵌入模块、句子相似度计算模块、相似度计算模块;
2.根据权利要求1所述的一种基于预训练模型的代码搜索系统,其特征在于:还包括聚类模块;所述聚类模块利用聚类算法在高维空间中评估代码片段之间的相似性,并基于这些相似性把相近的代码片段归集成簇;在用户发起搜索请求时,首先确定用户的自然语言描述与哪个向量簇的相似度最高;然后,通过自注意力嵌入模块以及相似度计算模块将特定的向量簇进行相似度分析并识别出最匹配的代码片段,最后把最匹配的代码片段作为结果反馈给用户。
3.一种基于预训练模型的代码搜索方法,基于权利要求1所述系统实现,其特征在于:包括以下步骤:
4.根据权利要求3所述的一种基于预训练模型的代码搜索方法,其特征在于:所述步骤2使用分词工具对每一段代码片段对应的自然语言描述进行分词处理,并过滤掉分词结果中包含的特殊符号,得到每一代码片段的自然语言描述序列n;其中,n={n1,n2,...,nn}表示自然语言描述序列中所有单词的集合,自然语言描述序列的长度为n。
5.根据权利要求4所述的一种基于...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。