-
公开(公告)号:CN114238124A
公开(公告)日:2022-03-25
申请号:CN202111566438.2
申请日:2021-12-20
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于图神经网络的重复Pull Request检测方法,包括以下步骤:1)数据集的处理以及对于数据的获取,根据数据集中的Pull Request编号,通过GitHub API的调用,获取Pull Request的标题、描述、commit信息、变更文件信息、变更代码信息。对于变更文件超过50或者变更代码增加和删除超过10000行的Pull Request进行过滤。2)使用自然语言处理方法结合余弦相似度计算出标题、描述、commit信息的相似性;使用最长公共子路径算法,计算出变更文件的路径相似;计算变更代码位置相似性,通过求出两个PullRequest中变更代码的具体位置,计算出重叠变更位置的长度,除上总的重叠快的长度求出变更代码相似。3)基于大型的代码克隆数据仓库,使用增加流抽象语法树、图匹配网络以及均方误差损失来训练一个图神经网络模型,计算出变更代码的相似性。4)基于求出的标题相似性、描述相似性、commit信息相似性、变更文件路径相似性、变更代码位置相似性、变更代码相似性作为特征值,以及对应的是否重复的标签,利用机器学习中的AdaBoost算法来训练一个重复Pull Request的检测模型。