[发明专利]一种基于Transformer的代码编程语言分类方法在审

专利信息
申请号: 202110430772.9 申请日: 2021-04-21
公开(公告)号: CN113139054A 公开(公告)日: 2021-07-20
发明(设计)人: 于池;陈翔;周彦琳;杨光;刘珂 申请(专利权)人: 南通大学
主分类号: G06F16/35 分类号: G06F16/35;G06F40/30;G06F40/289;G06N3/04;G06N3/08
代理公司: 南京经纬专利商标代理有限公司 32200 代理人: 朱小兵
地址: 226019 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 transformer 代码 编程 语言 分类 方法
【权利要求书】:

1.一种基于Transformer的代码编程语言分类方法,其特征在于,包括以下步骤:

(1)、搜集来自Stack Overflow中问答帖子的内容,从帖子中获取代码片段以及代码的编程语言类型的标记,对收集的数据进行清洗、过滤,得到数据集D,将数据集D中的数据格式设定为代码,编程语言类型标签;

(2)、对数据集D中的代码片段进行分词处理;

(3)、将分词输入嵌入层得到分词的特征向量X;

(4)、基于上述所建的数据集,通过数据集D中划分的训练集数据对基于Transformer的预训练模型进行训练微调,预训练模型使用Transformer的编码器作为语义学习算法的主要框架,可以捕捉真实意义上的双向上下文信息,具体包括如下步骤:

(4-1)、嵌入层中学习到的特征向量X输入到预训练模型中的双向编码器中进行语义学习,具体包括如下步骤:

(4-1-1)、将特征向量输入到多头注意力层中,接着通过残差连接和归一化层,使得矩阵运算维度一致;

(4-1-2)、通过前馈神经网络层,使用残差连接和归一化层生成语义向量Y;

(4-2)、语义学习得到的语义向量Y通过线性层映射到数据集中的编程语言类型标签上,通过softmax函数得到最终分类的编程语言类型。

2.根据权利要求1所述的基于Transformer的代码编程语言分类方法,其特征在于,所述步骤(2)中对代码片段分词使用BPE算法,将数据集的代码片段当作文本进行分词,将代码片段中的单词和符号拆分为字符序列,并在末尾添加后缀“/w”,避免了训练集中出现更多的“[UNK]”符号,BPE算法对代码片段分词可以有效解决在使用测试集测试模型时出现的OOV(Out-Of-Vocabulary)问题。

3.根据权利要求1或2所述的基于Transformer的代码编程语言分类方法,其特征在于,所述步骤(3)中的分词的嵌入得到特征向量,具体内容为以下步骤:

(3-1)通过分词的位置嵌入(PositionEmbedding)将分词的位置信息编码成特征向量,本发明将模型中的位置编码类型设置为“absolute”,即表示为position_embedding_type:absolute,模型根据分词的绝对位置信息作为编码依据,从而使得位置编码会在词向量中加入单词的位置信息;

(3-2)通过分段嵌入(Segment Embedding)来区分两个句子之间的关系;

(3-3)最后通过令牌嵌入(Token Embedding)后将词映射成向量,将三个学习的向量相叠加得到最终代码片段的特征向量X,即表示为:X=Position Embedding+SegmentEmbedding+Token Embedding。

4.根据权利要求1-3任一项所述的基于Transformer的代码编程语言分类方法,其特征在于,所述步骤(4)中的基于Transformer的预训练模型为RoBERTa模型,使用RoBERTa预训练模型作为编码器将分词映射到高维的向量空间。

5.根据权利要求4所述的基于Transformer的代码编程语言分类方法,其特征在于,所述步骤(4)具体包括如下步骤:

(1)特征向量进入多头注意力层中,然后采用残差连接和归一化层,使得矩阵运算的维度一致,并将网络中的隐藏层归一化为标准正态分布,从而加快了模型的训练速度和收敛速度;

(2)所述RoBERTa预训练模型的参数设置如下:

所述RoBERTa预训练模型的词向量维度设置为768;

所述RoBERTa预训练模型的编码器-解码器设置为12层;

所述RoBERTa预训练模型的注意力机制的Dropout设置为为0.1;

所述RoBERTa预训练模型的最大位置编码设置为514;

所述RoBERTa预训练模型的隐藏层激活函数为gelu函数;

所述RoBERTa预训练模型的隐藏层Dropout设置为0.1;

所述RoBERTa预训练模型的隐藏层神经元数设置为768;

所述RoBERTa预训练模型的编码器中间的隐层神经元数设置为3072;

所述RoBERTa预训练模型的词表大小为50265。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110430772.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top