摘要
本发明涉及多视角对比学习跨语言源代码表示方法,属于计算机软件信息技术领域。本发明首先利用元学习方法根据编程语言类型初始化Transformer可学习参数;其次依赖源代码片段的语法、结构等信息构建代码特征异构图,使用GCN对异构图进行聚合得到图节点嵌入;然后依据元路径对节点同跳邻域信息进行聚合得到图节点的序列化表示,使用Transformer和层级注意力机制生成图节点嵌入;最后根据两种视角下的节点嵌入建立对比损失函数,训练生成跨语言源代码表示模型。本发明针对现有方法应用编程语言通用代码特征影响表示效果和模型出现过平滑问题,提取编程语言特定信息并利用多视角图节点嵌入构建模型,提升了跨语言代码表示效果,提高了代码摘要、源代码漏洞检测等准确率。
技术关键词
代码特征
元学习方法
注意力机制
计算机软件信息技术
多视角
邻居
异构
程序依赖图
层级
抽象语法树
投影特征
对源代码
邻域
节点特征
语义
参数
系统为您推荐了相关专利信息
刺绣数据
刺绣针法
通道注意力机制
Gabor滤波器
图片
图像风格转换方法
点云特征
视觉特征
语义特征
计算机可读指令
运动想象脑电信号
滤波器
解码方法
脑电特征
时域特征提取
产品分拣系统
抓取网络
实例分割算法
粒子群算法
机械臂抓取轨迹
安检仪
健康管理方法
注意力机制
强化学习算法
子系统