CN111291175A - 一种基于策略梯度算法的自动生成提交需求摘要的方法 - Google Patents
一种基于策略梯度算法的自动生成提交需求摘要的方法 Download PDFInfo
- Publication number
- CN111291175A CN111291175A CN202010075692.1A CN202010075692A CN111291175A CN 111291175 A CN111291175 A CN 111291175A CN 202010075692 A CN202010075692 A CN 202010075692A CN 111291175 A CN111291175 A CN 111291175A
- Authority
- CN
- China
- Prior art keywords
- sequence
- action
- monte carlo
- strategy
- submission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
- G06F16/345—Summarisation for human users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于策略梯度算法的自动生成提交需求摘要的方法,包括:提取提交需求关系中的提交信息和源代码注释和其对应的文本语义树结构,通过双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。利用带有基线的策略梯度算法结合N次蒙特卡洛搜索,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,则该动作就是要选择的动作,依此进行,得到完整序列,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度,最终生成提交需求摘要。
Description
技术领域
本发明涉及信息数据处理技术领域,尤其涉及一种基于策略梯度算法的自动生成提交需求摘要的方法。
背景技术
基于提交式的开发模型在现代协作编码平台上很受欢迎,它减轻了开发人员对项目的贡献,在此模型中,开发人员无需直接访问中央存储库就可以为项目做出贡献,他只需要自己克隆中央存储库,在个人克隆的中央存储库中独立的进行更改,例如修复错误或者实现功能,然后通过提交需求将更改提交到中央存储库,再由中央存储库的审阅者对提交需求进行审核,审核通过则开发人员就对该项目做出了贡献。因此开发人员可以很容易的通过提交需求对模型做出贡献。当创建一个提交需求时,开发人员可以添加一个自由形式的描述来描述在提交需求中做了什么改变,为什么要做这样的改变,这样一个描述对于审阅者和其他开发人员非常有用,这种生成提交需求描述的过程就是文本摘要的过程。通过提交需求摘要可以核心团队成员或者审阅者不需要接触细节就可以快速的了解提交需求,减小了提交需求被忽视或者拒绝的可能性,提交需求描述对软件维护和程序理解起到了一定的影响作用。因此,自动的生成提交需求摘要变得非常重要。
目前关于生成提交需求摘要的方法有一些缺陷,只将文本信息作为输入,生成的提交需求描述缺少逻辑性,不符合人类评估标准;只使用普通的强化学习中的策略梯度算法,只能考虑生成整体句子的奖励,而没有考虑到中间时刻生成的单词的奖励情况,这使得生成的序列与目标序列差距过大,影响了生成句子的准确性。
发明内容
根据现有技术存在的问题,本发明公开了一种基于策略梯度算法的自动生成提交需求摘要的方法,具体包括如下步骤:
提取提交需求关系中的提交信息和源代码注释和其对应的文本语义树结构,将上述提取的信息作为序列到序列模型的输入,通过双向循环神经网络编码器编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布对其分配不同的权重,形成上下文向量,输入到解码器中,利用解码器的隐藏状态,最终解码出词汇分布。为了更好的处理词汇表之外的单词,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。
利用带有基线的策略梯度算法结合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:通过注意力分布对其分配不同的权重,形成上下文向量,输入到解码器中,利用解码器的隐藏状态,最终解码出词汇分布。为了更好的处理词汇表之外的单词,使用指针生成器通过词汇的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行一个软控制,得到最终的词汇分布。
计算过程如下:
S32:通过解码器计算的上下文向量为:
etj=tanh(st,hj),表示解码器的隐藏状态和编码器的隐藏状态计算的一个分数。
S34:将生成的上下文向量映射到单向循环神将网络解码器中,得到词汇分布为:pvocab=softmax(W(st,ct))。
加入指针生成器后,得到最后的词汇分布为:
S4:利用带有基线的策略梯度算法结合N次蒙特卡洛搜索,将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体,生成的词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单词看作是动作,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,则该动作就是要选择的动作,依此进行,得到完整序列,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度。具体步骤如下:
S42:对于策略梯度算法的训练目标就是最小化负期望奖励,训练函数的定义为:而原始的策略梯度算法只能对完整的序列计算奖励,为了更加准确地生成提交需求摘要,我们使用rollout策略的蒙特卡洛搜索方法,估计中间时间步骤t上的动作值,假设要生成的序列长度为T,我们使用rollout 策略Gβ的蒙特卡洛搜索方法对剩下的T-t个未知的单词进行采样,进行N次蒙特卡洛搜索后,我们将输出N条样例,最后我们对N条序列的奖励取平均值,就是包含该动作的期望奖励,该动作就是我们要选择的动作,依次类推,最终得到完整的序列,得到提交需求的摘要。
S44:通过策略梯度定理,最终的训练函数为:
S5:对新的提交需求生成其提交需求摘要。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种基于策略梯度算法的自动生成提交需求摘要的方法,其特征在于包括:
提取提交需求关系中的提交信息和源代码注释、以及文本信息相对应的文本语义树结构,将上述提取信息作为序列到序列模型的输入;
通过双向循环神经网络编码器将输入信息编码到隐藏状态中,映射成固定长度的向量序列,通过注意力分布机制对其分配不同的权重形成上下文向量,将上下文向量输入到解码器中,利用解码器的隐藏状态解码出词汇分布;
使用指针生成器通过单词的生成概率对从词汇表中选择的单词和从源序列中复制的单词之间进行软控制、得到最终词汇分布;
利用强化学习中的策略梯度算法结合N次蒙特卡洛搜索、将带有指针生成器和注意力机制的编码器-解码器模型作为强化学习中的智能体;
将生成的最终词汇分布看作是遵循的策略,已经生成的单词看作是状态,下一个要生成的单词看作是动作,通过N次蒙特卡洛搜索计算包含一个动作的序列的平均奖励,找到平均奖励最大的动作序列,将该动作为要选择的动作,依此进行得到完整序列;
利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略梯度。
2.根据权利要求1所述的方法,其特征还在于:将强化学习中的策略梯度算法和N次蒙特卡洛搜索相结合,利用蒙特卡洛搜索出的序列和基线序列的差值来更新策略时具体采用如下方式:
使用rollout策略的蒙特卡洛搜索方法估计中间时间步骤t上的动作值,假设要生成的序列长度为T,使用rollout策略的蒙特卡洛搜索方法对剩下的T-t个未知的单词进行采样,进行N次蒙特卡洛搜索输出N条样例,将N条序列的奖励取平均值作为包含该动作的期望奖励,选择期望奖励最大的动作为要选择的动作,依次类推得到完整的序列即提交需求的摘要。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010075692.1A CN111291175B (zh) | 2020-01-22 | 2020-01-22 | 一种基于策略梯度算法的自动生成提交需求摘要的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010075692.1A CN111291175B (zh) | 2020-01-22 | 2020-01-22 | 一种基于策略梯度算法的自动生成提交需求摘要的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291175A true CN111291175A (zh) | 2020-06-16 |
CN111291175B CN111291175B (zh) | 2022-07-22 |
Family
ID=71026887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010075692.1A Active CN111291175B (zh) | 2020-01-22 | 2020-01-22 | 一种基于策略梯度算法的自动生成提交需求摘要的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291175B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149808A (zh) * | 2020-09-28 | 2020-12-29 | 上海交通大学 | 拓展单机图神经网络训练至分布式训练方法、系统及介质 |
CN113094399A (zh) * | 2021-04-22 | 2021-07-09 | 西安交通大学 | 网络流量多序列匹配方法、系统、设备及可读存储介质 |
US11113397B2 (en) * | 2019-05-16 | 2021-09-07 | Cisco Technology, Inc. | Detection of malicious executable files using hierarchical models |
CN113642305A (zh) * | 2021-07-22 | 2021-11-12 | 北京三快在线科技有限公司 | 一种文本生成方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196903A (zh) * | 2019-05-06 | 2019-09-03 | 中国海洋大学 | 一种用于为文章生成摘要的方法及系统 |
CN110427629A (zh) * | 2019-08-13 | 2019-11-08 | 苏州思必驰信息科技有限公司 | 半监督文本简化模型训练方法和系统 |
US20190362020A1 (en) * | 2018-05-22 | 2019-11-28 | Salesforce.Com, Inc. | Abstraction of text summarizaton |
-
2020
- 2020-01-22 CN CN202010075692.1A patent/CN111291175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190362020A1 (en) * | 2018-05-22 | 2019-11-28 | Salesforce.Com, Inc. | Abstraction of text summarizaton |
CN110196903A (zh) * | 2019-05-06 | 2019-09-03 | 中国海洋大学 | 一种用于为文章生成摘要的方法及系统 |
CN110427629A (zh) * | 2019-08-13 | 2019-11-08 | 苏州思必驰信息科技有限公司 | 半监督文本简化模型训练方法和系统 |
Non-Patent Citations (2)
Title |
---|
TOOBA SIDDIQUI等: ""Generating Abstractive Summaries Using Sequence to Sequence Attention Model"", 《2018 INTERNATIONAL CONFERENCE ON FRONTIERS OF INFORMATION TECHNOLOGY (FIT)》 * |
石磊 等: ""基于序列到序列模型的生成式文本摘要研究综述"", 《情报学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113397B2 (en) * | 2019-05-16 | 2021-09-07 | Cisco Technology, Inc. | Detection of malicious executable files using hierarchical models |
CN112149808A (zh) * | 2020-09-28 | 2020-12-29 | 上海交通大学 | 拓展单机图神经网络训练至分布式训练方法、系统及介质 |
CN112149808B (zh) * | 2020-09-28 | 2022-10-14 | 上海交通大学 | 拓展单机图神经网络训练至分布式训练方法、系统及介质 |
CN113094399A (zh) * | 2021-04-22 | 2021-07-09 | 西安交通大学 | 网络流量多序列匹配方法、系统、设备及可读存储介质 |
CN113094399B (zh) * | 2021-04-22 | 2022-12-30 | 西安交通大学 | 网络流量多序列匹配方法、系统、设备及可读存储介质 |
CN113642305A (zh) * | 2021-07-22 | 2021-11-12 | 北京三快在线科技有限公司 | 一种文本生成方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111291175B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291175B (zh) | 一种基于策略梯度算法的自动生成提交需求摘要的方法 | |
CN109960506B (zh) | 一种基于结构感知的代码注释生成方法 | |
CN107506414B (zh) | 一种基于长短期记忆网络的代码推荐方法 | |
CN110018820B (zh) | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 | |
CN108062388B (zh) | 人机对话的回复生成方法和装置 | |
JP2019215841A (ja) | 質問生成装置、質問生成方法及びプログラム | |
CN111859978A (zh) | 一种基于深度学习的情感文本生成方法 | |
CN112417092B (zh) | 基于深度学习的智能化文本自动生成系统及其实现方法 | |
CN109074517A (zh) | 全局归一化神经网络 | |
CN114385178A (zh) | 基于抽象语法树结构信息增强的代码生成方法 | |
CN110738062A (zh) | 一种gru神经网络蒙汉机器翻译方法 | |
CN110427629A (zh) | 半监督文本简化模型训练方法和系统 | |
CN114528398A (zh) | 一种基于交互双重图卷积网络的情感预测方法及系统 | |
CN111538838B (zh) | 基于文章的问题生成方法 | |
CN112069827B (zh) | 一种基于细粒度主题建模的数据到文本生成方法 | |
CN113822054A (zh) | 基于数据增强的中文语法纠错方法及装置 | |
CN113128206A (zh) | 基于单词重要性加权的问题生成方法 | |
CN114648015B (zh) | 一种基于依存关系注意力模型的方面级情感词识别方法 | |
CN114281982B (zh) | 一种多模态融合技术的图书宣传摘要生成方法和系统 | |
CN109979461A (zh) | 一种语音翻译方法及装置 | |
CN117094325B (zh) | 水稻病虫害领域命名实体识别方法 | |
Shin et al. | End-to-end task dependent recurrent entity network for goal-oriented dialog learning | |
CN109918484B (zh) | 对话生成方法和装置 | |
CN112162775A (zh) | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 | |
CN110399619A (zh) | 面向神经机器翻译的位置编码方法及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |