一种跨社区开源资源匹配关联方法_3

文档序号:9631558阅读:来源:国知局
某开源软件P数据时,首先从SDS中读取项目信息,包括项目基本属性,所述基本属性包括项目名称、项目描述、开发语言、创建时间、爬取时间、项目标签、项目源地址等。及其开发团队属性(开发者列表、开发者邮件列表等),然后从关联表中查询与该项目关联的在线文档,查询结果即与该开源软件相关的在线文档。对与项目关联的每个文档D,从DDS中读取文档的内容及属性(发布时间,更新时间,源地址,作者信息等),将项目信息和与之关联的文档属性一起返回给用户。
[0050]下面结合实施例直观的说明本发明的效果。图2是实施本实例的交互示意图。实例中包含一个开源软件数据服务器SDS、一个在线文档数据服务器DDS、关联关系存储服务器、开源项目网站SF1和SF2、知识共享社区网站SP1和SP2、一个用于说明交互流程的用户请求。本发明将从网站SF1和SF2中获取开源软件数据并存入SDS中,从SP1和SP2中获取在线文档数据存入DDS中,采用跨社区关联算法将SDS与DDS中的数据关联起来,即对一个开源软件,从在线文档数据库中挖掘出有哪些在线文档是关于该软件的。当用户请求开源软件信息时,服务器会同时返回给用户开源软件的信息及与其相关的在线文档信息。
[0051]本发明以网页的形式呈现并于用户交互。用户在网页上可以看到爬取到的开源软件列表,当用户点击或搜索一个开源软件时,通过本发明,会将用户所需的开源软件信息和与其关联的在线文档信息一起呈现在页面上。该执行过程包括以下步骤:
[0052]步骤201、采用Web爬虫从开源软件网站中爬取开源软件数据并将数据存储到数据服务器中。
[0053]步骤202、从开源软件相关的知识分享社区中通过爬虫采集在线文档(博客、讨论帖、新闻等)数据,并将数据存储到数据服务器中。
[0054]步骤203、采用图1中描述的开源软件跨社区关联算法将开源软件数据与在线文档数据关联起来,关联关系单独存储。
[0055]步骤204、SDS收到用户发送的查找某开源软件P的请求后,从SDS中查找该开源软件的属性(名称、描述、创建时间等)
[0056]步骤205、SDS从关联表中查找与开源软件P关联的在线文档列表
[0057]步骤206、对P的关联列表中的每个在线文档D,从DDS中查找其标题、内容和属性(标签、发布时间、源地址等)
[0058]步骤207、将P的详细信息(名称、描述、开发语言、创建时间、爬取时间、标签、源地址等)及所有与P相关的在线文档D的信息(标题、内容、标签、发布时间、源地址等)一起显示在网页上。
[0059]以上实施例可以反映出本发明能够在互联网范围为软件开发人员提供与其所需的开源软件相关的在线文档信息。由于系统中的在线文档采集自互联网多个知识分享社区,采集范围广泛,包含的内容丰富(含博客、讨论帖、新闻、招聘信息等),在用户查找开源软件时,与开源软件相关联的讨论或技术分享等信息可以同时提供给用户,使用户可以通过一次请求得到来自各个知识分享社区的信息,广泛全面地了解该软件的功能特性等,提高了用户使用开源软件的效率。此外,由于本发明主要面向的是使用开源软件的软件开发人员,因此在爬取数据和实施算法的过程中,具有很强的针对性。开源软件和在线文档的爬取列表是经过认真的考虑和严格的筛选,力求使爬取到的信息尽量全面且保证爬取数据的质量,例如一些广告或“水帖”较多的社区就不在爬取列表中,而在程序员中比较活跃的社区如stackoverflow等就是本文重点爬取的对象。因此呈现给用户的在线文档都是关于开源软件的专业的讨论,使用户在使用开源软件遇到问题时在本发明的平台上可以一次得到全面、专业的信息,而不需要用传统的搜索引擎去逐个搜索,大大提高了开发人员在使用开源软件查找相关信息时的效率。
[0060]最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
【主权项】
1.一种开源软件跨社区匹配关联方法,包括下列步骤: 步骤101、采用通用的Web爬虫技术从互联网的主要开源项目托管社区中获取开源软件信息,采集包括开源软件的基本属性的项目数据,所述基本属性包括项目名称、项目描述、开发语言、创建时间、爬取时间、项目标签、项目源地址; 步骤102、采用通用的Web爬虫技术从互联网主要的知识分享社区中获取开源软件相关在线文档信息数据,所述在线文档信息数据包括文档标题、文档内容及文档基本属性,所述文档基本属性包括文档标签、文档发布时间、文档源地址; 步骤103、采用开源的全文检索工具Lucene为采集到的在线文档数据的文档标题、文档内容和开源软件的项目名称建立文件索引; 步骤104、用开源软件的项目名称与在线文档的文档标签进行匹配,其中以所述项目名称为关键词在数据库存储的标签表中查找在线文档,若所述在线文档具有与所述项目名称相同的标签,则为所述在线文档与所述开源软件建立关联,并赋予权值Wl,表示以项目名称和文档标签为度量时,所述在线文档针对所述开源软件的关联程度; 步骤105、用开源软件的项目名称在在线文档标题中进行检索,其中,以项目名称为关键词,从步骤3中建立的文件索引中搜索在线文档标题,若文档标题中含有项目名称,则为该文档与项目建立关联,并将这次关联赋予权值《2,表示以项目名称和文档标题为度量时,所述在线文档针对所述开源软件的关联程度; 步骤106、在所有已建立的关联中,对开源软件的项目标签统计包含在在线文档标题中的项目标签个数X,计算权值》3= 0.5*log2(x2+l),其表示以项目标签在文档标题中的出现次数作为该项目与在线文档关联程度的度量,通过权值的计算判断关联结果的可信度。 步骤107、在所有已建立的关联中,对关联的开源软件的项目标签与在线文档的文档标签进行匹配,统计在两者中都出现的标签个数1,计算权值 w4= 0.6*log2(y2+l),其表示以项目标签和文档标签中相同的标签个数作为度量,通过权值的计算判断关联结果的可信度。 步骤108、计算最终权值w = W!+W2+ (w!+w2) * (w3+w4),当关联的权值W大于阈值q时,认为该在线文档与开源软件是关联的,关联结果以[开源软件,在线文档,权重]结果存储在数据库中,完成跨社区关联。2.如权利要求所述的方法,其中步骤101中的所述项目标签以[项目id,标签]的格式单独存储在标签表中,开源软件的其他属性存储在开源软件表中;步骤102中的所述文档标签以[文档id,标签]的格式追加存储在标签表中,所述文档标题、文档内容和其他文档基本属性存储在文档表中。3.如权利要求1所述的方法,其中步骤5中所述检索的过程使用开源的Lucene全文检索工具实现。4.如权利要求1所述的方法,其中步骤108中w的计算依据是,只有在步骤104或者步骤105中匹配到的%或*2不为0才去计算步骤6和步骤7的权重,且用(w AwJ * (w3+w4)表示步骤106和107对最终权值的影响建立在步骤104和步骤105之上。
【专利摘要】一种开源软件跨社区匹配关联方法,采用通用的Web爬虫技术从互联网的主要开源项目托管社区和知识分享社区中获取开源软件及在线文档信息数据,利用开源软件的项目名称及项目标签与在线文档信息的文档标题及文档标签进行关联匹配,为不同匹配类型设置不同的权重,实现在线文档与开源软件的跨社区关联,提高开发人员在使用开源软件查找相关信息时的效率。
【IPC分类】G06F17/30
【公开号】CN105389330
【申请号】CN201510617004
【发明人】王怀民, 尹刚, 王涛, 宋晨希, 范强, 史殿习, 刘惠, 丁博, 史佩昌, 杨程, 侯翔, 湛云
【申请人】中国人民解放军国防科学技术大学
【公开日】2016年3月9日
【申请日】2015年9月21日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1