【技术实现步骤摘要】
一种代码摘要生成方法和装置
本专利技术属于计算机
,尤其涉及一种代码摘要生成方法和装置。
技术介绍
代码摘要生成旨在利用现有人工智能领域的自然语言处理技术,使得计算机可以理解代码的功能,并生成一句描述代码功能的摘要。这项技术能够帮助程序员更高效地阅读与理解代码,使得程序员能够更有效率地维护与修改程序。目前用于代码摘要生成的主流模型结构是encoder-decoderbasedattention,使用编码器将提取的代码特征编码成状态向量,使用注意力机制将编码器输出的若干状态向量聚合成一个状态向量,使用解码器将聚合的状态向量解码成一个个单词输出,最终得到一句摘要用来描述输入代码的功能。代码的特征主要有三种类型,第一种是代码的文本(plaintext)特征,第二种是代码的抽象语法树(AST)特征,第三种是代码的逻辑执行特征。代码的文本特征,顾名思义,就是直接使用代码的文本作为特征,在自然语言处理的翻译任务中,将英语翻译成中文时,我们直接使用英语文本作为特征,在代码摘要生成任务中,我们也直接使用代码文本 ...
【技术保护点】
1.一种代码摘要生成方法,其特征在于,包括:/n对提取的代码特征进行编码,得到若干个状态向量;/n使用注意力机制将所述若干个状态向量聚合成一个聚合向量;/n对所述聚合向量和上一个输出向量进行解码,得到当前的输出向量,并以此得到所有的输出向量;/n使用双向模型将所述所有的输出向量相互联系作用,得到顺序优化的输出向量;/n根据所述顺序优化的输出向量依次得到输出词,按照输出词的顺序对所有输出词进行组合,得到代码摘要。/n
【技术特征摘要】
1.一种代码摘要生成方法,其特征在于,包括:
对提取的代码特征进行编码,得到若干个状态向量;
使用注意力机制将所述若干个状态向量聚合成一个聚合向量;
对所述聚合向量和上一个输出向量进行解码,得到当前的输出向量,并以此得到所有的输出向量;
使用双向模型将所述所有的输出向量相互联系作用,得到顺序优化的输出向量;
根据所述顺序优化的输出向量依次得到输出词,按照输出词的顺序对所有输出词进行组合,得到代码摘要。
2.根据权利要求1所述的代码摘要生成方法,其特征在于,在所述对提取的代码特征进行编码,得到若干个状态向量之前,还包括:
提取代码的特征,所述特征为代码的文本特征、抽象语法树特征或者逻辑执行特征。
3.根据权利要求1所述的代码摘要生成方法,其特征在于,当代码的特征为文本特征时,所述对提取的代码特征进行编码,得到若干个状态向量,包括:
使用能够处理序列的模型对代码的特征进行编码,满足以下式子:z1,z2,...,zm=encoder(x),encoder为能够处理序列的编码模型,x表示代码的特征、作为encoder的输入,z1,z2,...,zm分别为该模型输出的m个状态向量。
4.根据权利要求3所述的代码摘要生成方法,其特征在于,所述使用注意力机制将所述若干个状态向量聚合成一个聚合向量,包括:
使用注意力机制对m个状态向量进行聚合,得到聚合向量contextt,满足以下式子:其中v函数的输出是一个向量,ht-1表示第t-1个输出向量,a函数的输出是一个常量,a函数满足以下式子:v函数、a函数属于注意力机制中的函数。
5.根据权利要求4所述的代码摘要生成方法,其特征在于,所述对所述聚合向量和上一个输出向量进行解码,得到当前的输出向量,并以此得到所有的输出向量,包括:
对所述contextt和所述ht-1进行解码,得到第t个输出向量ht,满足以下式子:ht=f(ht-1,contextt),f为解码函数。
6.根据权利要求4所述的代码摘要生成方法,其特征在于,所述对所述聚合向量和上一个输出向量进行解码,得到当前的...
【专利技术属性】
技术研发人员:陈湘萍,黄少豪,周晓聪,郑子彬,
申请(专利权)人:中山大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。