[发明专利]一种利用CodeBert各层表征信息的代码编程语言分类方法在审
申请号: | 202210170049.6 | 申请日: | 2022-02-24 |
公开(公告)号: | CN114418033A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 陈翔;刘珂;杨光;曲豫宾;周彦琳;夏鸿崚;顾亚锋;于池 | 申请(专利权)人: | 南通大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F40/289;G06F16/35;G06F8/41;G06N3/08 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 张俊俊 |
地址: | 226019 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 codebert 表征 信息 代码 编程 语言 分类 方法 | ||
本发明提供了一种基于CodeBert的代码编程语言分类方法,属于计算机应用技术领域。其技术方案为:包括以下步骤:(1)对原始数据集进行处理,去除其中的噪音,并使用BPE方法进行分词;(2)从CodeBert的每一层中提取表征信息作为表征信息序列,使用双向循环神经网络(Bi‑LSTM)和注意力机制关注可提供重要表征信息的层;(3)基于语料库对构建的模型进行训练,得到代码编程语言分类模型。本发明的有益效果为:该方法能快速识别源代码所属的编程语言类型,降低手工分类源代码编程语言的成本。
技术领域
本发明涉及计算机技术领域,尤其涉及一种利用CodeBert各层表征信息的代码编程语言分类方法。
背景技术
在软件的开发和维护过程中,程序员经常会遇到各种难以解决的问题,在程序员问答网站上发布帖子来寻求问题的解决方案成为了主流的解决方式。但程序员通常使用不同的编程语言(如Java、Python、C#、JavaScript等)来完成不同的开发任务,在大多数情况下,针对不同编程语言的问题所需要的解决方案也是各不相同的。因此,当开发人员在问答网站(如Stack Overflow等)上发布帖子时,通过标记所使用编程语言的类型能够帮助提问者快速的找到相应的解决方案,网站也可以根据帖子中所标记的编程语言类型来高效匹配能够提供答案的用户。然而,这些程序员问答网站的新用户或者是新手开发人员往往由于对源代码不够熟悉而无法正确的标记问题帖中代码的编程语言类型,这就阻碍了开发人员寻求解决方案的进程。因此,借助可以快速识别编程语言类型的源代码自动分类工具就可以快速而又准确地给问题帖打上标记,从而帮助提问者快速的从程序员问答网站上得到与问题相对应的解决方案。除此之外,代码分类也是软件工程领域长期研究的热点问题之一,通过对代码分类任务进行研究可以推动各子领域的发展,例如,漏洞检测、恶意软件检测以及程序理解等,进而降低软件的维护成本,协助后续的软件升级等工作。
已有的工作大多基于传统机器学习的方法建立分类模型,如随机森林分类器、朴素贝叶斯分类器等,但是基于传统机器学习的分类方法的分类效果并不好。少数基于深度学习模型的分类方法(如CNN、RNN等)虽然与传统机器学习方法相比较有了一定的提升,但是仍然达不到令人满意的性能。
源代码编程语言自动分类器能快速识别编程语言类型,大大的减少了手工分类的成本,同时,代码分类也是软件工程领域长期研究的热点问题之一,通过对代码分类任务进行研究能推动各子领域的发展,例如,漏洞检测、恶意软件检测以及程序理解等,进而降低软件的维护成本。
已有的工作大多基于传统机器学习的方法建立分类模型,如随机森林分类器、朴素贝叶斯分类器等,但是基于传统机器学习的分类方法的分类效果并不好。少数基于深度学习模型的分类方法(如CNN、RNN等)虽然与传统机器学习方法相比较有了一定的提升,但是仍然达不到令人满意的性能。
发明内容
本发明的目的在于提供一种利用CodeBert各层表征信息的代码编程语言分类方法,以辅助开发人员根据编程语言对代码进行分类为角度,提出利用CodeBert各层表征信息的代码编程语言分类方法,该发明所提出的方法首先提取预训练模型CodeBert每一层中的表征信息,并将它们视为表征信息序列,然后通过双向循环神经网络(即Bi-LSTM)和注意力机制来学习每一层中表征信息的重要性,进而构建代码编程语言分类模型。
本发明是通过如下措施实现的:一种利用CodeBert各层表征信息的代码编程语言分类方法,其中,包括以下步骤:
(1)首先,本发明搜集了19种常见编程语言的代码片段,然后本发明使用BPE算法对代码片段当成文本进行分词,将代码片段中的单词和符号拆分为字符序列,并在末尾添加后缀“/w”,避免了训练集中更多的“[UNK]”符号,BPE算法对代码片段分词可以有效解决在使用测试集测试模型时出现OOV(Out-Of-Vocabulary)问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210170049.6/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置