一种代码作者归属确定方法、装置、设备及介质制造方法及图纸

技术编号:39047139 阅读:16 留言:0更新日期:2023-10-10 12:00
本发明专利技术公开了一种代码作者归属确定方法、装置、设备及介质,先确定训练样本以及标注的代码作者,然后对代码的风格属性进行划分,确定训练样本对应每种风格属性的归属统计信息,接着将各归属统计信息分别输入不同特征提取分类器,根据标注作者对各特征提取分类器进行训练,以及将特征提取分类器的特征提取层提取到的归属特征进行拼接并输入综合分类器,根据标注作者对综合分类器进行训练,最后获取待确定作者归属的未知代码,通过训练后的特征提取分类器和综合分类器,确定代码作者归属。通过对代码的风格属性进行划分,采用多个特征提取分类器进行特征提取,避免了特征忽略,提高了综合分类器的特征利用,从而提高了代码作者归属确定的准确率。属确定的准确率。属确定的准确率。

【技术实现步骤摘要】
一种代码作者归属确定方法、装置、设备及介质


[0001]本专利技术涉及计算机
,特别涉及一种代码作者归属确定方法、装置、设备及介质。

技术介绍

[0002]一般的,代码作者归属确定在软件归属的检验或取证中有着重要应用,该研究在代码安全领域已有较长的发展历史。早期的代码作者归属确定主要基于统计学方法实现,通过专家经验设计显著性统计学指标以完成代码编写风格的刻画,随后由指标间的差异完成作者的区分。该方法的实现依赖于专家知识的完备性,近年来的研究采用机器学习方法确定代码作者归属。
[0003]现有技术通常采用机器学习或深度学习算法模型,通过大量数据对其进行训练,从而使算法模型归纳学习到代码作者部分编码风格属性的特征,以根据学习到的部分编码风格属性的特征确定代码作者归属。例如,代码作者可能会在代码写作的过程中,相近文件类型的代码中习惯性应用相同的模板框架,即,相近文件类型的代码中保持相同的布局特征,而算法模型可以通过学习数据集部分的感知此类编码风格属性的特征,以此确定代码作者归属。
[0004]但是,通过训练数据集训练后的算法模型,只适用于训练数据集所属的代码写作场景,在其他的代码写作场景中对代码作者归属的准确率较低。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种代码作者归属确定方法、装置、设备及介质。
[0006]本说明书采用下述技术方案:
[0007]本说明书提供了一种代码作者归属确定方法,包括:
[0008]获取代码数据集,将数据集中各段代码作为训练样本,以及标注每段代码作者的归属;
[0009]对代码的风格属性进行划分,针对每种风格属性,确定训练样本对应该风格属性的归属统计信息;
[0010]将各归属统计信息分别输入不同特征提取分类器,通过各特征提取分类器确定训练样本的各第一预测作者,以最小化各第一预测作者与标注作者之间的偏差为优化目标,通过训练样本对各特征提取分类器进行训练;
[0011]将各特征提取分类器的特征提取层提取到的归属特征进行拼接并输入综合分类器,通过综合分类器确定训练样本的第二预测作者,以最小化第二预测作者与标注作者之间的偏差为优化目标,通过训练样本对综合分类器进行训练;
[0012]获取待确定作者归属的未知代码,通过训练后的各特征提取分类器的特征提取层对未知代码进行归属特征提取,将提取得到的各归属特征进行拼接并输入综合分类器,确
定代码作者归属。
[0013]可选地,所述代码的风格特征划分为布局特征、词法特征以及句法特征。
[0014]可选地,所述针对每种风格属性,确定训练样本对应该风格属性的统计信息,具体包括:
[0015]针对布局特征,确定训练样本中各行代码的位置信息以及各行代码的字符数;
[0016]针对词法特征,确定训练样本中不同词语的出现频率;
[0017]针对句法特征,确定训练样本对应的抽象语法树中不同节点和边的出现频率。
[0018]可选地,所述将提取得到的各归属特征进行拼接并输入综合分类器,具体包括:
[0019]确定每个特征提取分类器的特征权重,其中,特征权重与当前应用场景下该特征提取分类器对应的风格属性对确定代码作者归属的贡献度呈正相关;
[0020]根据特征权重对提取得到的各归属特征进行加权得到加权归属特征,将各加权归属特征进行拼接并输入综合分类器。
[0021]可选地,所述确定每个特征提取分类器的特征权重,具体包括:
[0022]将各特征提取分类器的特征权重预设为一;
[0023]通过训练后的各特征提取分类器确定未知代码的第三预测作者,根据各第三预测作者中不同作者出现的频率确定共识结果;
[0024]针对每个特征提取分类器,当确定该特征提取分类器的第三预测作者与共识结果一致时,通过公式w
i_1
'=(1+a)w增加该特征提取分类器的特征权重;
[0025]根据各特征提取分类器的特征权重,通过公式w
i_2
'=kw
i_1
'更新各特征提取分类器的特征权重;
[0026]其中,w
i_1
'为增加权重后的特征提取分类器i的特征权重,a为权重增加因子,w为增加权重前的特征提取分类器i的特征权重,k为权重更新因子,n为特征提取分类器的数量,w
i_2
'为更新后的特征提取分类器i的特征权重。
[0027]可选地,所述当确定该特征提取分类器的第三预测作者与共识结果一致时,通过公式w
i_1
'=(1+a)w增加该特征提取分类器的特征权重,具体包括:
[0028]展示包含共识结果和提示信息的界面,提示信息用于提示用户当确认共识结果不正确时对共识结果进行修正;
[0029]响应于用户的操作,确定更新后的共识结果,当确定该特征提取分类器的第三预测作者与更新后的共识结果一致时,通过公式w
i_1
'=(1+a)w增加该特征提取分类器的特征权重。
[0030]可选地,所述特征提取分类器和综合分类器为随机森林、神经网络、支持向量机中的至少一种。
[0031]本说明书提供了一种代码作者归属确定装置,包括:
[0032]获取模块,用于获取代码数据集,将数据集中各段代码作为训练样本,以及确定对每段代码作者归属的标注;
[0033]划分模块,用于对代码的风格属性进行划分,针对每种风格属性,确定训练样本对应该风格属性的统计信息;
[0034]获取模块,用于获取代码数据集,将数据集中各段代码作为训练样本,以及标注每
段代码作者的归属;
[0035]划分模块,用于对代码的风格属性进行划分,针对每种风格属性,确定训练样本对应该风格属性的归属统计信息;
[0036]第一训练模块,用于将各归属统计信息分别输入不同特征提取分类器,通过各特征提取分类器确定训练样本的各第一预测作者,以最小化各第一预测作者与标注作者之间的偏差为优化目标,通过训练样本对各特征提取分类器进行训练;
[0037]第二训练模块,用于将各特征提取分类器的特征提取层提取到的归属特征进行拼接并输入综合分类器,通过综合分类器确定训练样本的第二预测作者,以最小化第二预测作者与标注作者之间的偏差为优化目标,通过训练样本对综合分类器进行训练;
[0038]归属确定模块,用于获取待确定作者归属的未知代码,通过训练后的各特征提取分类器的特征提取层对未知代码进行归属特征提取,将提取得到的各归属特征进行拼接并输入综合分类器,确定代码作者归属。
[0039]本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述代码作者归属确定方法。
[0040]本说明书提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述代码作者归属确定方法。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码作者归属确定方法,其特征在于,包括:获取代码数据集,将数据集中各段代码作为训练样本,以及标注每段代码作者的归属;对代码的风格属性进行划分,针对每种风格属性,确定训练样本对应该风格属性的归属统计信息;将各归属统计信息分别输入不同特征提取分类器,通过各特征提取分类器确定训练样本的各第一预测作者,以最小化各第一预测作者与标注作者之间的偏差为优化目标,通过训练样本对各特征提取分类器进行训练;将各特征提取分类器的特征提取层提取到的归属特征进行拼接并输入综合分类器,通过综合分类器确定训练样本的第二预测作者,以最小化第二预测作者与标注作者之间的偏差为优化目标,通过训练样本对综合分类器进行训练;获取待确定作者归属的未知代码,通过训练后的各特征提取分类器的特征提取层对未知代码进行归属特征提取,将提取得到的各归属特征进行拼接并输入综合分类器,确定代码作者归属。2.如权利要求1所述的代码作者归属确定方法,其特征在于,所述代码的风格特征划分为布局特征、词法特征以及句法特征。3.如权利要求2所述的代码作者归属确定方法,其特征在于,所述针对每种风格属性,确定训练样本对应该风格属性的统计信息,具体包括:针对布局特征,确定训练样本中各行代码的位置信息以及各行代码的字符数;针对词法特征,确定训练样本中不同词语的出现频率;针对句法特征,确定训练样本对应的抽象语法树中不同节点和边的出现频率。4.如权利要求1所述的代码作者归属确定方法,其特征在于,所述将提取得到的各归属特征进行拼接并输入综合分类器,具体包括:确定每个特征提取分类器的特征权重,其中,特征权重与当前应用场景下该特征提取分类器对应的风格属性对确定代码作者归属的贡献度呈正相关;根据特征权重对提取得到的各归属特征进行加权得到加权归属特征,将各加权归属特征进行拼接并输入综合分类器。5.如权利要求4所述的代码作者归属确定方法,其特征在于,所述确定每个特征提取分类器的特征权重,具体包括:将各特征提取分类器的特征权重预设为一;通过训练后的各特征提取分类器确定未知代码的第三预测作者,根据各第三预测作者中不同作者出现的频率确定共识结果;针对每个特征提取分类器,当确定该特征提取分类器的第三预测作者与共识结果一致时,通过公式w
i_1
'=(1+a)w增加该特征提取分类器的特征权重;根据各特征提取分类器的特征权重,通过公式w
i_2
'=kw
i_1
'更新各特征提取分类器的特征权重;其...

【专利技术属性】
技术研发人员:付才韩兰胜江帅郭晓威李文科李柯洪胜刘铭邹德清
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1