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

面向开源社区的跨项目issue参与者推荐框架制造技术

技术编号:32363496 阅读:17 留言:0更新日期:2022-02-20 03:34
本发明专利技术针对开源社区中issue参与者推荐局限于项目内的问题,提出了一种面向开源社区的跨项目issue参与者推荐框架,包括数据采集与文本预处理模块、关联文本语义嵌入模块、开源社区实体结构嵌入模块和推荐结果排序模块。本发明专利技术结合开源社区场景特性,利用issue的引用关系拓展项目外的开发者参与进来,利用开源社区的结构关系增强推荐的准确性和可解释性,克服了传统bug分流技术在开源社区中的不足,提高了对跨项目issue的推荐能力。此外,该框架的各部分耦合较低,其中的关联文本语义嵌入模块可拓展为通用关联文本向量嵌入算法。可拓展为通用关联文本向量嵌入算法。可拓展为通用关联文本向量嵌入算法。

【技术实现步骤摘要】
面向开源社区的跨项目issue参与者推荐框架


[0001]本专利技术属于计算机软件工程应用领域,具体涉及一种面向开源社区的跨项目issue参与者推荐框架。

技术介绍

[0002]开源软件的蓬勃发展使开源社区(例如GitHub)中维护了越来越多的软件仓库,每个人都可以在公共软件仓库中提交issue,issue可以帮助开发人员发现软件漏洞,但由于数目太多致使维护人员往往无法及时检查这些issue。此外,人工查看issue并选择合适的参与者困难且乏味,而且在更大的软件仓库中这种情况会更加糟糕。
[0003]类似的问题也在bug跟踪系统(另一种开源社区,通常维护单一仓库,例如Mozilla)中出现,在bug跟踪系统中,bug分流技术将此问题视为从bug报告文本到开发者或修复者的分类问题。关于bug分类的现有工作只关注于从维护仓库的开发人员中推荐,但是在GitHub中,这个问题变得复杂,因为每个人都可以参与问题的讨论,或者提交关于这个问题的额外信息,有些人可能是专家,但并不维护此仓库。
[0004]最经典的bug分流技术已经研究了将其作为简单的文本分类问题的可能,并取得了一定的成果。但是在不限制开发者的范围下,若仍采用文本分类方法将会面临维数灾难而难以取得良好的效果。在bug分流技术方面,有研究在考虑issue到开发者的投递序列,在建立语言主题模型等方案上分别取得了各自的成功。
[0005]在开源社区中的推荐问题上,已有pull

request审阅者推荐问题从开源社区的结构上进行研究,审阅者推荐问题的研究结果表明从开源社区中各个实体的历史交互结构上预测未来关系的可能。另外,在图的边预测问题中也揭示了历史关系组成的结构的有效性。
[0006]在开源社区中,大量开源仓库中存在着交互关系,主要表现在issue之间的相互引用关系上,有研究表明跨项目的issue相比于一般issue更加难以修复,需要消耗更多的人力和时间,也有研究表明不同仓库会出现相似bug,因此某个仓库现有的issue或bug可以为其它仓库提供解决思路。这些研究都为开源社区中跨项目issue的参与者推荐问题提供了新的解决思路。

技术实现思路

[0007]为了克服传统bug分流技术在开源社区中的不足,提高对跨项目issue的推荐能力,本专利技术结合开源社区场景特性,提出一种面向开源社区的跨项目issue参与者推荐框架,利用issue的引用关系拓展项目外的开发者参与进来,利用开源社区的结构关系增强推荐的准确性和可解释性。为实现上述目的,本专利技术采用以下技术方案:
[0008]面向开源社区的跨项目issue参与者推荐框架,包括数据采集与文本预处理模块、关联文本语义嵌入模块、开源社区实体结构嵌入模块和推荐结果排序模块,
[0009]所述数据采集与文本预处理模块:用于从开源社区中获取信息并以一定格式加以处理,包括,去除质量差的issue和issue中的干扰部分,对issue文本进行词干提取、词形还
原并去除停止词以得到issue文本集,提取每个issue对其他issue的引用关系以构建issue关系集;
[0010]所述关联文本语义嵌入模块:定义训练目标函数并利用issue文本集和issue关系集训练语义嵌入模型,通过语义嵌入模型获取待推荐issue的文本语义嵌入向量,并通过其与issue文本集中issue文本语义嵌入向量的距离找出与待推荐issue语义相似的issue集合;
[0011]所述开源社区实体结构嵌入模块:构建整个开源社区中开发者、仓库、issue三种结点间交互关系的异质图,为跨项目的推荐任务设计issue引用关系增强的元路径,以元路径对异质图进行采样并采用图嵌入方法训练得到每个结点的结构嵌入向量以构建结构关系向量集合;
[0012]所述推荐结果排序模块:从结构关系向量集合中找出issue集合和待推荐issue所属仓库的结构关系向量,并计算其与开发者结点的向量距离以得到有序的开发者推荐结果。
[0013]进一步地,所述数据采集与文本预处理模块的具体处理过程包括:
[0014]S1.1、从开源社区中获取需要的开源仓库集合R,对R中的每个仓库r,获取其issue集合I
r
,每个issue包含标题、描述和评论的所有文本,所有仓库的issue构成集合I=∪
r∈R
I
r

