[发明专利]一种基于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 代码 编程 语言 分类 方法 | ||
本发明提供了一种基于Transformer的代码编程语言分类方法,包括以下步骤:(1)从Stack Overflow上搜集问答帖子作为数据集,对原始数据集中的数据进行数据预处理;(2)对使用BPE分词后的数据进行词嵌入将词转换成向量;(3)基于上述构建的数据集,对RoBERTa模型进行微调,将生成的词向量输入进RoBERTa模型,通过双层的Transformer编码器进行代码语义的学习,生成语义表示向量Xsemantic;(4)将语义向量Xsemantic通过线性层映射到编程语言类别标签上,通过Softmax算法得到相应的编程语言。本发明的有益效果为:可以根据代码片段快速识别代码类型,以起到辅助开发人员在问答网站上快速寻找到解决方案的作用。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Transformer的代码编程语言分类方法。
背景技术
在软件开发周期中,不同的开发任务通常使用不同的编程语言(如Java、Python、C#、C语言等)。在大多数情况下,针对不同编程语言类型的问题需要的解决方案是不同的。在软件开发过程中程序员经常会遇到各种问题,在问答网站发帖子寻求解决方案成为主流的解决方式。因此当开发人员在问答网站上(例如Stack Overflow)提问时,网站需要标记该语言的类型从而快速的找到对应的解决方案,Stack Overflow依赖于帖子中源代码的语言标签来匹配能够提供答案的用户。然而,在Stack Overflow中的新用户或新手开发人员可能因为对于源代码不熟悉的缘故,无法正确地标记他们的帖子中代码帖子的语言类型。源代码分类工具可以根据代码片段快速识别代码类型,从而帮助Stack Overflow快速筛选出与问题相对应的解决方案。且代码分类是软件工程领域长期研究的热点问题,代码分类的研究可以推动对各子领域的发展,例如,程序理解,漏洞检测以及恶意软件检测等,可以协助后续的软件升级,降低软件维护的成本。
已有工作通过机器学习方法建立分类模型,如朴素贝叶斯分类器,或者随机森林分类器,但是基于传统机器学习的分类方法在性能上存在一定的瓶颈,分类效果并不好。少数使用深度学习模型(CNN,RNN)的分类方法效果和传统机器学习方法相比,分类效果有所提升但是效果仍不佳。
如何解决上述技术问题成为本发明面临的课题。
发明内容
本发明的目的在于提供一种基于Transformer的代码编程语言分类方法。
本发明的思想为:本发明提出基于深度学习的代码分类方法,即借助基于Transformer编码器的RoBERTa预训练模型作为本发明的分类模型,本发明的方法在相同的数据集上的分类效果已经优于现有的最佳方法。
本发明是通过如下措施实现的:一种基于Transformer的代码编程语言分类方法,其中,包括以下步骤:
(1)、搜集来自Stack Overflow中问答帖子的内容,从帖子中获取代码片段以及代码的编程语言类型的标记,对收集的数据进行清洗、过滤,得到数据集D,将数据集D中的数据格式设定为代码,编程语言类型标签;
(2)、对数据集D中的代码片段进行分词处理;
(3)、将分词输入嵌入层得到分词的特征向量X;
(4)、基于上述所建的数据集,通过数据集D中划分的训练集数据对基于Transformer的预训练模型进行训练微调,预训练模型使用Transformer的编码器作为语义学习算法的主要框架,可以捕捉真实意义上的双向上下文信息,具体包括如下步骤:
(4-1)、嵌入层中学习到的特征向量X输入到预训练模型中的双向编码器(Bidirectional Encoder)中进行语义学习,具体包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110430772.9/2.html,转载请声明来源钻瓜专利网。
- 基于Transformer+LSTM神经网络模型的商品销量预测方法及装置
- 一种基于Transformer模型自然场景文字识别方法
- 一种深度Transformer级联神经网络模型压缩算法
- 点云分割方法、系统、介质、计算机设备、终端及应用
- 基于Transformer的中文智能对话方法
- 一种基于改进Transformer模型的飞行器故障诊断方法和系统
- 一种基于Transformer模型的机器翻译模型优化方法
- 基于Transformer和增强交互型MPNN神经网络的小分子表示学习方法
- 基于U-Transformer多层次特征重构的异常检测方法及系统
- 基于EfficientDet和Transformer的航空图像中的飞机检测方法