一种基于策略梯度算法的自动生成提交需求摘要的方法技术

技术编号:24517687 阅读:17 留言:0更新日期:2020-06-17 06:49
本发明专利技术公开了一种基于策略梯度算法的自动生成提交需求摘要的方法,包括:提取提交需求关系中的提交信息和源代码注释和其对应的文本语义树结构,通过双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。利用带有基线的策略梯度算法结合N次蒙特卡洛搜索,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,则该动作就是要选择的动作,依此进行,得到完整序列,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度,最终生成提交需求摘要。

A strategy gradient algorithm based method for automatic generation of submitted requirement summary

【技术实现步骤摘要】
一种基于策略梯度算法的自动生成提交需求摘要的方法
本专利技术涉及信息数据处理
,尤其涉及一种基于策略梯度算法的自动生成提交需求摘要的方法。
技术介绍
基于提交式的开发模型在现代协作编码平台上很受欢迎,它减轻了开发人员对项目的贡献,在此模型中,开发人员无需直接访问中央存储库就可以为项目做出贡献,他只需要自己克隆中央存储库,在个人克隆的中央存储库中独立的进行更改,例如修复错误或者实现功能,然后通过提交需求将更改提交到中央存储库,再由中央存储库的审阅者对提交需求进行审核,审核通过则开发人员就对该项目做出了贡献。因此开发人员可以很容易的通过提交需求对模型做出贡献。当创建一个提交需求时,开发人员可以添加一个自由形式的描述来描述在提交需求中做了什么改变,为什么要做这样的改变,这样一个描述对于审阅者和其他开发人员非常有用,这种生成提交需求描述的过程就是文本摘要的过程。通过提交需求摘要可以核心团队成员或者审阅者不需要接触细节就可以快速的了解提交需求,减小了提交需求被忽视或者拒绝的可能性,提交需求描述对软件维护和程序理解起到了一定的影响作用。因此,自动的生成提交需求摘要变得非常重要。目前关于生成提交需求摘要的方法有一些缺陷,只将文本信息作为输入,生成的提交需求描述缺少逻辑性,不符合人类评估标准;只使用普通的强化学习中的策略梯度算法,只能考虑生成整体句子的奖励,而没有考虑到中间时刻生成的单词的奖励情况,这使得生成的序列与目标序列差距过大,影响了生成句子的准确性。
技术实现思路
根据现有技术存在的问题,本专利技术公开了一种基于策略梯度算法的自动生成提交需求摘要的方法,具体包括如下步骤:提取提交需求关系中的提交信息和源代码注释和其对应的文本语义树结构,将上述提取的信息作为序列到序列模型的输入,通过双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布对其分配不同的权重,形成上下文向量,输入到解码器中,利用解码器的隐藏状态,最终解码出词汇分布。为了更好的处理词汇表之外的单词,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。利用带有基线的策略梯度算法结合N次蒙特卡洛搜索,将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体,生成的词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单词看作是动作,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,则该动作就是要选择的动作,依此进行,得到完整序列,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度。进一步的,将强化学习中的策略梯度算法和N次蒙特卡洛搜索相结合,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略时具体采用如下方式:将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体,生成的词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单词看作是动作。我们使用rollout策略的蒙特卡洛搜索方法,估计中间时间步骤t上的动作值,假设要生成的序列长度为T,我们使用rollout策略的蒙特卡洛搜索方法对剩下的T-t个未知的单词进行采样,进行N此蒙特卡洛搜索后,我们将输出N条样例,最后我们对N条序列的奖励取平均值,就是包含该动作的期望奖励,该动作就是我们要选择的动作,依次类推,最终得到完整的序列,得到提交需求的摘要。由于采用了上述技术方案,本专利技术提供的一种基于策略梯度算法的自动生成提交需求摘要的方法,该方法通过将提交信息和源代码注释和其对应的文本语义树结构输入到序列到序列模型中,通过双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布对其分配不同的权重,形成上下文向量,输入到解码器中,利用解码器的隐藏状态,最终解码出词汇分布。为了更好的处理词汇表之外的单词,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。利用带有基线的策略梯度算法结合N次蒙特卡洛搜索,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,则该动作就是要选择的动作,依此进行,得到完整序列,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度,最终生成完整的序列,即提交需求描述。在输入的过程中,考虑了文本语义树结构,增加了生成句子的逻辑结构性,通过使用N次蒙特卡洛搜索,不但考虑了整体句子的奖励,也考虑了中间时刻的奖励情况,使得生成的提交需求描述更加准确、完整。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术方法的流程图。具体实施方式为使本专利技术的技术方案和优点更加清楚,下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚完整的描述:如图1所示的一种基于策略梯度算法的自动生成提交需求摘要的方法,具体包括如下步骤:S1:从GitHub上收集提交需求数据,对于每一个提交需求,检索它的提交需求摘要和提交信息,并分析了其提交的修补程序,提取每个修补程序中添加的注释,构建源序列和目标序列,源序列为提交信息和源代码注释及其文本语义树的组合,目标序列为提交需求摘要。过滤出提交需求中琐碎的和模板化的信息,删除空描述的提交需求和超过最大长度限制的序列。S2:将处理之后的源序列作为序列-序列模型的输入。S21:从提交需求中提取的文本信息作为提交信息和源代码注释,我们在输入的过程中加入文本语义树结构,构造文本信息的多元特征,将文本信息和文本语义树通过词嵌入层利用双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列。源序列通过词嵌入层之后用x=(x1,x2,...,xT)表示,通过双向循环神经网络的隐藏状态h1,h2,...,h|x|映射成固定长度的向量序列,计算的编码器的隐藏状态为:ht=f1(xt,ht-1)。S3:通过注意力分布对其分配不同的权重,形成上下文向量,输入到解码器中,利用解码器的隐藏状态,最终解码出词汇分布。为了更好的处理词汇表之外的单词,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。计算过程如下:S31:单向循环神经网络解码器的隐藏状态为s,它的输入是上一个隐藏时间状态和通过解码器解码出来的单词嵌入。S32:通过解码器计算的上下文向量为:其中表示每一个编码器的隐藏状态对应的权重。etj=tanh(st,hj),表示解码器的隐藏状态和编码器的隐藏状态计算的一个分数。S33:指针生成器就是一个软控制,通过词汇的生成概率本文档来自技高网...

