APP下载

代码特征自动提取方法

2021-03-11史志成

计算机与生活 2021年3期
关键词:分类情境信息

史志成,周 宇,3+

1.南京航空航天大学 计算机科学与技术学院,南京210016

2.南京航空航天大学 高安全系统的软件开发与验证技术工信部重点实验室,南京210016

3.南京大学 软件新技术国家重点实验室,南京210023

在“大代码”背景的驱动下,如何高效地提取代码特征并对其进行编码以快速地处理海量数据的需求已日益迫切。如今,深度学习在自然语言处理的很多领域已经取得了突破性的进展,人工智能也逐渐从“感知智能”迈向“认知智能”,机器不仅能够感知客观世界所释放的信息,更能够对这些信息像人一样进行理解和分析。Hindle等人[1]已经论证了程序语言和自然语言类似,具备众多可供分析的统计属性,代码语言可以和自然语言一样能够被机器理解和分析。因此,许多学者简单地将代码作为自然语言来处理。例如,代码被表示为一个字符串序列应用在克隆检测[2-3]、漏洞定位[4]以及代码作者分类(code authorship classification)[5]的任务当中。尽管代码和自然语言有很多共性的特征,都是由一系列单词组成且都能表示成语法树的形式,然而代码有许多自己专有的特性,代码具有更强的逻辑结构,自定义的标志符,且标志符之间存在长距离依赖等。简单地将代码视作自然语言进行处理难免会造成信息丢失。为了使模型更适合处理代码语言,部分学者借助软件工程的领域知识,制定了一些启发式规则来静态地提取代码特征,例如在应用程序接口(application programming interface,API)推荐领域,Zhou 等人[6]就将用户查询后得到的反馈信息作为构建API 向量的一维特征来提高查询效果,然而这些静态提取代码特征的方式有以下三个弊端:

登录APP查看全文

猜你喜欢

分类情境信息
情境引领追问促深
分类算一算
教你一招:数的分类
订阅信息
护患情境会话
特定情境,感人至深
展会信息
健康信息
健康信息(九则)