[发明专利]一种基于结构化嵌入的交互式代码搜索方法及装置有效
申请号: | 201911420354.0 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111159223B | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 彭敏;黎芮彤;胡刚;刘进;崔晓晖 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 罗飞 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 结构 嵌入 交互式 代码 搜索 方法 装置 | ||
本发明提供了一种基于结构化嵌入的交互式代码搜索方法,首先从收集的原始数据中抽取出软件存储库以及代码‑描述匹配对的模型语料,然后对代码存储库及模型语料的分词,接着采用预设工具构建预训练的结构化嵌入;接下来抽取高质量模型语料并划分;然后构建依次包含特征抽取模块、交互注意力抽取模块和相似度匹配模块的交互式代码搜索模型NICS,并设置训练网络的合页损失函数;再将预训练结构化词嵌入加载至交互式代码搜索NICS模型,并对NICS模型进行训练,最后利用训练好的NICS模型对待处理的查询进行预测,获得与查询对应的代码搜索结果。本发明可以有效地检索代码片段,并在所有基准测试中取得最先进的性能。
技术领域
本发明涉及软件工程的代码技术领域,具体涉及一种基于结构化嵌入的交互式代码搜索方法及装置。
背景技术
代码搜索是软件开发实践中常见的开发人员活动,几十年来一直是软件开发的重要组成部分。先前的研究显示,超过60%的开发者每天搜索源代码。由于在线公共代码存储库(例如,StackOverflow,GitHub,Krugle)包含数百万个开源项目,许多设计的搜索引擎可帮助开发人员用自然语言在软件问答社区中查询相关的代码片段用以维护或修复代码。但不幸的是,即使重构这些查询的描述,大多数现有的搜索引擎也会经常会返回不相关代码或示例代码。因而目前在学术领域和工业界越来越关注代码搜索技术。
早期方法是应用信息检索(IR)技术,但大多数方法在很大程度上依赖于自然语言查询和源代码中包含的术语匹配的质量。但是,由于自然语言查询和源代码是异构的,因此它们可能无法共享足够的通用标识符来有效地匹配术语,尤其是在文本较短的代码查询中。尽管一些现有方法为查询重构提供了有效的方法(例如,查询扩展,文本重构),但过于具体查询的文本匹配仍然不会返回相应的结果。此外,这些抽取式的代码搜索方法无法有效地处理查询中不相关关键字。事实上,自然语言查询和源代码作为异构语言可能是语义相关的,就像机器翻译一样。因此,在近期的工作中,引入了神经方法来解决在理解自然语言查询和源代码语义方面的困难。
在以前的工作中,许多基于深度学习的方法被应用于查询和源代码的统一表示学习任务,如代码摘要,代码缺陷定位,代码克隆监测等等。同样,对于代码搜索,最近有研究提出了一个用于搜索Java方法体的双模式深度神经网络模型(CODEnn),它能将代码以及其自然语言描述映射对统一转换到高维矢量空间以进行相似匹配。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
CODEnn依赖于代码分解,需要从受限的方法类型代码段中提取子元素(包括方法名称、token和API序列)。而每个子元素需要单独嵌入到神经网络中,然后合并到一个表示代码的矢量中。但是,这种基于代码拆分的嵌入方法可能不适合其他程序类型或多结构代码片段。因而最近提出了一些有监督的双模式神经代码搜索方法如CoaCor,NCS,UNIF等模型,这些模型可学习到了自然语言查询和整体代码片段的联合嵌入表示,以进一步扩展其应用的代码类型范围。但这些模型大多简单的采用Word2Vec或One-Hot词嵌入,在网络的预训练中并没有融入额外的结构化嵌入信息。
由此可知,现有技术中的方法存在搜索性能不够的技术问题。
发明内容
有鉴于此,本发明提供了一种基于结构化嵌入的交互式代码搜索方法及装置,用以解决或者至少部分解决现有技术中的方法存在搜索性能不够的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种基于结构化嵌入的交互式代码搜索方法,包括:
步骤S1:收集原始数据,对原始数据中抽取出软件存储库以及代码-描述匹配对的模型语料,在抽取过程中获取每条代码-描述匹配对的社交属性值;
步骤S2:对模型语料进行结构化分词以及预处理,得到处理后的语料;
步骤S3:采用预设工具对处理后的语料进行词嵌入训练,构建预训练的结构化词嵌入;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911420354.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种聚酯胎基布回收再利用的方法
- 下一篇:一种可进行笔画分析的书写板