当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于乘积量化的高效代码搜索方法技术

技术编号:41199129 阅读:45 留言:0更新日期:2024-05-07 22:26
本发明专利技术提供一种基于乘积量化的高效代码搜索方法,涉及代码搜索技术领域。该方法首先获取代码片段和代码片段对应的自然语言描述;并对获取的代码片段和对应的自然语言描述,进行预处理,提取代码片段的多种特征信息;然后构建代码片段特征向量;并将代码片段特征向量量化成低维向量;再针对用户输入的自然语言查询进行预处理,得到自然语言序列;进而构建自然语言查询向量;并对自然语言查询向量进行维度分段;进而为每个自然语言查询子向量构建查询表;最后在代码数据库中查找到与自然语言查询向量最为相似的代码片段;并使用重排对查询结果进行二次筛选。该方法可以在不牺牲基线代码搜索模型过多准确率的情况下,大幅度提升代码搜索速度。

【技术实现步骤摘要】

本专利技术涉及代码搜索,尤其涉及一种基于乘积量化的高效代码搜索方法


技术介绍

1、代码搜索是软件工程领域的核心任务,其定义为给定一项描述程序语言的自然语言语句,可以在海量的代码片段数据库中寻找到与自然语言描述相似程度最高的代码片段返回。随着互联网技术的不断发展,软件已经应用到人类生活的方方面面,用户对软件所具备的功能要求也越来越高。在软件开发过程中,程序开发人员通常会使用描述代码功能的自然语言语句在互联网上搜索类似功能的代码片段,以重用代码片段,提升软件开发的效率。而随着网络上开源代码的数据库规模成指数倍而增长,提升代码检索的效率将会大大加快软件开发的过程。

2、传统的代码搜索技术是将源代码视为纯文本,通过在代码数据集中一一匹配代码与自然语言查询之间的文本相似性,从而返回代码搜索结果,这种方法的代码检索效率低,因为代码片段不仅包含文本信息,其中还包含丰富的语义语法信息和结构化的编程思想。为了充分理解源代码中的信息,目前大部分研究是使用深度学习的方法将代码片段和自然语言描述嵌入到向量空间中,通过比较代码向量与自然语言描述向量的余弦相似度,从而返本文档来自技高网...

【技术保护点】

1.一种基于乘积量化的高效代码搜索方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种基于乘积量化的高效代码搜索方法,其特征在于:所述步骤2对代码片段和自然语言描述进行预处理,去除数据集中重复的代码片段,并将注释内容少于设定单词数的方法体删除;提取代码片段的函数方法名信息、API信息、Token令牌标记信息和程序依赖图多种特征信息。

3.根据权利要求2所述的一种基于乘积量化的高效代码搜索方法,其特征在于:所述步骤2采用驼峰命名规则将代码片段中的函数方法名拆分成多个单词的组合;将源代码文件解析成抽象语法树,并使用遍历方法体的抽象语法树方法提取代码片段中AP...

【技术特征摘要】

1.一种基于乘积量化的高效代码搜索方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种基于乘积量化的高效代码搜索方法,其特征在于:所述步骤2对代码片段和自然语言描述进行预处理,去除数据集中重复的代码片段,并将注释内容少于设定单词数的方法体删除;提取代码片段的函数方法名信息、api信息、token令牌标记信息和程序依赖图多种特征信息。

3.根据权利要求2所述的一种基于乘积量化的高效代码搜索方法,其特征在于:所述步骤2采用驼峰命名规则将代码片段中的函数方法名拆分成多个单词的组合;将源代码文件解析成抽象语法树,并使用遍历方法体的抽象语法树方法提取代码片段中api信息;为了提取令牌标记信息,建立关键词表,并使用stanfordcore nlp方法与相关约束规则相结合来对代码片段分词,从而得到代码令牌标记信息;提取代码中的节点信息和数据流信息,将代码转换为图结构表示,并使用深度优先遍历的方式生成代码的程序依赖图序列,从而得到代码的程序依赖图特征信息。

4.根据权利要求3所述的一种基于乘积量化的高效代码搜索...

【专利技术属性】
技术研发人员:印莹宫玉琪王驰徐久强赵宇海
申请(专利权)人:东北大学
类型:发明
国别省市:

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

1