【技术实现步骤摘要】
面向开源社区的跨项目issue参与者推荐框架
[0001]本专利技术属于计算机软件工程应用领域,具体涉及一种面向开源社区的跨项目issue参与者推荐框架。
技术介绍
[0002]开源软件的蓬勃发展使开源社区(例如GitHub)中维护了越来越多的软件仓库,每个人都可以在公共软件仓库中提交issue,issue可以帮助开发人员发现软件漏洞,但由于数目太多致使维护人员往往无法及时检查这些issue。此外,人工查看issue并选择合适的参与者困难且乏味,而且在更大的软件仓库中这种情况会更加糟糕。
[0003]类似的问题也在bug跟踪系统(另一种开源社区,通常维护单一仓库,例如Mozilla)中出现,在bug跟踪系统中,bug分流技术将此问题视为从bug报告文本到开发者或修复者的分类问题。关于bug分类的现有工作只关注于从维护仓库的开发人员中推荐,但是在GitHub中,这个问题变得复杂,因为每个人都可以参与问题的讨论,或者提交关于这个问题的额外信息,有些人可能是专家,但并不维护此仓库。
[0004]最经典的bug分流技术已经研究了将其作为简单的文本分类问题的可能,并取得了一定的成果。但是在不限制开发者的范围下,若仍采用文本分类方法将会面临维数灾难而难以取得良好的效果。在bug分流技术方面,有研究在考虑issue到开发者的投递序列,在建立语言主题模型等方案上分别取得了各自的成功。
[0005]在开源社区中的推荐问题上,已有pull
‑
request审阅者推荐问题从开源社区的结构上进行研究 ...
【技术保护点】
【技术特征摘要】
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
的噪声分布;σ(
·
)...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。