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

一种基于随机森林模型的制造技术

技术编号:39579845 阅读:6 留言:0更新日期:2023-12-03 19:30
本发明专利技术提供了一种面向软件开发的

【技术实现步骤摘要】
一种基于随机森林模型的StackOverflow问答更新情况预测方法


[0001]本专利技术属于计算机
,尤其是软件质量保障领域

本专利技术提供了一种面向软件开发的

基于机器学习模型的
StackOverflow
问答更新情况的预测方法,帮助开发者修复缺陷并控制软件产品的质量


技术介绍

[0002]软件项目不仅由源代码组成,还包括了注释

说明文档

编译系统等

代码实体之间也往往彼此相关,即开发者在修改代码时往往要共同更新大量有联系的实体,在大项目中尤为明显

开发者们可以根据共同演化信息来将代码重模块化
(remodularization)
,且这种共同演化的关系是一种逻辑上的

潜在的依赖,无法直接从源代码中理解到

还有研究者定义了共同演化图
(co

changegraph)
,即用实体的集合作为点

实体的共同演化关系作为边的无向图

图中的边根据共同演化的次数赋予了权重,之后用聚类算法将频繁共同演化的实体分在一起

[0003]为了利用共同演化信息协助开发,开发者提出了一些预测模型


StackOverflow
问答的文本信息使用
LDA
模型,可以将
StackOverflow
问题根据主题分类

在此基础上,可以为这些问题按照重要性排序

使用
NLP
技术来解析答案,可以发现重复问题也能提供额外的知识

此外,活跃的
GitHub
用户倾向于在
StackOverflow
多回答而少提问


StackOverflow

Android
教程中的重复代码进行分析,可以发现二者间有超过1,
400
段重复代码,与
30
%的
Android
相关问题有关,都是在
Android
开发者无法理解教程文档时提出的

[0004]在考虑
StackOverflow
社区的互动和软件项目代码的演化方面,现有研究并未将二者很好地结合
。SOTorrent
中包含一个表格,其中记录了
GitHub
仓库的代码中包含的对
StackOverflow
网页的引用

但这样的链接仅仅表示
GitHub
开发者引用了某个问题或回答,却没有对引用的模式

引用的分布和场景以及对软件项目的影响等内容进行深入探索

我们希望研究开发者在引用
StackOverflow
问答时的场景

作用,在选择引用对象时有何考量;在引用发生后,
StackOverflow
问答是否更新,其更新又如何影响开发者的行为

[0005]在
StackOverflow
答案质量方面,过去的研究者往往将重心放在用户和社区的互动,如怎样提高问题的被采纳概率

怎样分辨需要改进的答案等

很少有研究考虑到那些引用了答案的开发者的需求

在引用了问答之后,开发者往往没有精力在一段时间后再次检查被引用的问题,并从中汲取知识来完善自己的代码

作为一个高度活跃的社区,
StackOverflow
上的持续更新的价值无法被这些开发者获得


技术实现思路

[0006]本专利技术提供了一种基于机器学习模型的
StackOverflow
问答更新情况预测方法,该方法使用
SOTorrent
数据集获取引用了
StackOverflow
问答的
GitHub
项目,并通过版本控制软件
git
中的
gitclone
命令获取这些项目的源程序代码;接着对项目的源程序代码进行
正则表达式匹配,提取被引用的
StackOverflow
问答的
ID
;之后利用
StackOverflow

API
获取这些问答的信息并提取度量;接下来根据问答的编辑记录为每个样例打标记,并使用机器学习算法生成预测模型;最后,对开发者新引用的
StackOverflow
问答进行预测,根据预测结果提示开发者关注需要进一步编辑的答案的更新情况,从而在软件开发过程中辅助开发人员修复缺陷和进行软件质量保证

[0007]为达成上述目的,本专利技术提出一种基于机器学习模型的
StackOverflow
问答更新情况预测方法

方法包括下列步骤:
[0008]1)

SOTorrent
获取引用了
StackOverflow
问答的
GitHub
项目信息;
[0009]2)
获取
GitHub
项目中的引用注释,提取被引用的
StackOverflow
问答的度量;
[0010]3)
根据引用后的问答更新情况生成样例集;
[0011]4)
使用机器学习算法建立
StackOverflow
问答更新情况的预测模型;
[0012]5)
当开发者引用
StackOverflow
问答时,使用机器学习模型预测该问答未来是否需要更新或有更好的答案出现

[0013]进一步,其中上述步骤
1)
的具体步骤如下:
[0014]步骤
1)
‑1:起始状态;
[0015]步骤
1)
‑2:在公开数据库
SOTorrent
上找到引用了
StackOverflow
问答的项目仓库,使用
gitclone
指令将远程软件项目的源程序代码拷贝到本地;
[0016]步骤
1)
‑3:
GitHub
项目信息采集完毕

[0017]进一步,其中上述步骤
2)
的具体步骤如下:
[0018]步骤
2)
‑1:起始状态;
[0019]步骤
2)
‑2:对
GitHub
项目的源程序代本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于随机森林模型的
StackOverflow
问答更新情况预测方法,其特征是一个预测模型,用于预测
StackOverflow
问答更新情况,主要包括以下流程:
1)

SOTorrent
获取引用了
StackOverflow
问答的
GitHub
项目信息;
2)
获取
GitHub
项目中的引用注释,提取被引用的
StackOverflow
问答的度量;
3)
根据引用后的问答更新情况生成样例集;
4)
使用机器学习算法建立
StackOverflow
问答更新情况的预测模型;
5)
当开发者引用
StackOverflow
问答时,使用机器学习模型预测该问答未来是否需要更新或有更好的答案出现
。2.
根据权利要求2所述的基于随机森林模型的
StackOverflow
问答更新情况预测方法,其特征在于在公开数据库
SOTorrent
上找到引用了
StackOverflow
问答的项目仓库,使用
gitclone
指令将远程软件项目的源程序代码拷贝到本地;定义1:
SOTorrent
是一个公开数据集,包含了
StackOverflow
问答的历史编辑记录,代码片段信息和
GitHub
项目对
StackOverflow
问答的引用情况;定义2:
github
是一个面向开源及私有软件项目的托管平台,支持
git
作为唯一的版本库格式进行托管;定义3:
git
是一个分布式版本控制系统;定义4:
git clone
命令通过
git
将远程软件项目源程序代码拷贝到本地,在本地目录下生成一份远程项目源代码的拷贝
。3.
根据权利要求2所述的基于随机森林模型的
StackOverflow
问答更新情况预测方法,其特征在于对

【专利技术属性】
技术研发人员:李言辉陆亦俍陈林
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1