【技术保护点】
1.一种基于策略梯度算法的自动生成提交需求摘要的方法,其特征在于包括:/n提取提交需求关系中的提交信息和源代码注释、以及文本信息相对应的文本语义树结构,将上述提取信息作为序列到序列模型的输入;/n通过双向循环神经网络编码器将输入信息编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布机制对其分配不同的权重形成上下文向量,将上下文向量输入到解码器中,利用解码器的隐藏状态解码出词汇分布;/n使用指针生成器通过单词的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行软控制、得到最终词汇分布;/n利用强化学习中的策略梯度算法结合N次蒙特卡洛搜索、将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体;/n将生成的最终词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单词看作是动作,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,将该动作为要选择的动作,依此进行得到完整序列;/n利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度。/n

【技术特征摘要】
1.一种基于策略梯度算法的自动生成提交需求摘要的方法,其特征在于包括:
提取提交需求关系中的提交信息和源代码注释、以及文本信息相对应的文本语义树结构,将上述提取信息作为序列到序列模型的输入;
通过双向循环神经网络编码器将输入信息编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布机制对其分配不同的权重形成上下文向量,将上下文向量输入到解码器中,利用解码器的隐藏状态解码出词汇分布;
使用指针生成器通过单词的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行软控制、得到最终词汇分布;
利用强化学习中的策略梯度算法结合N次蒙特卡洛搜索、将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体;
将生成的最终词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单...

【专利技术属性】
技术研发人员:李辉王思文
申请(专利权)人:大连海事大学
类型:发明
国别省市:辽宁;21

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

1