CN107391542B - 一种基于文件知识图谱的开源软件社区专家推荐方法 - Google Patents
一种基于文件知识图谱的开源软件社区专家推荐方法 Download PDFInfo
- Publication number
- CN107391542B CN107391542B CN201710343007.7A CN201710343007A CN107391542B CN 107391542 B CN107391542 B CN 107391542B CN 201710343007 A CN201710343007 A CN 201710343007A CN 107391542 B CN107391542 B CN 107391542B
- Authority
- CN
- China
- Prior art keywords
- file
- developer
- node
- project
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于文件知识图谱的开源软件社区专家推荐方法,包括以下步骤:1)针对开源软件社区中的某个项目,根据文件路径计算两两文件路径之间的相似度,构建项目文件关系网络;2)对项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征;3)将开发者本人的历史编辑文件特征,与其联系过的专家的历史编辑文件特征整合为该开发者的已知开发行为特征;4)根据开发者的历史已知特征,训练随机森林模型,用于推荐其开发过程中需要联系的专家。本发明将每个项目文件转化为各个知识图谱,通过开源软件社区开发者当前涉及到的这些文件的图谱信息,预测并推荐相应的专家。
Description
技术领域
本发明涉及软件工程与推荐系统领域,特别是涉及一种基于文件知识图谱的开源软件社区专家推荐方法。
背景技术
目前,开源软件社区日益受到开发者的关注与参与,越来越多的优秀项目从这里诞生。它的核心思想是众人共同来完成项目,由于开发者可能身处于不同的地方,所以尽管这种全球化的分布式项目开发方式吸引了许多开发者加入,节约了人力成本,但由于项目成员之间的工作交流往往通过自主地电子通讯方式,受到时间与空间因素的影响,甚至制约了那些新加入的或不熟练的开发者尽快熟悉项目。有研究指出在开源软件项目中有4%至30%的开发者存在联系专家的困境。他们有时为了寻找与自己开发方向相类似的专家,浪费了太多时间,通常比那些不需要联系专家的开发者多花费12天来完成项目中的任务,严重影响了开发进度。为了克服开源软件社区开发者联系专家的不便性,给软件开发者推荐专家显得非常有必要。
传统的专家推荐系统,通过项目组的不同成员对项目文件的历史工作情况来评测成员之间的相似性,基于成员之间的相似性做出推荐;或者通过成员对不同项目文件的历史工作情况来评测项目文件之间的相似性,基于相似性的项目文件所附属的专家做出推荐。这类推荐方法计算复杂度高,结构比较单一,使用成本较高。由于在开源软件社区开发者寻找专家的行为,本身是一种基于当前项目任务为动机的过程,所以同一个开发者在处理不同项目文件时,可能需要寻找不同方面的专家,传统的专家推荐系统很难处理这类实时推荐问题。
发明内容
为了克服现有专家推荐系统的实时性较差、精准性较低、时间成本较高、开发效率较低的不足,本发明提供一种实时性良好、精准性较高、时间成本较低、开发效率较高的基于文件知识图谱的开源软件社区专家推荐方法。
本发明解决其技术问题所采用的技术方案如下:
一种基于文件知识图谱的开源软件社区专家推荐方法,包括以下步骤:
S1:针对开源软件社区中的某个项目,根据文件路径计算两两文件路径之间的相似度,构建项目文件关系网络;
S2:对项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征;
S3:将开发者本人的历史编辑文件特征,与其联系过的专家的历史编辑文件特征整合为该开发者的已知开发行为特征;
S4:根据开发者的历史已知特征,训练随机森林模型,用于推荐其开发过程中需要联系的专家。
所述步骤S1中,计算两两文件路径之间的相似度,文件1与文件2在某个项目中的绝对路径分别为:f1,f2,则文件1与文件2的路径相似度为
其中StringComparison(f1,f2)为文件1与文件2的绝对路径中的相同部分个数;max(length(f1),length(f2))为文件1与文件2的绝对路径长度的最大值。
所述步骤S1中,构建项目文件关系网络:项目文件关系网络G(V,E,W),其中V表示文件作为网络节点,E表示两两文件的关系连边,W表示两两文件的路径相似度权重。
所述步骤S2中,对步骤S1得到的项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征:n维向量Rν∈R1×n。提取特征过程分为以下3步:根据项目文件关系网络G(V,E,W),定义每个节点随机游走的规则;根据节点随机游走的规则,对网络G′(V,E,π)进行随机游走,保存游走记录;对游走记录最大似然函数,得到每个文件节点的知识图谱特征。
所述步骤S2中,根据项目文件关系网络G(V,E,W),定义每个节点随机游走的规则,假设上一时刻在节点t,现在随机游走到节点v,则下一步从节点v出发,会游走到节点v的其中一个邻居节点v′∈{t,x1,x2,x3},游走概率πvv′定义为
πvv′=αpq(t,v′)·wvv′
其中dtv′指的是网络中节点t与节点v′的最短权重路径长度,p和q分别是控制随机游走返回到上一时刻的节点、控制随机游走选择深度遍历或广度遍历的常数项因子,wvv′指的是项目文件关系网络G(V,E,W)中,节点v与节点v′之间的相似度权重。
所述步骤S2中,根据节点随机游走的规则,得到网络G′(V,E,π),对网络G′中所有节点进行π权重概率、总步长l的随机游走,每次将游走记录放入walk列表中,循环设定次数。
所述步骤S3中,将开发者的所有邮件联系数据按时间先后顺序排序,取前一半时间的数据作为训练数据,后一半时间的数据作为测试数据;针对每条开发者的邮件联系数据,将其当时联系的专家作为标签;定义:RA∈R1×n,为该开发者在此邮件联系时间之前的最近时刻编辑的文件集合的知识图谱特征的向量和;RB∈R1×n,为该开发者在此邮件联系时间之前的所有历史编辑的文件集合的知识图谱特征的向量和;RC∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家在最近一次编辑的文件集合的知识图谱特征的向量和;RD∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家的历史编辑文件集合的知识图谱特征的向量和;整合这4个向量特征(RA,RB,RC,RD)∈R1×4n,作为该开发者的历史已知特征。
所述步骤S4中,根据开发者的历史已知特征(RA,RB,RC,RD)∈R1×4n以及相应的专家标签数据,使用训练数据构建随机森林模型,用于推荐其在测试数据里的开发过程中需要联系的专家。
本发明的技术构思为:本发明根据node2vec算法框架(参考文献:[1]Grover A,Leskovec J.node2vec:Scalable feature learning for networks,Proceedings of the22nd ACM SIGKDD International Conference on Knowledge Discovery and DataMining.ACM,2016:855-864,即Grover A,Leskovec J.node2vec:网络的可扩展特征学习,Proceedings of the 22nd ACM SIGKDD International Conference on KnowledgeDiscovery and Data Mining.ACM,2016:855-864),将每个项目文件转化为各个知识图谱,通过将开源软件社区开发者当前涉及到的这些文件的图谱信息,实时地为该开发者预测并推荐与其目前项目开发工作相关的专家。
本发明有益效果如下:本发明将每个项目文件转化为各个知识图谱,通过将开源软件社区开发者当前涉及到的这些文件的图谱信息,预测并推荐相应的专家。本发明不仅改善了传统的专家推荐系统计算复杂度高、结构单一的缺点,通过当前项目开发者的工作状态,还有效地实现了专家推荐的实时性精准性,大大节省了开发者联系专家的时间成本,提高了开发效率。
附图说明
图1为本发明实施例的基于文件知识图谱的开源软件社区专家推荐的流程图;
图2为本发明实施例的关于node2vec算法涉及的子网络示意图。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1和图2,一种基于文件知识图谱的开源软件社区专家推荐方法,本发明使用Apache软件基金会(Apache Software Foundation)中的20个项目的成员提交文件数据、电子邮件交流数据以及各个文件路径数据。
本发明包括以下四个步骤:
S1:针对开源软件社区中的某个项目,根据文件路径计算两两文件路径之间的相似度,构建项目文件关系网络;
S2:对项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征;
S3:将开发者本人的历史编辑文件特征,与其联系过的专家的历史编辑文件特征整合为该开发者的已知开发行为特征;
S4:根据开发者的历史已知特征,训练随机森林模型,用于推荐其开发过程中需要联系的专家。
所述步骤S1中,计算两两文件路径之间的相似度,文件1与文件2在某个项目中的绝对路径分别为:f1=“src/com/android/settings/LocationSettings.java”,f2=“src/com/android/settings/Utils.java”,则文件1与文件2的路径相似度为
其中StringComparison(f1,f2)为文件1与文件2的绝对路径中的相同部分个数;max(length(f1),length(f2))为文件1与文件2的绝对路径长度的最大值,在本例中文件1与文件2的StringComparison(f1,f2)=4,max(length(f1),length(f2))=5,则文件1与文件2的路径之间相似度为similarity(f1,f2)=0.8。
所述步骤S1中,构建项目文件关系网络:项目文件关系网络G(V,E,W),其中V表示文件作为网络节点,E表示两两文件的关系连边,W表示两两文件的路径相似度权重。
所述步骤S2中,对步骤S1得到的项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征,所述node2vec算法提取特征过程如下:
S2-1:根据项目文件关系网络G(V,E,W),定义每个节点随机游走的规则,附图2是某次随机游走的子网络示意图,假设上一时刻在节点t,现在随机游走到节点v,则下一步从节点v出发,会游走到节点v的其中一个邻居节点v′∈{t,x1,x2,x3},游走概率πvv′定义为
πvv′=αpq(t,v′)·wvv′
其中dtv′指的是网络中节点t与节点v′的最短权重路径长度,p和q分别是控制随机游走返回到上一时刻的节点、控制随机游走选择深度遍历或广度遍历的常数项因子,wvv′指的是项目文件关系网络G(V,E,W)中,节点v与节点v′之间的相似度权重;
S2-2:根据节点随机游走的规则,得到网络G′(V,E,π),对网络G′中所有节点进行π权重概率、总步长l的随机游走,每次将游走记录放入walk列表中,循环设定次数(例如5次);
所述步骤S3中,将开发者的所有邮件联系数据按时间先后顺序排序,取前一半时间的数据作为训练数据,后一半时间的数据作为测试数据;针对每条开发者的邮件联系数据,将其当时联系的专家作为标签;定义:RA∈R1×n,为该开发者在此邮件联系时间之前的最近时刻编辑的文件集合的知识图谱特征的向量和;RB∈R1×n,为该开发者在此邮件联系时间之前的所有历史编辑的文件集合的知识图谱特征的向量和;RC∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家在最近一次编辑的文件集合的知识图谱特征的向量和;RD∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家的历史编辑文件集合的知识图谱特征的向量和;整合这4个向量特征(RA,RB,RC,RD)∈R1×4n,作为该开发者的历史已知特征。
所述步骤S4中,根据开发者的历史已知特征(RA,RB,RC,RD)∈R1×4n以及相应的专家标签数据,使用训练数据构建随机森林模型,用于推荐其在测试数据里的开发过程中需要联系的专家。
如上所述为本发明在Apache软件基金会的20个项目的开发者专家推荐方法的实施例介绍,本发明通过开发者当前编辑过的项目文件,及其之前邮件联系人的项目文件等开发状态,实时为该开发者提供与其项目开发状态相关的推荐专家列表。相比于传统专家推荐系统,有监督学习地提取相似度特征,本发明使用node2vec算法,以半监督深度学习的方式提取项目文件的知识图谱特征,能最大限度地发掘文件的属性特征,提高推荐效果。对发明而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在发明权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。
Claims (1)
1.一种基于文件知识图谱的开源软件社区专家推荐方法,其特征在于:所述推荐方法包括以下步骤:
S1:针对开源软件社区中的某个项目,根据文件路径计算两两文件路径之间的相似度,构建项目文件关系网络;
S2:对项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征;
S3:将开发者本人的历史编辑文件特征,与其联系过的专家的历史编辑文件特征整合为该开发者的已知开发行为特征;
S4:根据开发者的历史已知特征,训练随机森林模型,用于推荐其开发过程中需要联系的专家;
所述步骤S1中,计算两两文件路径之间的相似度,文件1与文件2在某个项目中的绝对路径分别为:f1=“src/com/android/settings/LocationSettings.java”,f2=“src/com/android/settings/Utils.java”,则文件1与文件2的路径相似度为:
其中StringComparison(f1,f2)为文件1与文件2的绝对路径中的相同部分个数;max(length(f1),length(f2))为文件1与文件2的绝对路径长度的最大值;
所述步骤S1中,构建项目文件关系网络,项目文件关系网络G(V,E,W),其中V表示文件作为网络节点,E表示两两文件的关系连边,W表示两两文件的路径相似度权重;
所述步骤S2中,对步骤S1得到的项目文件关系网络,使用node2vec算法,提取网络中各个文件的知识图谱特征,node2vec算法提取特征过程如下:
S2-1:根据项目文件关系网络G(V,E,W),定义每个节点随机游走的规则,假设上一时刻在节点t,现在随机游走到节点v,则下一步从节点v出发,会游走到节点v的其中一个邻居节点v′∈{t,x1,x2,x3},游走概率πvv′定义为:
πvv′=αpq(t,v′)·wvv′
其中dtv′指的是网络中节点t与节点v′的最短权重路径长度,p和q分别是控制随机游走返回到上一时刻的节点、控制随机游走选择深度遍历或广度遍历的常数项因子,wvv′指的是项目文件关系网络G(V,E,W)中,节点v与节点v′之间的相似度权重;
S2-2:根据节点随机游走的规则,得到网络G′(V,E,π),对网络G′中所有节点进行π权重概率、总步长l的随机游走,每次将游走记录放入walk列表中,循环设定次数;
S2-3:针对walk列表中所有位置上的节点,用随机梯度下降法最优化函数
T为walk列表的长度,c为窗口大小,最终得到每个文件节点v的知识图谱特征:n维向量Rv∈R1×n;
所述步骤S3中,将开发者的所有邮件联系数据按时间先后顺序排序,取前一半时间的数据作为训练数据,后一半时间的数据作为测试数据,针对每条开发者的邮件联系数据,将其当时联系的专家作为标签;定义:RA∈R1×n,为该开发者在此邮件联系时间之前的最近时刻编辑的文件集合的知识图谱特征的向量和;RB∈R1×n,为该开发者在此邮件联系时间之前的所有历史编辑的文件集合的知识图谱特征的向量和;RC∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家在最近一次编辑的文件集合的知识图谱特征的向量和;RD∈R1×n,为该开发者在此邮件联系时间之前的最近时刻联系过的专家的历史编辑文件集合的知识图谱特征的向量和;整合这4个向量特征(RA,RB,RC,RD)∈R1×4n,作为该开发者的历史已知特征;
所述步骤S4中,根据开发者的历史已知特征(RA,RB,RC,RD)∈R1×4n以及相应的专家标签数据,使用训练数据构建随机森林模型,用于推荐其在测试数据里的开发过程中需要联系的专家。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710343007.7A CN107391542B (zh) | 2017-05-16 | 2017-05-16 | 一种基于文件知识图谱的开源软件社区专家推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710343007.7A CN107391542B (zh) | 2017-05-16 | 2017-05-16 | 一种基于文件知识图谱的开源软件社区专家推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391542A CN107391542A (zh) | 2017-11-24 |
CN107391542B true CN107391542B (zh) | 2021-01-01 |
Family
ID=60338415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710343007.7A Active CN107391542B (zh) | 2017-05-16 | 2017-05-16 | 一种基于文件知识图谱的开源软件社区专家推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391542B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376354A (zh) * | 2018-01-10 | 2018-08-07 | 链家网(北京)科技有限公司 | 一种基于网络图结构的推荐方法及装置 |
CN108877946A (zh) * | 2018-05-04 | 2018-11-23 | 浙江工业大学 | 一种基于网络特征的医生专家推荐方法 |
CN108920527A (zh) * | 2018-06-07 | 2018-11-30 | 桂林电子科技大学 | 一种基于知识图谱的个性化推荐方法 |
CN109409848A (zh) * | 2018-11-28 | 2019-03-01 | 厦门市美亚柏科信息股份有限公司 | 开放式流程的节点智能推荐方法、终端设备及存储介质 |
CN110704636B (zh) * | 2019-09-27 | 2021-01-05 | 吉林大学 | 一种改进的基于Node2vec的知识图谱向量表示方法 |
CN110851619A (zh) * | 2019-10-23 | 2020-02-28 | 北京科技大学 | 一种基于中医医案的个性化知识图谱的构建方法及装置 |
CN110874431B (zh) * | 2019-11-20 | 2022-04-26 | 云南财经大学 | 基于JAVA Doc知识图谱的多维评估推荐方法 |
CN111061864B (zh) * | 2019-12-23 | 2022-10-18 | 中国人民解放军国防科技大学 | 基于特征提取的开源社区Fork摘要自动生成方法、系统及介质 |
CN111198950B (zh) * | 2019-12-24 | 2021-10-15 | 浙江工业大学 | 一种基于语义向量的知识图谱表示学习方法 |
CN112347373B (zh) * | 2020-11-13 | 2022-06-17 | 浙江工业大学 | 一种基于开源软件邮件网络的角色推荐方法 |
CN112905891B (zh) * | 2021-03-05 | 2021-12-10 | 中国科学院计算机网络信息中心 | 基于图神经网络的科研知识图谱人才推荐方法及装置 |
CN113254550B (zh) * | 2021-06-29 | 2022-04-19 | 浙江大华技术股份有限公司 | 基于知识图谱的推荐方法、电子设备和计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530428A (zh) * | 2013-11-04 | 2014-01-22 | 武汉大学 | 一种基于开发者实践技能相似性的同行推荐方法 |
CN104102748A (zh) * | 2014-08-08 | 2014-10-15 | 中国联合网络通信集团有限公司 | 文件映射方法及装置和文件推荐方法及装置 |
CN105913323A (zh) * | 2016-05-06 | 2016-08-31 | 浙江大学 | 一种GitHub开源社区的PullRequest评审者推荐方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8875301B2 (en) * | 2011-10-12 | 2014-10-28 | Hewlett-Packard Development Company, L. P. | Software license incompatibility determination |
CN104969230A (zh) * | 2013-01-30 | 2015-10-07 | 惠普发展公司,有限责任合伙企业 | 用于确定软件许可之间的兼容性的系统及方法 |
-
2017
- 2017-05-16 CN CN201710343007.7A patent/CN107391542B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530428A (zh) * | 2013-11-04 | 2014-01-22 | 武汉大学 | 一种基于开发者实践技能相似性的同行推荐方法 |
CN104102748A (zh) * | 2014-08-08 | 2014-10-15 | 中国联合网络通信集团有限公司 | 文件映射方法及装置和文件推荐方法及装置 |
CN105913323A (zh) * | 2016-05-06 | 2016-08-31 | 浙江大学 | 一种GitHub开源社区的PullRequest评审者推荐方法 |
Non-Patent Citations (1)
Title |
---|
知识图谱构建技术综述;刘峤等;《计算机研究与发展》;20160331(第03期);正文第1-4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN107391542A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391542B (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
Ozbay et al. | A novel approach for detection of fake news on social media using metaheuristic optimization algorithms | |
Bagci et al. | Context-aware friend recommendation for location based social networks using random walk | |
Pham et al. | A general recommendation model for heterogeneous networks | |
CN111967972B (zh) | 理财产品推荐方法及装置 | |
CN110032682B (zh) | 一种信息推荐列表生成方法、装置及设备 | |
Lin et al. | Website reorganization using an ant colony system | |
CN112052404B (zh) | 多源异构关系网络的群体发现方法、系统、设备及介质 | |
CN113095948B (zh) | 一种基于图神经网络的多源异构网络用户对齐方法 | |
CN113094593B (zh) | 社交网络事件推荐方法、系统、设备及存储介质 | |
CN111459988B (zh) | 一种机器学习流水线自动化设计的方法 | |
CN105760443A (zh) | 项目推荐系统、项目推荐装置以及项目推荐方法 | |
CN114639483A (zh) | 一种基于图神经网络的电子病历检索方法及装置 | |
CN113988464A (zh) | 基于图神经网络的网络链路属性关系预测方法及设备 | |
CN104700311B (zh) | 一种社会网络中的邻域跟随社区发现方法 | |
CN113742580A (zh) | 目标类型数据的召回方法、装置、电子设备及存储介质 | |
CN111460275B (zh) | 一种面向社交网络的动态网络表示学习方法及系统 | |
Chahkandi et al. | Feature selection with chaotic hybrid artificial bee colony algorithm based on fuzzy (CHABCF) | |
CN113283243B (zh) | 一种实体与关系联合抽取的方法 | |
CN115455302A (zh) | 一种基于优化图注意网络的知识图谱推荐方法 | |
Guo et al. | K-loop free assignment in conference review systems | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
CN114329231A (zh) | 对象特征处理方法、装置、电子设备及存储介质 | |
Chen et al. | Community Detection Based on DeepWalk Model in Large‐Scale Networks | |
Loyola et al. | Clustering-based learning approach for ant colony optimization model to simulate web user behavior |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |