当前位置: 首页 > 专利查询>中山大学专利>正文

一种代码摘要生成方法和装置制造方法及图纸

技术编号:26169979 阅读:25 留言:0更新日期:2020-10-31 13:35
本发明专利技术公开了一种代码摘要生成方法和装置,方法包括:对提取的代码特征进行编码,得到若干个状态向量;使用注意力机制将若干个状态向量聚合成一个聚合向量;对聚合向量和上一个输出向量进行解码,得到当前的输出向量,并以此得到所有的输出向量;使用双向模型将所有的输出向量相互联系作用,得到顺序优化的输出向量;根据顺序优化的输出向量依次得到输出词,按照输出词的顺序对所有输出词进行组合,得到代码摘要。使用基于双向模型的解码器,将所有的输出向量转换成顺序优化的输出向量,使得在生成代码摘要时,可以直接按照输出词的顺序对所有输出词进行组合,得到代码摘要,不仅提高了代码摘要的准确性,还改善了代码摘要生成的模型效果。

【技术实现步骤摘要】
一种代码摘要生成方法和装置
本专利技术属于计算机
,尤其涉及一种代码摘要生成方法和装置。
技术介绍
代码摘要生成旨在利用现有人工智能领域的自然语言处理技术,使得计算机可以理解代码的功能,并生成一句描述代码功能的摘要。这项技术能够帮助程序员更高效地阅读与理解代码,使得程序员能够更有效率地维护与修改程序。目前用于代码摘要生成的主流模型结构是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

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

1