[发明专利]一种基于Star信息和README文档的开源社区相似仓库推荐方法在审
申请号: | 201810092877.6 | 申请日: | 2018-01-26 |
公开(公告)号: | CN110119419A | 公开(公告)日: | 2019-08-13 |
发明(设计)人: | 刘嘉;刘锦涛;方文强;邹卫琴;李玉莹;陈振宇 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/28 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210093 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 仓库 文档 社区 开发语言 准确率 发现 语言 | ||
本发明提出了一种基于开源社区仓库的Star信息和README文档来发掘并推荐高质量相似仓库的方法。该发明的创新在于如下三个方面:只推荐开源社区中优秀的相似项目仓库;突破了现有方法中的局限性,突破了开发语言的限制,可以进行跨语言比较、推荐;充分利用仓库自身的Star用户列表和README文档来发现仓库间的相似性。通过实验发现,本发明较现有方法,准确率更佳。
技术领域
本发明属于计算机技术中的推荐系统领域,涉及开源社区中的项目仓库的相似度比较,尤其是对受欢迎的优秀仓库的相似仓库进行推荐。
背景技术
开源软件平台越来越受到开发者的青睐,根据GitHub公布的数据,截至2017年11月11日,其上已经有超过五千两百万的项目,并且有两千四百万的开发人员在其上进行开发。同时,开源社区因其包含各式开源项目,也满足了开发人员对代码复用的需求,有超过一半的开源软件的代码文件被用在多个开源软件之中。这意味着开源社区之上的一大部分仓库是相似的。开源社区上的两个仓库如果他们的代码是相似的或者他们实现了相似的功能,那么就认为他们是相似的。那么,如何在数量庞大的仓库中找到真正相似的高质量的仓库,方便代码复用或是作为新项目的参考,便成为一个难题。
现有的软件项目仓库推荐方法主要有以下几种:1)开源社区提供的仓库检索工具,2)Mudable,3)CLAN。开源社区会提供自己的检索工具,但是其提供的搜索引擎只能基于关键词进行搜索,只有当仓库名称中包含检索词的时候,才会返回结果。当仓库名称不包含检索词时就无法返回,然而大部分相似仓库的仓库名称是各不相同的,甚至毫无规律可循,此时,社区自带的搜索引擎显然无法作为理想的相似仓库的检索工具。
Mudablue对项目仓库进行类别标注,基于潜在语义分析技术对项目仓库进行分析。但是这种方法在开源社区中的实际应用效果并不理想,因为开源社区中的项目仓库只有很少一部分具有标注,大多数仓库处于无标注状态,此时便无法使用Mudablue。CLAN通过度量分析两个项目所调用的API的相似度,来计算两个项目仓库之间的相似度。但是CLAN只能对以Java作为开发语言的仓库进行分析。在面对开源社区中大量的无标注、非Java的项目时,以上两种方法并不能满足开发者的需求。
发明内容
本发明要解决的问题是:提出一种基于Star信息和README文档的开源社区相似仓库推荐方法。
本发明的技术方案为:
(1)将一个开源社区仓库全名作为输入,获得其README文档和Star用户列表,以及该列表内所有用户Star的其他仓库。
(2)使用上一步获取的数据和已有的优秀仓库的对应信息进行计算,分别通过两个仓库的README文档获得“README文档相似度”,通过两个仓库的关注用户所关注的其他仓库获得“Star用户列表相似度”以及通过同时关注两个仓库的用户获得“时间相似度”。
(3)将上一步获得的三种相似度相乘计算,得到最终的两个仓库之间的相似度。
(4)重复(2)(3)两步直至目标仓库与所有仓库的相似度计算完成。
(5)根据需要,列出相似度最高的若干仓库,作为结果输出,输出仓库数量最大应不超过已有仓库数量。
本发明的有益效果是:充分利用了开源社区项目仓库已有的信息,挖掘两个仓库之间的相似性,避免了已有方法中只针对特定语言、特定情况下才能使用的限制。从而为开发者提供高质量的相似仓库作为参考。
附图说明
图1基于Star信息和README文档的开源社区相似仓库推荐方法的流程图
图2README文档相似度计算流程
图3Star用户列表相似度计算流程
图4时间相似度计算流程
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810092877.6/2.html,转载请声明来源钻瓜专利网。