【技术实现步骤摘要】
本专利技术涉及表征学习,具体涉及一种多维源代码表征学习方法和装置。
技术介绍
1、表征学习是指学习数据的表示,使其在构建分类器或其他预测因子时更容易提取有用信息。目前代码表征学习方法被用于代码克隆检测、代码搜索、代码补全等多个代码分析任务中,取得了一定的成就。根据源代码的抽象层次不同,现阶段代码表征学习工作可以分为基于token的代码表征、基于树的代码表征、基于图的代码表征、基于语法和语义混合的代码表征四类。但代码表征学习技术目前仍存在如下几点局限性:
2、(1)集外词问题:基于token的代码表征通常利用词法分析器将代码中的词汇单元token划分出来。这些词汇单元通常包含关键字、数字、标识符等。将代码表示为词汇单元序列之后,利用深度学习技术对其进行建模,学习代码序列中所包含的有效信息,如功能语义信息、语法结构信息等,最后生成具有丰富代码信息的表征向量,应用于后续的代码克隆检测任务中。现有方法大多都对token进行了规范化,比如将变量名用统一的标识符来代替,这样存在的问题是会丢失部分词法信息,但是如果不进行规范化,会存在集外
...【技术保护点】
1.一种多维源代码表征学习方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,其中,所述获取源代码的词法单元Token序列、抽象语法树AST、程序依赖图PDG,包括:
3.如权利要求1所述的方法,其特征在于,所述根据所述Token序列获取所述源代码的属性特征向量,包括:
4.如权利要求3所述的方法,其特征在于,所述根据所述Token序列构建初始词汇表,包括:
5.如权利要求1所述的方法,其特征在于,所述根据所述AST获取所述源代码的结构特征向量,包括:
6.如权利要求1所述的方法,其特征在于,所
...【技术特征摘要】
1.一种多维源代码表征学习方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,其中,所述获取源代码的词法单元token序列、抽象语法树ast、程序依赖图pdg,包括:
3.如权利要求1所述的方法,其特征在于,所述根据所述token序列获取所述源代码的属性特征向量,包括:
4.如权利要求3所述的方法,其特征在于,所述根据所述token序列构建初始词汇表,包括:
5.如权利要求1所述的方法,其特征在于,所述根据所述...
【专利技术属性】
技术研发人员:马锐,王丹,任静雯,陈逸轩,陈泓铭,
申请(专利权)人:北京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。