买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京航空航天大学
摘要:本发明公开了一种基于结构特征和序列特征的代码补全方法,包括预处理部分、代码部分转换和训练部分;在预处理部分,从开源平台收集源代码,将源代码转换为抽象语法树形式;采用字节对编码方式建立对应词表;代码转换部分使用扩展的注意力机制抽取代码的结构特征和序列特征;最后采用Transfomer解码器作为基本网络模型,扩展注意力机制,经过softmax层计算概率,并输出结果;本发明引入字节对编码算法为值建立词表,使得构建的语言模型的未登录词问题大大减小;此外,通过从代码的两个维度上考虑了代码的语义信息,使得代码补全的准确度提高,帮助用户得到更为准确的候选。
主权项:1.一种基于结构特征和序列特征的代码补全方法,其特征在于,包括以下步骤:步骤S1、代码预处理;从开源平台收集源代码,将源代码转换为抽象语法树形式;采用字节对编码方式建立对应词表;步骤S2、代码转换;使用扩展的注意力机制抽取代码的结构特征和序列特征;步骤S3、训练部分;采用Transfomer解码器作为基本网络模型,并扩展注意力机制,其中扩展内容为引入新的矩阵的和变量分别捕捉代码的相对结构信息和相对位置关系;最后经过softmax层计算概率,并输出结果;所述步骤S2中代码转换具体步骤包括:步骤S2.1、基于步骤S1获取的抽象语法树形式进行转换处理,抽取抽象语法树的结构特征;考查树上的每一对结点,通过遍历的方式找到唯一路径,所有路径共同表征了所述抽象语法树的相对结构信息和层次信息;步骤S2.2、在先序遍历后得到抽象语法树序列,考查序列上的每对结点的相对位置关系,抽取序列特征;所述步骤S2.1中路径表示方式如下:UDpatha,b=UiDj其中Ui表示从结点a到结点b向上移动的次数,Dj表示从结点a到结点b向下移动的次数;在神经网络计算中引入矩阵R代表UDpath构成的矩阵: 其中Q,K,V代表输入元素的查询、键和值向量组成的矩阵;采用softmax函数计算出决定V的表达程度的权重;是为输入元素创建查询、键和值向量的维度;所述步骤S2.2中抽取序列特征具体方法如下:代码序列特征表现为重复模式和规律性信息,抽取序列特征即序列上结点的相对位置编码,具体表示如下: 其中zi是xi的注意力得分,WV、WQ、WK是可训练矩阵,aij是xi对当前位置xj的关注度,是扩展注意力机制的两个可训练参数;aij的计算是通过softmax函数得到概率分布。
全文数据:
权利要求:
百度查询: 南京航空航天大学 一种基于结构特征和序列特征的代码补全方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。