[0015]S1.2、从集合I中去除标题单词数目少于m或描述字符数目少于n的issue,并去除issue中引用他人部分的文本和代码,利用传统文本预处理方法进行词干提取、词形还原、去除停止词得到issue预处理后的文本集;
[0016]S1.3、抽取出所有issue的参与者构成参与者集合D,再根据所有开发者参与issue的关系构成参与关系集合J;
[0017]S1.4、根据开源社区仓库信息抽取维护关系<d,r>构成维护关系集合M,<d,r>表示开发者d维护仓库r,d∈D,r∈R;
[0018]S1.5、提取issu之间的所有引用关系构成引用关系集合Q,其中<i
m
,i
n
>∈Q(i
m
∈I,i
n
∈I,i
m
≠i
n
)表示issue i
m
中包含对issue i
n
的引用链接;
[0019]S1.6、构建issue属于仓库的隶属关系集合B,其中<i
m
,r
n
>∈B(i
m
∈I,r
n
∈R)表示issue i
m
属于仓库r
n

[0020]进一步地,所述关联文本语义嵌入模块的具体处理过程为:
[0021]S2.1、定义训练目标函数为
[0022][0023]其中,表示窗口j内扫描到的单词w
j
的嵌入向量,下标x表示窗口中心;表示函数在分布P
n
(w
x
)下的数学期望,P
n
(w
x
)表示单词w
x
的噪声分布;σ(
·
)为sigmoid函数;v
h
表示训练过程融合的issue语义嵌入向量,且
[0024]v
h
=h(t
i
;c
i~j
,

,c
m~i
;w
x

k
,

,w
x
‑1,w
x+1
,

,w
x+k
)
[0025]c
i~j
表示issue i和j的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.面向开源社区的跨项目issue参与者推荐框架,其特征在于,包括数据采集与文本预处理模块、关联文本语义嵌入模块、开源社区实体结构嵌入模块和推荐结果排序模块,所述数据采集与文本预处理模块:用于从开源社区中获取信息并以一定格式加以处理,包括,去除质量差的issue和issue中的干扰部分,对issue文本进行词干提取、词形还原并去除停止词以得到issue文本集,分别提取每个issue对其他issue的引用关系以构建issue关系集;所述关联文本语义嵌入模块:定义训练目标函数并利用issue文本集和issue关系集训练语义嵌入模型,通过语义嵌入模型获取待推荐issue的文本语义嵌入向量,并通过其与issue文本集中issue文本语义嵌入向量的距离找出与待推荐issue语义相似的issue集合;所述开源社区实体结构嵌入模块:构建整个开源社区中开发者、仓库、issue三种结点间交互关系的异质图,为跨项目的推荐任务设计issue引用关系增强的元路径,以元路径对异质图进行采样并采用图嵌入方法训练得到每个结点的结构嵌入向量以构建结构关系向量集合;所述推荐结果排序模块:从结构关系向量集合中找出issue集合和待推荐issue所属仓库的结构关系向量,并计算其与开发者结点的向量距离以得到有序的开发者推荐结果。2.如权利要求1所述的面向开源社区的跨项目issue参与者推荐框架,其特征在于,所述数据采集与文本预处理模块的具体处理过程包括:S1.1、从开源社区中获取需要的开源仓库集合R,对R中的每个仓库r,获取其issue集合I
r
,每个issue包含标题、描述和评论的所有文本,所有仓库的issue构成集合I=∪
r∈R
I
r
;S1.2、从集合I中去除标题单词数目少于m或描述字符数目少于n的issue,并去除issue中引用他人部分的文本和代码,利用传统文本预处理方法进行词干提取、词形还原、去除停止词得到issue预处理后的文本集;S1.3、抽取出所有issue的参与者构成参与者集合D,再根据所有开发者参与issue的关系构成参与关系集合J;S1.4、根据开源社区仓库信息抽取维护关系<d,r>构成维护关系集合M,<d,r>表示开发者d维护仓库r,d∈D,r∈R;S1.5、提取issu之间的所有引用关系构成引用关系集合Q,其中<i
m
,i
n
>∈Q(i
m
∈I,i
n
∈I,i
m
≠i
n
)表示issue i
m
中包含对issue i
n
的引用链接;S1.6、构建issue属于仓库的隶属关系集合B,其中<i
m
,r
n
>∈B(i
m
∈I,r
n
∈R)表示issue i
m
属于仓库r
n
。3.如权利要求2所述的面向开源社区的跨项目issue参与者推荐框架,其特征在于,所述关联文本语义嵌入模块的具体处理过程为:S2.1、定义训练目标函数为其中,表示窗口j内扫描到的单词w
j
的嵌入向量,下标x表示窗口中心;表示函数在分布P
n
(w
x
)下的数学期望,P
n
(w
x
)表示
单词w
x
的噪声分布;σ(
·
)...

【专利技术属性】
技术研发人员:汪亮江会煜陶先平
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1