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

文档序号:9631558阅读:384来源:国知局
一种跨社区开源资源匹配关联方法
【技术领域】
[0001]本发明涉及一种开源软件跨社区匹配关联方法,尤其涉及一种将开源项目托管社区中的开源软件和知识共享社区中的在线文档进行跨社区关联的方法。
【背景技术】
[0002]在网络时代的软件工程中,随着越来越多的人加入到软件的开发中,软件复用成为一项重要内容,很大一部分的软件开发都是基于已有的软件或平台进行的。开源软件为软件复用提供了大量的资源。开源软件的出现一方面为软件开发者提供了大量的相对可靠的可利用资源,降低了重复性工作,让开发者将更多的精力投入到软件的用户需求和核心技术上,另一方面,众多开发人员与组织开始投入到开源软件的开发与维护中,使得开源更加成为一种趋势。
[0003]为了给软件开发人员提供好的开源软件资源和咨询,目前互联网上关于开源软件的网站可以分为两类:一类是为开源软件提供在线托管和资源下载的项目托管社区, 如 github (https://github.com/)、sourceforge(https://sourceforRe.com/)、openhub (https://www.0penhub.net/)等;一类是为开发人员提供讨论、交流的平台的知识共享社区,如国外的 stackoverf low (http://stackoverf low, com/)、国内的 CSDN (http://www.csdn.net/)、博客园 http://www.cnblogs.com/)等。
[0004]项目托管社区为用户提供了丰富的开源软件资源,用户可查找或下载所需的开源软件。像github这样的项目托管社区还为开源软件提供了托管平台,用户将自己创建的开源软件托管到平台中,进行代码的维护和持续的开发。同时,用户也可以针对开源软件使用中的问题与开发者交流甚至加入开源软件的开发。项目托管平台为基于开源软件的开发和维护以及开源软件本身的协同开发等方面提供了良好的环境。
[0005]知识共享社区则主要为用户提供交流的平台,用户在知识共享社区中发博客分享自己对软件的使用心得,遇到问题时在论坛中发帖提问寻求解答、与其它从事类似工作的开发人员进行交流讨论。用户发布的博客或在论坛中的讨论对该软件的其他用户来说都是十分重要的信息和资源。知识共享社区中包含的内容非常丰富:有关于开源软件的新闻和资讯,有用户写的技术分享博客,有用户在论坛中的讨论帖,还包括招聘网站的招聘信息。为了方便,本文将这些知识共享社区中的信息统称为在线文档。在线文档为用户使用开源软件提供了很大的帮助。此外,由于开源资源数量庞大,质量良莠不齐,用户在选择所需的开源资源的时候也需要先通过知识共享社区了解相关开源软件的评价,在线文档中关于开源资源的讨论也为用户的选择提供了参考。
[0006]然而这两类社区通常是分开且相互独立的,用户需要从项目托管社区中查找、下载所需的开源资源,在使用时去知识共享社区搜索相关的在线文档查找所需的信息。这两类社区中的资源数量都十分庞大,尤其是知识共享社区中的在线文档,含有大量冗余和垃圾的信息(如“水帖”、广告等),使得用户在查找时要耗费很长的时间来筛选相关的有用信息。这极大的降低了用户的开发效率。

【发明内容】

[0007]本发明要解决的技术问题是:针对在互联网中存在大量开源软件项目和相关讨论的条件下,提供一种能将项目托管社区中的开源软件与知识共享社区中的在线文档(为了方便,在本说明中,将知识共享社区中的讨论帖、博客、新闻、招聘信息等统称为“在线文档”)有效关联的方法,使得用户在查找开源资源时可以同时获得与该开源软件相关的在线文档。因此,用户在查找开源资源时,可以同时获得软件本身的信息和与开源软件相关的博文、论坛讨论、新闻等信息。用户即可以多方面的了解开源软件同时不会在垃圾信息中消耗时间,节约了用户的时间,提高开发效率。
[0008]本发明的技术方案包括以下步骤:
[0009]步骤101、采用通用的Web爬虫技术从互联网的主要开源项目托管社区中获取开源软件信息,采集包括开源软件的基本属性的项目数据,所述基本属性包括项目名称、项目描述、开发语言、创建时间、爬取时间、项目标签、项目源地址。
[0010]步骤102、采用通用的Web爬虫技术从互联网主要的知识分享社区中获取开源软件相关在线文档信息数据,所述在线文档信息数据包括文档标题、文档内容及文档基本属性,所述文档基本属性包括文档标签、文档发布时间、文档源地址。
[0011]步骤103、采用开源的全文检索工具Lucene为采集到的在线文档数据的文档标题、文档内容和开源软件的项目名称建立文件索引。
[0012]步骤104、用开源软件的项目名称与在线文档的文档标签进行匹配,其中以所述项目名称为关键词在数据库存储的标签表中查找在线文档,若所述在线文档具有与所述项目名称相同的标签,则为所述在线文档与所述开源软件建立关联,并赋予权值Wl,表示以项目名称和文档标签为度量时,所述在线文档针对所述开源软件的关联程度。
[0013]步骤105、用开源软件的项目名称在在线文档标题中进行检索,其中,以项目名称为关键词,从步骤3中建立的文件索引中搜索在线文档标题,若文档标题中含有项目名称,则为该文档与项目建立关联,并将这次关联赋予权值《2,表示以项目名称和文档标题为度量时,所述在线文档针对所述开源软件的关联程度。
[0014]步骤106、在所有已建立的关联中,对开源软件的项目标签统计包含在在线文档标题中的项目标签个数X,计算权值w3= 0.5*log 2 (x2+l),其表示以项目标签在文档标题中的出现次数作为该项目与在线文档关联程度的度量,通过权值的计算判断关联结果的可信度。
[0015]步骤107、在所有已建立的关联中,对关联的开源软件的项目标签与在线文档的文档标签进行匹配,统计在两者中都出现的标签个数1,计算权值
[0016]w4= 0.6*log2(y2+l),其表示以项目标签和文档标签中相同的标签个数作为度量,通过权值的计算判断关联结果的可信度。
[0017]步骤108、计算最终权值
[0018]w = W!+W2+ (w!+w2) * (w3+w4),当关联的权值w大于阈值q时,认为该在线文档与开源软件是关联的,关联结果以[开源软件,在线文档,权重]的结果存储在数据库中,完成跨社区关联。
[0019]进一步地,步骤101中的所述项目标签以[项目id,标签]的格式单独存储在标签表中,开源软件的其他属性存储在开源软件表中;步骤102中的所述文档标签以[文档id,标签]的格式追加存储在标签表中,所述文档标题、文档内容和其他文档基本属性存储在文档表中。
[0020]进一步地,步骤105中所述检索的过程使用开源的Lucene全文检索工具实现。
[0021]进一步地,步骤108中w的计算依据是,只有在步骤104或者步骤105中匹配到的界丨或W 2不为ο才去计算步骤6和步骤7的权重,且用(w !+w2) * (w3+w4)表示步骤106和107对最终权值的影响建立在步骤104和步骤105之上。
[0022]采用本发明可以达到以下效果:本发明不仅对软件开发人员在利用开源软件进行开发等活动相关活动时有帮助,对普通用户在了解各个开源软件信息和功能等方面也有很大的帮助。本发明根据目前两类开源社区的特点和用户在使用时存在的问题,首先从互联网的开源社区采集开源软件和在线文档信息,然后通过关联算法将在线文档与开源软件进行跨社区关联。使用户在查找开源软件时可以同时获取相关的博客、讨论帖等信息。本方法首次将两类社区的数据进行关联,能够极大提高用户在获取相关数据时的效率。
[0023]因此用户在查找开源软件时,可以同时获得软件信息及其相关的讨论帖、博客等开源社区的在线文档,使用户可以更快速、高效地获取所需的信息,有助于用户对开源软件的了解和使用。
【附图说明】
[
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1