(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210917697.3
(22)申请日 2022.08.01
(71)申请人 北京航空航天大 学
地址 100191 北京市海淀区学院路37号
(72)发明人 蒋竞 刘子豪 张莉
(74)专利代理 机构 北京天达知识产权代理事务
所(普通合伙) 11386
专利代理师 庞许倩
(51)Int.Cl.
G06F 8/20(2018.01)
G06F 8/30(2018.01)
G06F 8/41(2018.01)
G06F 16/9535(2019.01)
G06K 9/62(2022.01)
G06N 3/04(2006.01)G06N 3/08(2006.01)
(54)发明名称
一种开源社区的拉取请求描述生成方法和
装置
(57)摘要
本发明涉及一种开源社区的拉取请求描述
生成方法和装置, 属于拉取请求技术领域, 解决
生成拉取请求描述时仅考虑新拉取请求自身的
信息, 对若干拉取请求的历史数据利用不够充分
的问题。 该方法包括: 从开源社区获取多个拉取
请求和相对应的描述; 基于每个 拉取请求生成代
码语法改动树; 基于代码语 法改动树生成改动向
量; 基于多个改动向量计算拉取请求的相似程
度; 利用输入拉取请求和相似拉取请求获取描述
生成模型; 利用多个相似拉取请求的描述和输入
拉取请求包含的文本信息, 使用描述生成模型计
算输入拉取请求的描述。 改动向量有效地提取代
码改动的语 法结构信息, 以利用与新拉取请求相
似的拉取请求, 自动化 生成拉取请求描述。
权利要求书3页 说明书11页 附图3页
CN 115145550 A
2022.10.04
CN 115145550 A
1.一种开源社区的拉取请求描述 生成方法, 其特 征在于, 包括:
从开源社区获取已完成合并的多个拉取请求, 获取各拉取请求的文本向量、 代码语法
改动树和描述向量;
建立树结构自编码器模型, 基于所述多个代码语法改动树训练所述树结构自编码器模
型, 以获取改动 编码模型;
基于所述改动编码模型, 计算所述拉取请求两两之间的相似程度, 对所述每个拉取请
求, 查找若干个相似程度最高的拉取请求;
建立编码器 ‑解码器模型, 基于每个所述拉取请求的文本向量、 与该拉取请求相似度最
高的若干拉取请求的描述向量和该拉取请求的描述训练所述编码器 ‑解码器模型, 以获取
描述生成模型;
获取待生成描述的拉取请求, 基于所述待生成描述的拉取请求, 利用所述改动编码模
型查找与待生成描述的拉取请求相似度最高的若干拉取请求; 基于所述待生成描述的拉取
请求的文本向量、 和与所述待生成描述的拉取请求相似度最高的若干拉取请求的描述向
量, 利用所述描述 生成模型生成所述待生成描述的拉取请求的描述。
2.根据权利要求1所述拉取请求描述生成方法, 其特征在于, 每个所述拉取请求包括:
文本部分、 代码改动部分和描述部分; 其中, 拉取请求文本部分包括: 拉取请求包含的多个
提交、 每个提交的提交说明以及拉取请求包 含的注释。
3.根据权利要求2所述得拉取请求描述生成方法, 其特征在于, 所述获取拉取请求文本
向量包括:
通过自然语言工具包 对所述拉取请求的文本 部分进行文本预处 理;
使用OneHot编码 将预处理后的拉取请求文本转换为所述文本向量。
4.根据权利要求1所述的拉取请求描述生成方法, 其特征在于, 所述获取拉取请求描述
向量包括:
通过自然语言工具包 对所述拉取请求的描述部分进行文本预处 理;
获取所述拉取请求所属软件项目的拉取请求模板, 使用史密斯 ‑沃特曼算法计算预处
理后的拉取请求描述与模板的匹配比例;
当匹配比例达 到或超过阈值时去除预处 理后的拉取请求描述与所述模板匹配的部分;
使用OneHot编码 将去除与模板匹配部分后的拉取请求描述 转换为所述描述向量。
5.根据权利要求3或4所述的拉取请求描述生成方法, 其特征在于, 所述通过自然语言
工具包对所述的文本 部分或所述拉取请求的描述进行文本预处 理包括:
删除HTML标签、 注释和Markdo wn格式控制符;
删除检查列表;
删除含有 URL、 邮箱、 内部链接、 提及用户或用户签名的句子;
替换文本中的数字和版本号;
删除合并提交;
删除拉取请求创建后增补的提交;
删除提交标签。
6.根据权利要求1所述的拉取请求描述生成方法, 其特征在于, 所述获取代码语法改动
树包括:权 利 要 求 书 1/3 页
2
CN 115145550 A
2把改动前和改动 后的代码分别解析为抽象语法树;
使用GumTre e算法计算改动前与改动 后的抽象语法树节点之间的对应关系;
基于所述对应关系, 确定抽象语法树的改动类型, 基于改动类型产生改动树节点, 把改
动树节点按照改动前抽象语法树的结构组合为树形, 形成代码语法改动树; 其中, 改动类型
包括更新、 删除、 插 入、 移动、 无改动。
7.根据权利要求1所述的拉取请求描述生成方法, 其特征在于, 所述建立树结构自编码
器模型, 基于所述多个代码语法改动树训练所述树结构自编码器模型, 以获取改动编码模
型, 包括:
编码器使用树结构长短期记忆网络Tree ‑LSTM, 把语法改动树各个节点的信息自底向
上地汇集 为编码向量;
解码器使用两个线性长短期记忆网络LSTM, 把所述编码向量自顶向下地解码为树状结
构;
基于所述多个代码语法改动树, 使用自监督方式的训练, 使得所述树状结构能复原输
入的代码语法改动树。
8.根据权利要求6所述的拉取请求描述生成方法, 其特征在于, 所述计算所述拉取请求
两两之间的相似程度, 包括: 利用所述树结构自编码器模型编码两个拉取请求得到分别对
应这两个拉取请求的两个编码向量, 计算所述两个编码向量的夹角余弦, 基于所述夹角余
弦的大小判断所述两个拉取请求的相似程度。
9.根据权利要求1所述的拉取请求描述生成方法, 其特征在于, 所述编码器 ‑解码器模
型包括:
编码器使用两个双向长短期记忆网络Bi ‑LSTM, 分别把每个所述拉取请求的文本向量
和与该拉取请求相似度最高的若干拉取请求的描述向量编码为向量;
将与每个所述拉取请求相似度最高的若干拉取请求描述向量编码得到的上下文向量
使用对应的相似程度加权, 与该拉取请求的文本向量编码得到的上下文向量使用
LogSumExp函数融合 为一个向量;
解码器使用集束搜索法, 利用带有注意力机制和指针生成网络的单向长短期记忆网
络, 把所述融合的向量 解码为待生成拉取请求的描述。
10.一种开源社区的拉取请求描述 生成装置, 其特 征在于, 包括:
数据获取模块, 用于从开源社区获取拉取请求, 基于所述每个拉取请求获取各拉取请
求的文本向量、 代码语法改动树和描述向量;
相似程度拉取请求计算模块, 用于建立树结构自编码器模型, 基于多个所述代码语法
改动树训练所述树结构自编 码器模型, 以获取改动编码模型; 基于所述改动编码模型, 计算
所述拉取请求两两之间的相似程度, 针对所述每个拉取请求, 查找若干个相似程度最高的
拉取请求;
描述生成模型训练模块, 用于建立编码器 ‑解码器模型, 基于每个所述拉取请求的文本
向量、 与该拉取请求相似度最高的若干拉取请求的描述向量和该拉取请求的描述训练所述
编码器‑解码器模型, 以获取描述 生成模型;
拉取请求描述生成模块, 用于获取待生成描述的拉取请求, 基于所述待生成描述的拉
取请求, 利用所述改动编码模型查找与待生成描述的拉取请求相似度最高的若干拉取请权 利 要 求 书 2/3 页
3
CN 115145550 A
3
专利 一种开源社区的拉取请求描述生成方法和装置
文档预览
中文文档
18 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 17:33:47上传分享