一种多维源代码表征学习方法和装置制造方法及图纸

技术编号:43067536 阅读:21 留言:0更新日期:2024-10-22 14:44
本发明专利技术公开了一种多维源代码表征学习方法和装置,包括:获取源代码的词法单元Token序列、抽象语法树AST、程序依赖图PDG;根据Token序列获取源代码的属性特征向量,根据AST获取源代码的结构特征向量,根据PDG获取源代码的语义特征向量,实现了将源代码的语义信息表示为稠密低维实值向量,在低维空间中高效计算实体和关系的语义联系。通过对属性特征向量、结构特征向量、语义特征向量进行特征融合处理,获取源代码的多维表征,实现了对代码信息的充分利用,以更加全面准确与智能化的方式提高下游代码任务的准确率。

【技术实现步骤摘要】

本专利技术涉及表征学习,具体涉及一种多维源代码表征学习方法和装置


技术介绍

1、表征学习是指学习数据的表示,使其在构建分类器或其他预测因子时更容易提取有用信息。目前代码表征学习方法被用于代码克隆检测、代码搜索、代码补全等多个代码分析任务中,取得了一定的成就。根据源代码的抽象层次不同,现阶段代码表征学习工作可以分为基于token的代码表征、基于树的代码表征、基于图的代码表征、基于语法和语义混合的代码表征四类。但代码表征学习技术目前仍存在如下几点局限性:

2、(1)集外词问题:基于token的代码表征通常利用词法分析器将代码中的词汇单元token划分出来。这些词汇单元通常包含关键字、数字、标识符等。将代码表示为词汇单元序列之后,利用深度学习技术对其进行建模,学习代码序列中所包含的有效信息,如功能语义信息、语法结构信息等,最后生成具有丰富代码信息的表征向量,应用于后续的代码克隆检测任务中。现有方法大多都对token进行了规范化,比如将变量名用统一的标识符来代替,这样存在的问题是会丢失部分词法信息,但是如果不进行规范化,会存在集外词(out-of-v本文档来自技高网...

【技术保护点】

1.一种多维源代码表征学习方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,其中,所述获取源代码的词法单元Token序列、抽象语法树AST、程序依赖图PDG,包括:

3.如权利要求1所述的方法,其特征在于,所述根据所述Token序列获取所述源代码的属性特征向量,包括:

4.如权利要求3所述的方法,其特征在于,所述根据所述Token序列构建初始词汇表,包括:

5.如权利要求1所述的方法,其特征在于,所述根据所述AST获取所述源代码的结构特征向量,包括:

6.如权利要求1所述的方法,其特征在于,所述根据所述PDG获取...

【技术特征摘要】

1.一种多维源代码表征学习方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,其中,所述获取源代码的词法单元token序列、抽象语法树ast、程序依赖图pdg,包括:

3.如权利要求1所述的方法,其特征在于,所述根据所述token序列获取所述源代码的属性特征向量,包括:

4.如权利要求3所述的方法,其特征在于,所述根据所述token序列构建初始词汇表,包括:

5.如权利要求1所述的方法,其特征在于,所述根据所述...

【专利技术属性】
技术研发人员:马锐王丹任静雯陈逸轩陈泓铭
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1