[发明专利]一种基于注释语义信息的代码搜索方法有效
申请号: | 202011296561.2 | 申请日: | 2020-11-18 |
公开(公告)号: | CN112507065B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 银正强;周尔强;曹黛;罗纪杰 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F16/33 | 分类号: | G06F16/33;G06F16/338;G06F40/126;G06K9/62;G06N3/08 |
代理公司: | 成都东恒知盛知识产权代理事务所(特殊普通合伙) 51304 | 代理人: | 何健雄;廖祥文 |
地址: | 610000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 注释 语义 信息 代码 搜索 方法 | ||
1.一种基于注释语义信息的代码搜索方法,其特征在于:所述搜索方法包括:
从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练;
通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果;
所述从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练包括:
收集现有的代码仓库提取代码片段,将具备函数注释的函数代码作为一个样本,并存储为“自然语言描述,函数代码”形式;
清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式;
采用替换“自然语言描述,函数代码”形式中对应部分为其他样本对应部分的方法构造新的代码样本,其中,发生替换的样本为负样本,没有发生替换的样本为正样本;
使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc;
训练神经网络模型,使得正样本的自然语言描述的向量Vq和代码的向量Vc无限的接近,负样本无限的远离,采用余弦相似度作为衡量向量接近程度,并通过反向传播调整模型参数。
2.根据权利要求1所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果包括:
将代码仓库中的所有代码函数采用编码器E2转化为向量形式进行存储,构建代码向量仓库R;
用户搜索代码仓库时,将用户的输入使用编码器E1转化为向量形式,计算代码向量仓库R中与用户输入向量最接近的N个代码向量,返回其对应的代码作为检索结果。
3.根据权利要求1所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式包括:
基于空格、括号和控制符将文本分为小块token形式,对于以注释符号开头的token进行移除,字符串token采用特殊标记进行替换;
对每一个token根据常见的代码命名方式进行切分,产生更细粒度的token;
重新组合token以空格形式进行拼接为文本形式;
采用BPE方法进行数据压缩与编码,生成新的token。
4.根据权利要求3所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc包括:
对文本的token列表的长度进行判断,并根据对比其与指定长度M或超过指定长度M的关系后对文本进行处理;
将token映射为一个随机初始化的N维向量形式,则文本被表示为一个M×N的矩阵;
将矩阵输入一个语义提取网络Transformer中,Transformer网络的输出为M×K维矩阵,表示提取的语义矩阵;
使用池化的方法将语义矩阵转换为一个1×K维向量形式,该向量可以认为是这个文本的稠密向量表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011296561.2/1.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置