[发明专利]一种基于深度信念网络的源代码作者识别方法有效
申请号: | 201711380042.2 | 申请日: | 2017-12-20 |
公开(公告)号: | CN108108184B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 张春霞;王森;武嘉玉;王树良;牛振东;张佳籴;黄达友;张沛炎 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74;G06N3/08;G06N20/00 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 鲍文娟 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于深度信念网络的源代码作者识别方法,属于Web挖掘和信息抽取领域。本发明包括如下步骤:构建源代码数据集,对源代码数据进行预处理;基于连续n‑gram代码段模型提取源代码特征;基于训练源代码文件样本训练深度信念网络模型;利用经过训练的深度信念网络模型进行源代码文件的作者识别,输出源代码文件的作者识别结果。本发明将源代码作者识别问题转换为分类问题,通过深度信念网络识别源代码的作者身份,提高了作者身份识别的性能和效率,在信息检索、信息安全、计算机取证等领域具有广阔的应用前景。 | ||
搜索关键词: | 一种 基于 深度 信念 网络 源代码 作者 识别 方法 | ||
【主权项】:
1.一种基于深度信念网络的源代码作者识别方法,包括如下步骤:步骤1:由源代码数据获取模块构建源代码数据集,对源代码数据进行预处理;步骤2:对于源代码文件,源代码特征提取模块采用基于连续n-gram代码段模型的方法提取源代码特征;步骤3:基于训练源代码文件样本,由深度信念网络训练模块训练深度信念网络模型;步骤4:源代码作者身份识别模块采用基于深度信念网络模型的方法进行源代码作者识别。所述步骤1中,包括:采集源代码将其保存到计算机,获取源代码作者及其编写的源代码文件集合。所述步骤2中,包括:连续n-gram代码段模型也称连续n元代码段模型;基于连续n-gram代码段模型的方法提取源代码特征是指从源代码文件中提取连续n个代码段的序列,n为正整数;代码段是指源代码中被空白、空格或换行符隔开的字段串;代码段包括程序设计语言的关键词、运算符、标点符号、用户定义的标识符或它们的组合。所述步骤3中,包括:步骤3.1,构建训练源代码文件样本;对源代码数据集中的p个作者a1 ,a2 ,…,ap ,p为正整数,从源代码数据集中选取每个作者的源代码文件作为训练源代码文件样本;设选取的由作者a1 ,a2 ,…,ap 编写的源代码文件数量依次为m1 ,m2 ,…,mp ,m1 ,m2 ,…,mp 为正整数;步骤3.2,构建训练源代码文件样本的特征向量;对于源代码数据集的所有源代码文件,设提取的基于连续n-gram代码段模型的特征数目为N,N为正整数;对于每个源代码文件,构建特征向量,其特征向量由N个特征在该文件中的出现频率的倍数构成;步骤3.3,构建深度信念网络模型的输入层的输入矩阵;对训练源代码文件样本,构建MxN维矩阵A,把矩阵A输入深度信念网络模型的输入层。其中N为每个训练源代码文件的特征向量的维数,即步骤3.2中提取的特征数目;M为作者a1 ,a2 ,…,ap 的训练源代码文件数量之和,即M=m1 +m2 +…+mp ,m1 ,m2 ,…,mp 依次为作者a1 ,a2 ,…,ap 的训练源代码文件数量;步骤3.4,进入深度信念网络模型的隐藏层,通过隐藏层学习抽象度更高和区分性更强的源代码文件的特征向量;深度信念网络模型包括输入层、隐藏层和输出层构成;隐藏层包括若干受限玻尔兹曼机和反向传播层;对于第一个受限玻尔兹曼机,其可见层为步骤3.3构建的输入矩阵A。设深度信念网络模型包含w个受限玻尔兹曼机,对于第二个至第w个受限玻尔兹曼机,第k个受限玻尔兹曼机的隐藏层即为第k+1个受限玻尔兹曼机的可见层,其中,w为正整数,k=1,…,w-1;依次单独训练这w个受限玻尔兹曼机的参数,参数包括可见层任一单元与隐藏层任一单元的连接权重、可见层单元的阈值,以及隐藏层单元的阈值;步骤3.5,进入深度信念网络模型的反向传播层,对w个受限玻尔兹曼机的参数进行微调。首先,通过反向传播层和输出层获得目标预测标签与实际标签之间的误差。然后,把该误差从反向传播层向隐藏层传播,即向隐藏层的w个受限玻尔兹曼机传播,不断调整受限玻尔兹曼机的参数,使得误差尽可能最小。所述步骤4中,包括:步骤4.1,构建测试源代码文件样本的特征向量;对于测试源代码文件样本,通过步骤3.2构建测试源代码文件样本的特征向量;步骤4.2:利用经过训练的深度信念网络模型对测试源代码文件样本进行作者身份识别。也就是,通过深度信念网络模型的输出层,输出源代码文件作者识别结果;测试源代码文件样本的候选作者集合为训练源代码文件样本的作者集合{a1 ,a2 ,…,ap }。将深度信念网络模型输出层的输出向量,转化为每个源代码文件的作者类别标签,也就是,识别出了每个源代码文件的作者。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711380042.2/,转载请声明来源钻瓜专利网。