[发明专利]开源软件获取与搜索系统的实现方法有效
申请号: | 201210097169.4 | 申请日: | 2012-04-05 |
公开(公告)号: | CN102760151A | 公开(公告)日: | 2012-10-31 |
发明(设计)人: | 王怀民;李翔;尹刚;朱沿旭;史殿习;王涛;袁霖;滕猛;刘惠;余跃 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 获取 搜索 系统 实现 方法 | ||
1.一种开源软件获取与搜索系统的实现方法,包括下列步骤:
步骤1、搭建数据服务,在企业级服务器上配置关系数据库管理软件,搭建关系与对象映射框架,使得上层应用程序对关系数据库进行调用时能使业务层代码能够以对象的方式访问和更新数据库里的信息;
步骤2、网页获取,接收用户的输入定义,确定一定数目的已知URL地址的开源社区集合,通过爬虫抓取开源社区中的开源软件主页,将开源项目的爬取分为开源项目列表页爬取和开源项目主页爬取两个阶段。
步骤3、开源属性抽取,从爬取到的页面中抽取开源软件领域的信息即开源属性;
步骤4、对跨社区项目信息进行整合,当来自不同社区的项目具有不同的属性时,取属性并集;同时保存不同项目之间的依赖关系;
步骤5、对获取的开源属性建立倒排索引,其中的每一项都包括一个属性值和具有该属性值的各记录的地址,由属性值来确定记录的位置,而非由记录来确定属性值。
步骤6、响应于用户搜索输入或预定义的排名机制,对需要展现的开源项目进行排序并显示。
2.如权利要求1所述的方法,其中所述开源属性包括项目编程语言、证书、运行环境、开发状态、注册时间、最新发布时间、下载次数、主页链接等。
3.如权利要求1所述的方法,其中步骤2进一步包括:
爬取开源项目列表页,根据社区的项目主页URL模板进行匹配,抽取项目主页URL存放到数据库,对不断变化的社区开源项目主页构成情况进行快照;爬取开源项目主页,从数据库中取出项目主页URL进行定向爬取,将爬取到的完整HTML页面文本保存到数据库。
4.如权利要求1所述的方法,其中所述步骤3进一步包括:
步骤31、模板探测,发现每个开源社区用于显示开源属性的网页模板,可以是HTML树中的标签路径,也可以是HTML文本中的正则表达式,作为抽取开源属性的规则。
步骤32、通过已获取的模板定位到开源属性值的HTML标签以进行标签定位。
5.如权利要求4所述的方法,其中所述正则表达式通过人工观察确定。
6.如权利要求4所述的方法,其中所述标签路径通过种子集合确定,。获取开源属性的可列属性值,使用字符串相似度匹配算法,自动的在网页集合中发现开源属性值所在标签路径,当在某位置具有最高匹配次数时确定该位置从而筛选出唯一的网页模板。
7.如权利要求6所述的方法,其中所述字符串的相似度匹配通过两字符串对应q-gram集合的雅加达(Jaccard)系数作为两字符串匹配度数值,当该数值若高于预定义的某阈值则认为匹配。
8.如权利要求4所述的方法,其中所述标签定位通过正则表达式定位规则在目标网页中发现属性值标签节点;或者,所述标签定位根据html页面的文档对象模型树形结构,将每个标签位置表示为从页面根节点到属性值所在节点的标签路径,借助支持该路径的网页解析工具进行标签定位与获取。
9.如权利要求1所述的方法,其中所述步骤6进一步包括,如果接收到用户的搜索输入,则通过计算用户输入的关键字与倒排索引数据集合之间的字符串匹配确定的相关度进行排序;如果没有接收到用户搜索输入,则依据项目的开源参与程度和信息完备程度定义的项目排名机制,进行排序与展示。
10.如权利要求9所述的方法,其中所述项目的开源参与程度由一个项目所用于托管的社区数,其所关联的其他开源项目数来量化;所述信息完备程度由项目的开源属性个数来量化。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210097169.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:接收机、无线通信系统及接收方法
- 下一篇:电源板自动测试系统