CN111814041A - 一种npm包的推荐方法、装置、存储介质和计算机设备 - Google Patents
一种npm包的推荐方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN111814041A CN111814041A CN202010579732.6A CN202010579732A CN111814041A CN 111814041 A CN111814041 A CN 111814041A CN 202010579732 A CN202010579732 A CN 202010579732A CN 111814041 A CN111814041 A CN 111814041A
- Authority
- CN
- China
- Prior art keywords
- npm
- packet
- packets
- recommendation
- keyword
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000001419 dependent effect Effects 0.000 claims description 36
- 238000011161 development Methods 0.000 claims description 15
- 238000012163 sequencing technique Methods 0.000 claims description 15
- 230000009193 crawling Effects 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种NPM包的推荐方法、装置、存储介质和计算机设备,通过获取客户端发送的检索请求,检索请求包括至少一个检索词,获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包,从预先建立的推荐库中,查询出多个NPM包对应的推荐值,根据推荐值对多个NPM包进行排序,得到排序后的NPM包,将排序后的NPM包发送至客户端,以使得开发人员能够快速的检索到适合的NPM包,从而提高了检索效率,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
Description
【技术领域】
本发明涉及关键字匹配领域,尤其涉及一种NPM包的推荐方法、装置、存储介质和计算机设备。
【背景技术】
节点包管理器(Node Package Manager,简称NPM)是一个基于Node.js的包管理器。通过NPM,开发者可以容易分享和重用代码。由于NPM的开放性,使得NPM包的质量良莠不齐。目前大部分NPM包管理平台,提供了通过搜索关键词,检索对应NPM包的功能。但由于NPM包的基数庞大,同一关键词可能检索出的NPM包很多,从而导致检索出的NPM包质量差的问题。
【发明内容】
有鉴于此,本发明实施例提供了一种NPM包的推荐方法、装置、存储介质和计算机设备,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
一方面,本发明实施例提供了一种NPM包的推荐方法,所述方法包括:
获取客户端发送的检索请求,所述检索请求包括至少一个检索词;
获取与每个所述检索词匹配的关键词,并根据每个所述关键词查询出与每个所述关键词对应的NPM包;
从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值;
根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包;
将所述排序后的NPM包发送至所述客户端。
可选地,所述根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包,包括:
按照推荐值高到低的排序关系对多个所述NPM包进行排序,得到排序后的NPM包。
可选地,在所述获取与每个所述检索词匹配的关键词,并根据每个所述关键词查询出与每个所述关键词对应的NPM包之前,还包括:
通过定时批量任务采集多个NPM包;
解析多个所述NPM包,获取每个NPM包对应的关键词。
可选地,所述解析多个所述NPM包,获取每个NPM包对应的关键词,包括:
解析所述NPM包对应的配置文件,获取所述NPM对应的关键字段和描述字段;
根据所述关键字段和所述描述字段,生成所述NPM包对应的关键词。
可选地,在所述从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值之前,还包括:
获取每个所述NPM包的推荐值相关参数;
根据每个所述NPM包的推荐值相关参数,确定出每个所述NPM包对应的推荐值;
在预先建立的推荐库中存储或更新多个NPM包信息,所述NPM包信息包括获取的所述NPM包、所述NPM包对应的关键词以及所述NPM包对应的推荐值。
可选地,所述推荐值相关参数包括依赖包数、被依赖包数、收藏数、下载量、发布时间、源码收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目;
所述获取每个所述NPM包的推荐值相关参数,包括:
从定时批量任务中查询出每个所述NPM包对应的所依赖和被依赖的包列表;
根据所述所依赖和被依赖的包列表,确定出依赖包数、被依赖包数;
获取所述NPM包对应的配置文件的代码仓库地址,并通过爬取所述代码仓库地址,获取收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目;
通过爬取所述NPM包的后台数据,获取下载量、发布时间、源码收藏数。
可选地,所述根据每个所述NPM包的推荐值相关参数,确定出每个所述NPM包对应的推荐值,包括:
根据公式:推荐值=第一预设关联值*依赖包数+第二预设关联值*被依赖包数+第三预设关联值*收藏数+第四预设关联值*下载量+第五预设关联值*发布时间+第六预设关联值*源码收藏数+第七预设关联值*源码开发分支数+第八预设关联值*关注源码数+第九预设关联值*源码的代码推送合并数目,计算出每个所述NPM包对应的推荐值。
另一方面,本发明实施例提供了一种NPM包的推荐装置,所述装置包括:
获取模块,用于获取客户端发送的检索请求,所述检索请求包括至少一个检索词;获取与每个所述检索词匹配的关键词;
查询模块,用于根据每个所述关键词查询出与每个所述关键词对应的NPM包;从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值;
排序模块,用于根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包;
发送模块,用于将所述排序后的NPM包发送至所述客户端。
另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述NPM包的推荐方法。
另一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时上述NPM包的推荐方法的步骤。
本发明实施例提供的技术方案中,通过获取客户端发送的检索请求,检索请求包括至少一个检索词,获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包,从预先建立的推荐库中,查询出多个NPM包对应的推荐值,根据推荐值对多个NPM包进行排序,得到排序后的NPM包,将排序后的NPM包发送至客户端,以使得开发人员能够快速的检索到适合的NPM包,从而提高了检索效率,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一实施例提供的一种NPM包的推荐方法的流程图;
图2为本发明又一实施例提供的一种NPM包的推荐方法的流程图;
图3为本发明又一实施例提供的一种推荐值相关参数的示意图;
图4为本发明一实施例提供的一种NPM包的推荐装置的结构示意图;
图5为本发明实施例提供的一种计算机设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明一实施例提供的一种NPM包的推荐方法的流程图,如图1所示,该方法包括:
步骤101、获取客户端发送的检索请求,检索请求包括至少一个检索词。
步骤102、获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包。
步骤103、从预先建立的推荐库中,查询出多个NPM包对应的推荐值。
步骤104、根据推荐值对多个NPM包进行排序,得到排序后的NPM包。
步骤105、将排序后的NPM包发送至客户端。
本发明实施例提供的技术方案中,通过获取客户端发送的检索请求,检索请求包括至少一个检索词,获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包,从预先建立的推荐库中,查询出多个NPM包对应的推荐值,根据推荐值对多个NPM包进行排序,得到排序后的NPM包,将排序后的NPM包发送至客户端,以使得开发人员能够快速的检索到适合的NPM包,从而提高了检索效率,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
通过上述NPM包的推荐方法能够适用于大部分NPM包管理平台的检索,为提高NPM包的推荐方法的实用性,下列为本发明提供的另一种NPM包的推荐方法。
图2为本发明又一实施例提供的一种NPM包的推荐方法的流程图,如图2所示,该方法包括:
步骤201、通过定时批量任务采集多个NPM包。
本发明实施例中,各步骤由节点包管理器(NPM)执行。
本发明实施例中,NPM包可包括新增的NPM包和历史的NPM包。通过定时批量任务采集多个NPM包可包括两种采集流程,第一种采集流程是采集新增的NPM包,通过执行后续步骤,计算出新增的NPM包的推荐值并存储至预先建立的推荐库,本发明通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。第二种采集流程是采集历史的NPM包,通过执行后续步骤,在推荐库更新历史的NPM包的推荐值,从而能够进一步提高检索的质量。
需要说明的是,若为第二种采集流程时,可直接执行步骤204,避免了解析历史的NPM包从而造成资源时间浪费导致检索效率低的问题。
步骤202、解析多个NPM包,获取每个NPM包对应的关键词。
本发明实施例中,通过定时批量任务采集NPM包,保证了后续步骤计算NPM包对应的推荐值的准确性,以及便于后续步骤计算的新增的NPM包对应的推荐值。
本发明实施例中,步骤202可具体包括:
步骤2021、解析NPM包对应的配置文件,获取NPM对应的关键字段和描述字段。
步骤2022、根据关键字段和描述字段,生成NPM包对应的关键词。本发明实施例中,例如NPM包中包括“序列化”的关键字段,则将该关键字段“序列化”作为该NPM包对应的关键词。需要说明的是,一个NPM包可具有多个关键词。本发明对于NPM包对应的关键词的数量不做限定,可根据需求自行设定。
步骤203、获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包。
本发明实施例中,作为一种可选方案,关键词与检索词一致,从而能够提高检索的精确度,作为另一种可选方案,关键词为检索词的相近词或同义词,从而能够提高检索的效率,避免了输入的检索词过多,导致无法匹配对应的关键词,从而导致检索效率低的问题。
步骤204、获取每个NPM包的推荐值相关参数。
本发明实施例中,推荐值相关参数包括依赖包数、被依赖包数、收藏数、下载量、发布时间、源码收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目。
本发明实施例中,步骤204,具体包括:
步骤2041、从定时批量任务中查询出每个NPM包对应的所依赖和被依赖的包列表。
本发明实施例中,具体地,在定时批量任务中通过查询每个NPM包对应的包文件获取每个NPM包对应的所依赖和被依赖的包列表。
需要说明的是,通过执行在每个NPM包对应的包文件查询出每个NPM包对应的所依赖和被依赖的包列表的定时批量任务之后,系统会更新每个NPM包对应的所依赖和被依赖的包列表,也就是说,通过定时批量任务即可获取到依赖包数、被依赖包数,避免了在获取依赖包数、被依赖包数时,需要重复从每个NPM包对应的包文件获取每个NPM包对应的所依赖和被依赖的包列表,造成检索耗时增加的问题,从而通过上述步骤,提高了检索的效率。
步骤2042、根据所依赖和被依赖的包列表,确定出依赖包数、被依赖包数。
本发明实施例中,依赖包数(NPM dependencies)用于指示该NPM包所依赖的其他包的数量,被依赖包数(NPM dependes by others)用于指示该NPM包被其他包所依赖的数量。
步骤2043、获取NPM包对应的配置文件的代码仓库地址,并通过爬取代码仓库地址,获取收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目。
本发明实施例中,收藏数(NPM stars)用于指示该NPM包的收藏数,源码开发分支数(Github forks)用于指示该NPM包源代码的开发分支树的数量,关注源码数(Githubwatch)用于指示关注该NPM包源代码的数量,源码的代码推送合并数目(Github pullrequest)用于指示该NPM包源代码的代码推送合并数目。
步骤2044、通过爬取NPM包的后台数据,获取下载量、发布时间、源码收藏数。
本发明实施例中,下载量(NPM downloads)用于指示该NPM包的下载量,发布时间(NPM last publish)用于指示该NPM包最后一次发布到节点包管理平台的时间,源码收藏数(Github stars)用于指示该NPM包源代码的收藏数。
本发明实施例中,此外,后台数据还可以包括其他数据信息,对此不做限定。
在实际应用中,相关技术通常在检索时,只采用检索词匹配关键词的方式,即将匹配到的关键词对应的NPM包进行展示,而本发明实施例中,通过获取上述各维度的推荐值相关参数之后,从而能够执行后续步骤的计算每个NPM包对应的推荐值,并将符合条件的NPM包进行排序展示,通过设置NPM包对应的推荐值,相对于相关技术而言,提升了NPM包检索推荐的质量。
步骤205、根据每个NPM包的推荐值相关参数,确定出每个NPM包对应的推荐值。
本发明实施例中,步骤205,具体包括:根据公式:推荐值=第一预设关联值*依赖包数+第二预设关联值*被依赖包数+第三预设关联值*收藏数+第四预设关联值*下载量+第五预设关联值*发布时间+第六预设关联值*源码收藏数+第七预设关联值*源码开发分支数+第八预设关联值*关注源码数+第九预设关联值*源码的代码推送合并数目,计算出每个NPM包对应的推荐值。
在本发明实施例中,第一预设关联值、第二预设关联值、第三预设关联值、第四预设关联值、第五预设关联值、第六预设关联值、第七预设关联值、第八预设关联值以及第九预设关联值可根据采集一段时间的开发人员检索NPM包的行为分析得到的,可以根据需求进行动态调整。可通过人为训练的方式,或者机器训练的方式对设置的预设关联值进行动态调整。其中,第一预设关联值、第二预设关联值、第三预设关联值、第四预设关联值、第五预设关联值、第六预设关联值、第七预设关联值、第八预设关联值以及第九预设关联值的取值范围为[0,1],例如第一预设关联值为0.5。
在一种具体的实现方式中,通过公式:hq=aO+bP+cQ+dR+eS+fX+gY+hZ+iM,计算出每个NPM包对应的推荐值,其中,hq表示为NPM包对应的推荐值,a表示为第一预设关联值,b表示为第二预设关联值,c表示为第三预设关联值,d表示为第四预设关联值,e表示为第五预设关联值,f表示为第六预设关联值,g表示为第七预设关联值,h表示为第八预设关联值,i表示为第九预设关联值,O表示为依赖包数,P表示为被依赖包数,Q表示为收藏数,R表示为下载量,S表示为发布时间,X表示为源码收藏数,Y表示为源码开发分支数,Z表示为关注源码数,M表示为源码的代码推送合并数目。
例如,如图3所示,通过采集一段时间的开发人员检索NPM包的行为分析得到:依赖包数O对应的第一预设关联值a的关联程度是最低,而被依赖包数P对应的第二预设关联值b的关联程度大于第一预设关联值a,下载量R对应的第四预设关联值最高,因此根据获取的各个推荐值相关参数对应的预设关联值的关联程度,能够计算出该NPM包对应的推荐值。
本发明实施例中,通过获取上述各维度的推荐值相关参数之后,从而能够计算每个NPM包对应的推荐值,并将符合条件的NPM进行排序展示,通过设置NPM包对应的推荐值,相对于相关技术而言,提升了NPM包检索推荐的质量。
步骤206、在预先建立的推荐库中存储或更新多个NPM信息,NPM信息包括获取的NPM包、NPM包对应的关键词以及NPM包对应的推荐值。
需要说明的是,若该NPM包为新增的NPM包时,由于预先建立的推荐库未存储有新增的NPM包对应的NPM信息,因此需要在预先建立的推荐库中存储该新增的NPM包对应的NPM信息。若该NPM包为历史的NPM包时,由于预先建立的推荐库已存储有该历史的NPM包对应的NPM信息,由于考虑到下载量,收藏量等推荐值相关参数为实时更新的状态,因此需要定时计算历史的NPM对应的推荐值,因此需要在预先建立的推荐库中更新该新增的NPM包对应的NPM信息,具体地,更新该新增的NPM包对应的推荐值。
本发明实施例中,通过执行步骤206之后,使得接收到客户端的检索请求时,能够根据推荐库,快速查询出符合开发人员要求的且推荐值高的NPM包,避免了当客户端发送检索请求时,再进行计算NPM包对应的推荐值,增加时间成本,设备负担的问题,从而节省了计算时间,提高了检索效率。
步骤207、获取客户端发送的检索请求,检索请求包括至少一个检索词。
本发明实施例中,在一种实现方式中,开发人员可通过在节点包管理平台的搜索框中输入检索词,该检索词可为一个或多个。
步骤208、从预先建立的推荐库中,查询出多个NPM包对应的推荐值。
步骤209、根据推荐值对多个NPM包进行排序,得到排序后的NPM包。
本发明实施例中,在一种可选方案中,步骤209可具体包括:按照推荐值高到低的排序关系对多个NPM包进行排序,得到排序后的NPM包。
步骤210、将排序后的NPM包发送至客户端。
本发明实施例中,通过选排序后的NPM包发送至客户端,以便开发人员能够快速查看适合的NPM包,从而能够提升NPM包检索推荐的质量。
本发明实施例中,在另一种可选方案中,步骤209之后还可以包括:
步骤210’、排序后的NPM包列表中选取出推荐值最高的前N个NPM包。
步骤211’、将推荐值最高的前N个NPM包发送至客户端。
本发明实施例中,N的取值可根据需求进行设定,可由系统默认设置或者是开发人员设置。本发明实施例中,通过选取出推荐值最高的前N个NPM包发送至客户端,能够给开发人员推荐最匹配的NPM包,同时确保该NPM包在同等符合检索条件的情况下,将质量最优、维护最稳定的NPM包,返回给开发人员,使开发人员能够以最低的成本检索到最合适应用到业务项目的NPM包,进一步提升NPM包检索推荐的质量。
本发明实施例中,在步骤211’之后,还包括:
步骤212、向客户端发送评估消息,以使客户端对推荐值最高的前N个NPM包进行评估,生成评估结果。
本发明实施例中,例如,N=3。在一种实现方式中,将推荐值最高的前3个NPM包发送至客户端后,开发人员进行了更换下一批NPM包的操作,从而根据该开发人员的操作,生成这3个NPM包的评估结果,例如,评估结果为不符合开发人员需求。
步骤213、根据评估结果,调整推荐值最高的前N个NPM包中每个NPM包对应的推荐值中的多个预设关联值,并继续执行步骤205。
本发明实施例中,以上述实现方式为例,根据该评估结果,降低推荐值最高的前3个NPM包对应的预设关联值,使得这3个NPM包对应的推荐值降低,从而能够提高NPM包的检索质量。反之,若评估结果为符合开发人员需求,则提高推荐值最高的前3个NPM包对应的预设关联值,使得这3个NPM包对应的推荐值提高,进一步能够提高NPM包的检索质量。
本发明实施例中,作为一种可选方案,评估消息可包括评估列表。除此之外还可以评估消息的具体表现形式还可以包括其他形式,本发明对此不做限定,目的只在于对推荐值最高的前N个NPM包进行评估。
本发明实施例中,通过向客户端发送评估消息,并根据客户端反馈的评估结果,对第一预设关联值、第二预设关联值、第三预设关联值、第四预设关联值、第五预设关联值、第六预设关联值、第七预设关联值、第八预设关联值以及第九预设关联值进行动态调整,即通过后期不断微调预设关联值,从而能够提升关联程度参数的准确性,进一步提升NPM包检索推荐的质量,进一步提高了NPM包检索推荐的质量。
本发明实施例中,通过获取客户端发送的检索请求,检索请求包括至少一个检索词,获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包,从预先建立的推荐库中,查询出多个NPM包对应的推荐值,根据推荐值对多个NPM包进行排序,得到排序后的NPM包,将排序后的NPM包发送至客户端,以使得开发人员能够快速的检索到适合的NPM包,从而提高了检索效率,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
图4为本发明一实施例提供的一种NPM包的推荐装置的结构示意图,如图4所示,装置应用于计算机设备。该装置包括:第一获取模块11、查询模块12、排序模块13和发送模块14。
第一获取模块11用于获取客户端发送的检索请求,所述检索请求包括至少一个检索词。
所述第一获取模块11还用于获取与每个所述检索词匹配的关键词。
查询模块12用于根据每个所述关键词查询出与每个所述关键词对应的NPM包。
所述查询模块12还用于从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值。
排序模块13用于根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包。
发送模块14用于将所述排序后的NPM包发送至所述客户端。
本发明实施例中,该装置的排序模块13具体用于按照推荐值高到低的排序关系对所述多个NPM包进行排序,得到排序后的NPM包。
本发明实施例中,该装置还包括:采集模块15和解析模块16。
采集模块15用于通过定时批量任务采集多个NPM包。
解析模块16用于解析多个所述NPM包,获取每个NPM包对应的关键词。
本发明实施例中,该装置的解析模块16具体用于解析所述NPM包对应的配置文件,获取所述NPM对应的关键字段和描述字段;根据所述关键字段和所述描述字段,生成所述NPM包对应的关键词。
本发明实施例中,所述推荐值相关参数包括依赖包数、被依赖包数、收藏数、下载量、发布时间、源码收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目;该装置还包括:第二获取模块17、确定模块18和存储/更新模块19。
第二获取模块17用于获取每个所述NPM包的推荐值相关参数。
确定模块18用于根据每个所述NPM包的推荐值相关参数,确定出每个所述NPM包对应的推荐值。
存储/更新模块19用于在预先建立的推荐库中存储或更新多个NPM包信息,所述NPM包信息包括获取的所述NPM包、所述NPM包对应的关键词以及所述NPM包对应的推荐值。
本发明实施例中,该装置的第一获取模块11具体包括:查询子模块111、确定子模块112、获取子模块113和爬取子模块114。
查询子模块111用于从定时批量任务中查询出每个所述NPM包对应的所依赖和被依赖的包列表。
确定子模块112用于根据所述所依赖和被依赖的包列表,确定出依赖包数、被依赖包数。
获取子模块113用于获取所述NPM包对应的配置文件的代码仓库地址。
爬取子模块114用于并通过爬取所述代码仓库地址,获取收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目。
爬取子模块114还用于通过爬取所述NPM包的后台数据,获取下载量、发布时间、源码收藏数。
本发明实施例中,该装置的确定模块18具体用于根据公式:推荐值=第一预设关联值*依赖包数+第二预设关联值*被依赖包数+第三预设关联值*收藏数+第四预设关联值*下载量+第五预设关联值*发布时间+第六预设关联值*源码收藏数+第七预设关联值*源码开发分支数+第八预设关联值*关注源码数+第九预设关联值*源码的代码推送合并数目,计算出每个所述NPM包对应的推荐值。
本实施例提供的NPM包的推荐装置可用于实现上述图1或图2中的NPM包的推荐方法,具体描述可参见上述NPM包的推荐方法的实施例,此处不再重复描述。
本发明实施例提供的NPM包的推荐装置的技术方案中,通过获取客户端发送的检索请求,检索请求包括至少一个检索词,获取与每个检索词匹配的关键词,并根据每个关键词查询出与每个关键词对应的NPM包,从预先建立的推荐库中,查询出多个NPM包对应的推荐值,根据推荐值对多个NPM包进行排序,得到排序后的NPM包,将排序后的NPM包发送至客户端,以使得开发人员能够快速的检索到适合的NPM包,从而提高了检索效率,通过设置NPM包对应的推荐值,从而提升NPM包检索推荐的质量。
本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述NPM包的推荐方法的实施例的各步骤,具体描述可按照上述NPM包的推荐方法的实施例。
本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述NPM包的推荐方法的实施例的各步骤,具体描述可按照上述NPM包的推荐方法的实施例。
图5为本发明实施例提供的一种计算机设备的示意图。如图5所示,该实施例的计算机设备30包括:处理器31、存储器32以及存储在存储32中并可在处理器31上运行的计算机程序33,该计算机程序33被处理器31执行时实现实施例中的应用于NPM包的推荐方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器31执行时实现实施例中应用于NPM包的推荐装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备30包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图5仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器32可以是计算机设备30的内部存储单元,例如计算机设备30的硬盘或内存。存储器32也可以是计算机设备30的外部存储设备,例如计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器32还可以既包括计算机设备30的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种NPM包的推荐方法,其特征在于,所述方法包括:
获取客户端发送的检索请求,所述检索请求包括至少一个检索词;
获取与每个所述检索词匹配的关键词,并根据每个所述关键词查询出与每个所述关键词对应的NPM包;
从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值;
根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包;
将所述排序后的NPM包发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包,包括:
按照推荐值从高到低的排序关系对多个所述NPM包进行排序,得到排序后的NPM包。
3.根据权利要求1所述的方法,其特征在于,在所述获取与每个所述检索词匹配的关键词,并根据每个所述关键词查询出与每个所述关键词对应的NPM包之前,还包括:
通过定时批量任务采集多个NPM包;
解析多个所述NPM包,获取每个NPM包对应的关键词。
4.根据权利要求3所述的方法,其特征在于,所述解析多个所述NPM包,获取每个NPM包对应的关键词,包括:
解析所述NPM包对应的配置文件,获取所述NPM对应的关键字段和描述字段;
根据所述关键字段和所述描述字段,生成所述NPM包对应的关键词。
5.根据权利要求4所述的方法,其特征在于,在所述从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值之前,还包括:
获取每个所述NPM包的推荐值相关参数;
根据每个所述NPM包的推荐值相关参数,确定出每个所述NPM包对应的推荐值;
在预先建立的推荐库中存储或更新多个NPM包信息,所述NPM包信息包括获取的所述NPM包、所述NPM包对应的关键词以及所述NPM包对应的推荐值。
6.根据权利要求5所述的方法,其特征在于,所述推荐值相关参数包括依赖包数、被依赖包数、收藏数、下载量、发布时间、源码收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目;
所述获取每个所述NPM包的推荐值相关参数,包括:
从定时批量任务中查询出每个所述NPM包对应的所依赖和被依赖的包列表;
根据所述所依赖和被依赖的包列表,确定出依赖包数、被依赖包数;
获取所述NPM包对应的配置文件的代码仓库地址,并通过爬取所述代码仓库地址,获取收藏数、源码开发分支数、关注源码数以及源码的代码推送合并数目;
通过爬取所述NPM包的后台数据,获取下载量、发布时间、源码收藏数。
7.根据权利要求6所述的方法,其特征在于,
所述根据每个所述NPM包的推荐值相关参数,确定出每个所述NPM包对应的推荐值,包括:
根据公式:推荐值=第一预设关联值*依赖包数+第二预设关联值*被依赖包数+第三预设关联值*收藏数+第四预设关联值*下载量+第五预设关联值*发布时间+第六预设关联值*源码收藏数+第七预设关联值*源码开发分支数+第八预设关联值*关注源码数+第九预设关联值*源码的代码推送合并数目,计算出每个所述NPM包对应的推荐值。
8.一种NPM包的推荐装置,其特征在于,所述装置包括:
获取模块,用于获取客户端发送的检索请求,所述检索请求包括至少一个检索词;获取与每个所述检索词匹配的关键词;
查询模块,用于根据每个所述关键词查询出与每个所述关键词对应的NPM包;从预先建立的推荐库中,查询出多个所述NPM包对应的推荐值;
排序模块,用于根据推荐值对多个所述NPM包进行排序,得到排序后的NPM包;
发送模块,用于将所述排序后的NPM包发送至所述客户端。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的NPM包的推荐方法。
10.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求1至7任意一项所述的NPM包的推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579732.6A CN111814041A (zh) | 2020-06-23 | 2020-06-23 | 一种npm包的推荐方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579732.6A CN111814041A (zh) | 2020-06-23 | 2020-06-23 | 一种npm包的推荐方法、装置、存储介质和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111814041A true CN111814041A (zh) | 2020-10-23 |
Family
ID=72845552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010579732.6A Pending CN111814041A (zh) | 2020-06-23 | 2020-06-23 | 一种npm包的推荐方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111814041A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416338A (zh) * | 2020-11-26 | 2021-02-26 | 上海睿成软件有限公司 | 一种基于标签的代码仓库系统 |
CN113050937A (zh) * | 2021-04-21 | 2021-06-29 | 中国工商银行股份有限公司 | 基于命令行的前端数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955779A (zh) * | 2011-08-18 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 软件搜索的方法和装置 |
CN108108380A (zh) * | 2016-11-25 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 搜索排序方法、搜索排序装置、搜索方法和搜索装置 |
CN110869910A (zh) * | 2017-08-31 | 2020-03-06 | 深圳市欢太科技有限公司 | 搜索资源推荐方法及相关产品 |
-
2020
- 2020-06-23 CN CN202010579732.6A patent/CN111814041A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955779A (zh) * | 2011-08-18 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 软件搜索的方法和装置 |
CN108108380A (zh) * | 2016-11-25 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 搜索排序方法、搜索排序装置、搜索方法和搜索装置 |
CN110869910A (zh) * | 2017-08-31 | 2020-03-06 | 深圳市欢太科技有限公司 | 搜索资源推荐方法及相关产品 |
Non-Patent Citations (1)
Title |
---|
腾讯云开发者社区成员: "npm-入门-查找和选择包", pages 1, Retrieved from the Internet <URL:https://cloud.tencent.cn/developer/section/1490232> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416338A (zh) * | 2020-11-26 | 2021-02-26 | 上海睿成软件有限公司 | 一种基于标签的代码仓库系统 |
CN113050937A (zh) * | 2021-04-21 | 2021-06-29 | 中国工商银行股份有限公司 | 基于命令行的前端数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968582B (zh) | 一种人群生成方法及装置 | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN104838377B (zh) | 利用映射缩减集成事件处理 | |
US7657515B1 (en) | High efficiency document search | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
JP5730386B2 (ja) | 計算機システム及び並列分散処理方法 | |
CN114911830B (zh) | 基于时序数据库的索引缓存方法、装置、设备及存储介质 | |
CN111814041A (zh) | 一种npm包的推荐方法、装置、存储介质和计算机设备 | |
CN112732663A (zh) | 一种日志信息处理方法及装置 | |
EP2836921A2 (en) | A system and a method for reasoning and running continuous queries over data streams | |
CN117407505A (zh) | 一种融合文档知识和问答对数据的问答检索方法及系统 | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
US11978067B2 (en) | Determining patterns within a string sequence of user actions | |
CN106940710B (zh) | 信息推送方法及装置 | |
CN113688602A (zh) | 一种任务处理方法以及装置 | |
CN111191103B (zh) | 从互联网中识别分析企业主体信息方法、装置及存储介质 | |
CN112887113A (zh) | 处理数据的方法、装置及系统 | |
CN106844415A (zh) | 一种SparkSQL系统中的数据处理方法和装置 | |
CN108345600B (zh) | 一种搜索应用的管理、数据搜索方法及其装置 | |
CN112363819B (zh) | 大数据任务动态编排调度方法、装置及计算设备 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
CN115858759B (zh) | 一种基于医学知识图谱的智能查询算法及管理系统 | |
CN114089962A (zh) | 一种构件管理方法、设备及介质 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 |
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 |