一种应用程序接口API推荐方法及装置与流程

文档序号:29789579发布日期:2022-04-23 17:06阅读:136来源:国知局
一种应用程序接口API推荐方法及装置与流程
一种应用程序接口api推荐方法及装置
技术领域
1.本技术涉及计算机技术领域,尤其涉及一种应用程序接口api推荐方法及装置。


背景技术:

2.随着信息技术的快速发展,互联网上的各类应用程序接口(application program interface,api)越来越多,虽然丰富的api为用户提供了便利,但是,大量的api也带了用户在需要调用api时,应当如何选择的难题。
3.为了解决选择api的难题,现有技术中,可以通过对api进行分类,进而基于不同api类别,帮助用户缩小选择范围,进而选择所需的api,但是,随着api发布数目越来越庞大。种类越来越多,每一个api类别中可能包含有非常多个api,因此,用户在选择api时,也变得越加困难,因此,如何能够实现api的精准推荐,成为了一个亟待解决的问题。


技术实现要素:

4.本技术实施例提供一种应用程序接口api推荐方法及装置,以实现对api的精准推荐。
5.本技术实施例提供的具体技术方案如下:
6.一种应用程序接口api推荐方法,包括:
7.根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,其中,每一个api对应一个流行度分值;
8.确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分;
9.分别针对所述各api,计算所述检索信息的特征与任意一个api的特征之间的特征相似度,并根据所述任意一个api的评分、特征相似度、流行度分值和对应的权重,确定所述任意一个api的推荐分值;
10.根据所述各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向所述用户展示所述api推荐列表。
11.可选的,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合之前,进一步包括:
12.分别针对预设的历史数据库中的各用户,从所述历史数据库中获取任意一个用户的历史记录信息,并对所述历史记录信息中的历史检索信息进行分词处理,获得历史检索词标签,并根据所述历史记录信息中的历史调用api,确定历史api标签,其中,所述历史记录信息中至少包括历史检索信息和历史调用api;
13.分别针对所述各用户,将所述历史检索词标签和所述历史api标签,分别与所述api数据库中的各api对应的标签进行匹配,从api数据库的各api中,确定出预设数个匹配值最高的api,获取所述预设数个匹配值最高的api对应的流行度分值,将大于预设流行度分值阈值的api,作为所述任意一个用户的偏好的热门api,并生成包含有各偏好的热门api
的热门兴趣api集合。
14.可选的,获取所述预设数个匹配值最高的api对应的流行度分值,具体包括:
15.分别获取所述预设数个匹配值最高的api的属性信息,其中,所述属性信息中至少包括上个时间周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、api发布时间;
16.分别针对所述预设数个匹配值最高的api,根据任意一个api的所述上个周期的历史调用次数值和历史浏览次数值、所述各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、预设的冷却系数和所述api发布时间,确定所述任意一个api的流行度分值。
17.可选的,确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分之前,进一步包括:
18.根据所述各用户的历史api集合,对所述各用户进行谱聚类处理,获得各类用户,其中,所述历史api集合中包括用户历史调用的api;
19.分别针对所述各类用户,从所述历史数据库中获取任意一类用户中各用户的偏好api集合,并根据所述偏好api集合中包含的各api对应的评分,生成评分矩阵;
20.分别针对各评分矩阵,基于已训练的评分预测模型,以所述任意一个评分矩阵为输入参数,确定所述各类用户对于所述各api的评分。
21.可选的,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,具体包括:
22.根据所述用户的用户标识,从历史数据库中获取所述用户的热门兴趣api集合;
23.根据所述用户输入的检索信息,从所述api数据库中获取候选api集合;
24.将所述热门兴趣api集合和所述候选api集合进行合并,生成api集合。
25.可选的,根据所述用户输入的检索信息,从所述api数据库中获取候选api集合,具体包括:
26.获取用户输入的检索信息,对所述检索信息进行分词处理,获得检索词集合,并对所述检索信息进行分字处理,获得检索字集合;
27.根据所述检索词集合中的各检索词,从预设的api数据库中获取包含至少一个检索词的api;
28.若确定获取到包含有至少一个检索词的api,则根据包含检索词数量最多的预设数个api,生成候选api集合;
29.若确定未获取到包含有至少一个检索词的api,则根据所述检索字集合中的各检索字,从所述api数据库中获取包含至少一个检索字的api,并根据包含检索字数量最多的预设api,生成候选api集合。
30.可选的,若确定获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度,具体包括:
31.分别对所述各检索词进行特征提取,确定所述各检索词的特征向量,并确定各特征向量的检索向量平均值;
32.获取所述任意一个api的各标签词,并获取所述任意一个api的标签向量评平均值;
33.根据所述各检索词、所述各标签词、预设的第一权重系数、所述检索向量平均值和所述标签向量平均值,确定所述检索信息与所述任意一个api之间的特征相似度。
34.可选的,若确定未获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度,具体包括:
35.获取所述任意一个api的各标签字;
36.根据所述各检索字、所述各标签字和预设的第二权重系数,确定所述检索信息与所述任意一个api之间的特征相似度。
37.一种应用程序接口api推荐装置,包括:
38.第一获取模块,用于根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,其中,每一个api对应一个流行度分值;
39.查找模块,用于确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分;
40.第一处理模块,用于分别针对所述各api,计算所述检索信息的特征与任意一个api的特征之间的特征相似度,并根据所述任意一个api的评分、特征相似度、流行度分值和对应的权重,确定所述任意一个api的推荐分值;
41.第二处理模块,用于根据所述各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向所述用户展示所述api推荐列表。
42.可选的,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合之前,进一步包括:
43.第三处理模块,用于分别针对预设的历史数据库中的各用户,从所述历史数据库中获取任意一个用户的历史记录信息,并对所述历史记录信息中的历史检索信息进行分词处理,获得历史检索词标签,并根据所述历史记录信息中的历史调用api,确定历史api标签,其中,所述历史记录信息中至少包括历史检索信息和历史调用api;
44.匹配模块,用于分别针对所述各用户,将所述历史检索词标签和所述历史api标签,分别与所述api数据库中的各api对应的标签进行匹配,从api数据库的各api中,确定出预设数个匹配值最高的api,获取所述预设数个匹配值最高的api对应的流行度分值,将大于预设流行度分值阈值的api,作为所述任意一个用户的偏好的热门api,并生成包含有各偏好的热门api的热门兴趣api集合。
45.可选的,获取所述预设数个匹配值最高的api对应的流行度分值时,匹配模块具体用于:
46.分别获取所述预设数个匹配值最高的api的属性信息,其中,所述属性信息中至少包括上个时间周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、api发布时间;
47.分别针对所述预设数个匹配值最高的api,根据任意一个api的所述上个周期的历史调用次数值和历史浏览次数值、所述各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、预设的冷却系数和所述api发布时间,确定所述任意一个api的流行度分值。
48.可选的,确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分之前,进一步包括:
49.获得模块,用于根据所述各用户的历史api集合,对所述各用户进行谱聚类处理,获得各类用户,其中,所述历史api集合中包括用户历史调用的api;
50.第二获取模块,用于分别针对所述各类用户,从所述历史数据库中获取任意一类用户中各用户的偏好api集合,并根据所述偏好api集合中包含的各api对应的评分,生成评分矩阵;
51.确定模块,用于分别针对各评分矩阵,基于已训练的评分预测模型,以所述任意一个评分矩阵为输入参数,确定所述各类用户对于所述各api的评分。
52.可选的,第一获取模块具体用于:
53.根据所述用户的用户标识,从历史数据库中获取所述用户的热门兴趣api集合;
54.根据所述用户输入的检索信息,从所述api数据库中获取候选api集合;
55.将所述热门兴趣api集合和所述候选api集合进行合并,生成api集合。
56.可选的,根据所述用户输入的检索信息,从所述api数据库中获取候选api集合时,第一获取模块具体用于:
57.获取用户输入的检索信息,对所述检索信息进行分词处理,获得检索词集合,并对所述检索信息进行分字处理,获得检索字集合;
58.根据所述检索词集合中的各检索词,从预设的api数据库中获取包含至少一个检索词的api;
59.若确定获取到包含有至少一个检索词的api,则根据包含检索词数量最多的预设数个api,生成候选api集合;
60.若确定未获取到包含有至少一个检索词的api,则根据所述检索字集合中的各检索字,从所述api数据库中获取包含至少一个检索字的api,并根据包含检索字数量最多的预设api,生成候选api集合。
61.可选的,若确定获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度时,第一处理模块具体用于:
62.分别对所述各检索词进行特征提取,确定所述各检索词的特征向量,并确定各特征向量的检索向量平均值;
63.获取所述任意一个api的各标签词,并获取所述任意一个api的标签向量评平均值;
64.根据所述各检索词、所述各标签词、预设的第一权重系数、所述检索向量平均值和所述标签向量平均值,确定所述检索信息与所述任意一个api之间的特征相似度。
65.可选的,若确定未获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度时,第一处理模块具体用于:
66.获取所述任意一个api的各标签字;
67.根据所述各检索字、所述各标签字和预设的第二权重系数,确定所述检索信息与所述任意一个api之间的特征相似度。
68.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述api推荐方法的步骤。
69.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述api推荐方法的步骤。
70.本技术实施例中,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,确定用户的用户标识,并根据用户标识查找到用户对于各api的评分,分别针对各api,计算检索信息的特征与任意一个api的特征之间的特征相似度,并根据任意一个api的评分、特征相似度、流行度分值和对应的权重,确定任意一个api的推荐分值,这样,就能够确定各api的推荐分值,进而根据各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向用户展示api推荐列表,这样,获取用户的历史数据,并基于api的评分、api的流行度分值以及特征相似度等多维度信息,来计算api的推荐分值,能够实现精准化api推荐,并且,基于用户的历史数据来计算api的推荐分值,能够实现深度挖掘用户需求,并根据用户需求来推荐api,进一步保证了api推荐的准确性。
附图说明
71.图1为本技术实施例中一种api推荐方法的流程图;
72.图2为本技术实施例中api推荐的技术路线图;
73.图3为本技术实施例中api推荐装置的结构示意图;
74.图4为本技术实施例中电子设备的结构示意图。
具体实施方式
75.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
76.随着信息技术的快速发展,互联网上的各类应用程序接口(application program interface,api)越来越多,虽然丰富的api为用户提供了便利,但是,大量的api也带了用户在需要调用api时,应当如何选择的难题。
77.为了解决选择api的难题,现有技术中,可以通过对api进行分类,例如语音技术、文字识别、人脸识别、自然语言处理等类别,在这些分类的基础上,还可以继续细分,以帮助用户缩小选择范围,进而精确选择所需api,当api类别进一步增多时,还可以为api添加搜索框,发布者在发布某项api时,会为其标注一些服务说明,通过直接搜索来查找api可以为每个用户提供无差别的服务。
78.在用户明确自己所需api描述且相似api数目较少时,查找api分类和直接搜索的方式可以为用户筛选出相关的api以供进一步选择,但是,随着api发布数目越来越庞大。种类越来越多,每一个api类别中可能包含有非常多个api,因此,用户在选择api时,也变得越加困难,并且,检索的api是由网络中的发布者提供,有时用户对这些api的需求描述较为模糊,因此,如何能够实现api的精准推荐,成为了一个亟待解决的问题。
79.本技术实施例中,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,确定用户的用户标识,并根据用户标识查找到用户对于各api的评分,分别针对各api,计算检索信息的特征与任意一个api的特征之间的特征相似度,并根据任意一个api的评分、特征相似度、流行度分值和对应的权重,确定任意一个api的推荐分值,这样,就能够确定各api的推荐分值,进而根据各api对应的推荐分值,生成包含有满足
预设推荐分值条件的api的api推荐列表,并向用户展示api推荐列表,这样,从用户的历史数据、对于api和评分,以及特征相似度来计算每一个api的推荐分值这三个角度综合评价api,能够实现对api的精准推荐,并且,基于用户的历史数据为用户推荐api,能够实现深度挖掘用户需求,保证api推荐的准确性。
80.基于上述实施例,参阅图1所示,为本技术实施例中一种api推荐方法的流程图,具体包括:
81.步骤100:根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合。
82.其中,每一个api对应一个流行度分值。
83.本技术实施例中,实时获取用户输入的检索信息,并根据用户输入的检索信息在预设的api数据库中查找与检索信息相关的api,并将查找到的api生成api集合,因此,根据用户输入的检索信息能够从api数据库中获取到包含有候选的各api的api集合,并且,在获取到包含有候选的各api的api集合时,同时获取到各api对应的流行度分值,每一个api对应一个流行度分值。
84.具体地,执行步骤100时,具体包括:
85.s1:根据用户的用户标识,从历史数据库中获取用户的热门兴趣api集合。
86.本技术实施例中,在获取到用户输入的检索信息时,同时还可以获取到用户的用户标识,进而能够根据用户的用户标识,从历史数据库中获取到与用户标识对应的热门兴趣api集合。
87.其中,获取到用户的用户标识的方式例如可以为,当用户在检索所需的api之前,需要先执行登陆操作,才能够进行检索,因此,在用户执行登陆操作时,就能够获取到用户的用户标识,本技术实施例中对获取到用户的用户标识的方式并不进行限制。
88.下面对本技术实施例中生成热门兴趣api集合的步骤进行详细阐述,具体包括:
89.a1:分别针对预设的历史数据库中的各用户,从历史数据库中获取任意一个用户的历史记录信息,并对历史记录信息中的历史检索信息进行分词处理,获得历史检索词标签,并根据历史记录信息中的历史调用api,确定历史api标签。
90.其中,历史记录信息中至少包括历史检索信息和历史调用api。
91.本技术实施例中,分别针对各预设的历史数据库中的各用户,均执行以下操作:
92.从历史数据库中获取任意一个用户的历史记录信息,历史记录信息中至少包含有历史检索信息、历史api调用信息和历史浏览记录信息,然后,删除掉历史检索信息和历史api调用信息中的重复数据。
93.由于历史检索信息和历史api调用的属性信息中包含有属性信息,属性信息中至少包含有数据状态信息,历史检索信息的数据状态信息表征历史检索信息是否为缺失、异常数据,历史api调用的数据状态信息表征api调用的历史检索信息是否为缺失、异常数据,然后,根据历史检索信息的数据状态信息,以及根据历史api调用信息的数据状态信息,删除数据状态信息为异常或缺失的历史检索信息,并删除数据状态信息为异常或缺失的历史api调用信息。
94.并且,由于历史检索信息主要为中英文字符串,因此,对历史检索信息进行分词处理,确定历史检索信息的各历史检索词,进而获得历史检索信息的各历史检索词标签,同
时,获取历史api调用信息中的各历史调用的api对应的历史api标签,并对这些标签进行分词处理,维护停用词表,去除停用词、标点符号和特殊符号。
95.这样,就能够获取到历史数据库中的每一个用户对应的历史检索词和历史api标签,历史检索词标签和历史api标签共同组成体现用户偏好的关键特征。
96.其中,历史检索信息为用户历史输入的检索信息,历史api调用信息为用户历史已经调用的api。
97.需要说明的是,历史数据库中的历史api标签为对每一个api预先打好的标签,api数据库中的每一项api均有中文或英文标签,同样需要进行分词处理、维护停用词表,提取标签特征作为该api的标签。
98.进一步地,从历史数据库中提取任意一个用户的历史记录信息时,还可以获取到操作时间,也就是说,获取到历史记录信息中的历史检索信息时,还会获取到检索的时间,在获取到历史api调用信息时,还会获取到调用api的时间,在获取到历史浏览记录信息时,还会获取到浏览api的时间。
99.a2:分别针对各用户,将历史检索词标签和历史api标签,分别与api数据库中的各api对应的标签进行匹配,从api数据库的各api中,确定出预设数个匹配值最高的api,获取预设数个匹配值最高的api对应的流行度分值,将大于预设流行度分值阈值的api,作为任意一个用户的偏好的热门api,并生成包含有各偏好的热门api的热门兴趣api集合。
100.本技术实施例中,分别针对历史数据库中的各用户,首先,根据任意一个用户历史检索信息的历史检索词标签和历史调用api的历史api标签,生成用户标签集合,用户标签集合中包括用户的历史检索词标签和历史api标签。
101.然后,将用户标签集合与api数据库中的各api对应的api标签集合进行匹配,到与用户标签集合有交集的api标签集合对应的api,并确定其二者之间的匹配值,从查找到的api中,确定出预设数个匹配值最高的api,并根据查找到的api生成用户兴趣api集合。
102.然后,获取用户兴趣api集合中的各api对应的流行度分值,分别针对每一个api,判断api对应的流行度分值是否大于预设流行度分值阈值,并将大于预设流行度分值阈值的api,作为任意一个用户的偏好的热门api,并将确定出的各偏好的热门api生成任意一个用户的热门兴趣api集合。
103.下面对本技术实施例中每一个api的流行度分值的获得步骤进行说明,具体包括:
104.n1:分别获取预设数个匹配值最高的api的属性信息。
105.其中,属性信息中至少包括上个时间周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、api发布时间。
106.本技术实施例中,在从api数据库的各api中,确定出预设数个匹配值最高的api的同时,获取到匹配获得的api的属性信息。
107.n2:分别针对预设数个匹配值最高的api,根据上个周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、预设的冷却系数和api发布时间,确定任意一个api的流行度分值。
108.本技术实施例中,分别针对各匹配获得的api,预先设置周期的时长,根据上个周期的历史调用次数值、上个周期的历史浏览次数值、历史调用次数值的最大值、历史浏览次数值的最大值、预设的冷却系数和api发布时间,计算获得任意一个api的流行度分值。
109.具体地,本技术实施例中的流行度分值可以表示为:
[0110][0111]
其中,a为api在上个时间周期内的历史调用次数值,b为api在上个时间周期内的历史浏览次数值,a
max
为历史记录中调用次数值的最大值,即在各个时间周期中历史调用次数值的最大值,b
max
为历史记录中浏览次数值的最大值,即,在各个时间周期中历史浏览次数值的最大值,k为预设的冷却系数,k为系数,表示冷却的速度,h表示api发布距今的时间。
[0112]
需要说明的是,本技术实施例中的历史调用次数值的最大值和历史浏览次数值的最大值在每轮计算中为定值,并且,为了防止短时间爆发的调用,浏览某一api而造成此api长时间流行度过高的情况,引入了自然冷却模型,也就是预设的冷却系数。
[0113]
s2:根据用户输入的检索信息,从api数据库中获取候选api集合。
[0114]
本技术实施例中,根据用户输入的检索信息,从api数据库中获取候选api集合。
[0115]
具体地,执行步骤s2时,具体包括:
[0116]
a1:获取用户输入的检索信息,对检索信息进行分词处理,获得检索词集合,并对检索信息进行分字处理,获得检索字集合。
[0117]
本技术实施例中,在获取到用户输入的检索信息之后,对检索信息进行分词处理,获得检索信息中包含的各检索词,并生成包含有各检索词的检索词集合,并且,对检索信息进行分字处理,获得检索信息中包含的各检索字,并生成包含有各检索字的检索字集合。
[0118]
a2:根据检索词集合中的各检索词,从预设的api数据库中获取包含至少一个检索词的api。
[0119]
本技术实施例中,根据检索词集合中的各检索词,在预设的api数据库中进行检索,判断api数据库中的各api对应的api标签中是否包含有至少一个检索词,若确定某一个api对应的api标签中包含有至少一个检索词,则获取该api。
[0120]
a3:若确定获取到包含有至少一个检索词的api,则根据包含检索词数量最多的预设数个api,生成候选api集合。
[0121]
本技术实施例中,判断是否能够获取到包含有至少一个检索词的api,若确定能够获取到包含有至少一个检索词的api,则确定根据检索信息中的检索词能够检索到某个或某些api,则将包含检索词数量最多的预设数个api,生成候选api集合。
[0122]
a4:若确定未获取到包含有至少一个检索词的api,则根据所述检索字集合中的各检索字,从所述api数据库中获取包含至少一个检索字的api,并根据包含检索字数量最多的预设api,生成候选api集合。
[0123]
本技术实施例中,判断是否能够获取到包含有至少一个检索词的api,若确定未能够获取到包含有至少一个检索词的api,也就是说,检索信息中的检索词与api对应的标签均不匹配,则此时根据检索字集合中的各检索字,判断是否能够获取到包含有至少一个检索字的api,若确定能够获取到包含有至少一个检索字的api,则将包含检索字数量最多的预设数个api,生成候选api集合。
[0124]
s3:将偏好api集合和候选api集合进行合并,生成api集合。
[0125]
本技术实施例中,在根据用户的用户标识获取到用户的偏好api集合,以及从api数据库中获取到候选api集合之后,将偏好api集合和候选api集合进行合并,生成api集合。
[0126]
进一步地,为了降低计算量,在对偏好api集合和候选api集合进行合并时,还可以将重复的api删除。
[0127]
步骤110:确定用户的用户标识,并根据用户标识查找到用户的历史数据。
[0128]
其中,历史数据中至少包括各api的评分。
[0129]
本技术实施例中,确定用户的用户标识,并根据用户标识查找与用户标识对应的该用户的历史数据,历史数据中至少包括各api的评分,因此,能够获取到用户对于api集合中所包含的各api的评分。
[0130]
具体地,从历史数据库中提取任意一个用户的历史记录信息时,具体包括:
[0131]
n1:根据各用户的历史api集合,对各用户进行谱聚类处理,获得各类用户。
[0132]
其中,历史api集合中包括用户历史调用的api。
[0133]
本技术实施例中,从历史数据库中获取到各用户的历史api集合,历史api集合中包含有各用户历史调用过的api,然后,基于谱聚类技术对各用户进行聚类,获得各类用户。
[0134]
具体地,在进行聚类时,对于无向图g(v,e),v即为图中的点,点代表用户,e为图中的边,两点之间有边代表两个用户调用过相同的api,边的权重值代表这两个用户调用的相同api的个数,两个用户没有调用过相同的api时两点之间没有边,即权重值为0。邻接矩阵w是由任意两点之间的权重值w_ij组成的矩阵,此矩阵为对称矩阵,用下面公式计算度矩阵d:
[0135][0136]
即,相似度矩阵w的每一行元素之和d为di组成的n*n对角矩阵。计算拉普拉斯矩阵l=d-w,计算l的特征值,将特征值从小到大排序,取前k个特征值,并计算前k个特征值的特征向量,将这k个列向量组成矩阵u={u1,u2,..,uk},u∈r
n*k
,令yi∈rk是u的第i行的向量,其中i=1,2,

,n,使用k-means算法将新样本点y={y1,y2,..,yn}聚类成簇c1,c2,..,ck,输出簇a1,a2,..,ak,其中,ai={j|yj∈ci},谱聚类对数据分布的适应性更强,聚类效果好,同时聚类的计算量较小,适合对用户进行分群。
[0137]
n2:分别针对各类用户,从历史数据库中获取任意一类用户中各用户的偏好api集合,并根据偏好api集合中包含的各api对应的评分,生成评分矩阵。
[0138]
本技术实施例中,分别针对各类用户,均执行下述操作:
[0139]
根据任意一类用户中各用户对应的用户标识,从历史数据库中获取与各用户标识对应的偏好api集合,每一个用户标识对应一个偏好api集合,每一个偏好api集合中包含有至少一个api,以及api对应的评分,因此,根据偏好api集合中的各api对应的评分,生成评分矩阵,评分矩阵的每一行为各个用户,每一列为各个用户对于api的评分。
[0140]
需要说明的是,若用户未调用过某一个api,则其对应的评分为0。
[0141]
具体地,在对用户进行分群之后,对每个群体中包含的各用户分别查找到对应的偏好api集合,进行基于矩阵分解的用户-api评分,挖掘用户偏好,用户对api的历史评价数据可以表示为用户-api评分矩阵,此矩阵是稀疏矩阵,用户调用某api服务加5分,浏览api加1分,其余为空,并用已有的部分稀疏数据来预测未知的用户对api的评分r,矩阵分解的损失函数如下:
[0142][0143]
其中,i
ij
为指示函数,当用户对服务有调用或浏览操作,即r
ij
不为空时,i
ij
=1,其它情况下为0,通过不断优化评分矩阵,可以预测用户对未知api的评分,得到用户对于每个api服务的评分r。
[0144]
n3:分别针对各评分矩阵,基于已训练的评分预测模型,以任意一个评分矩阵为输入参数,确定各类用户对于各api的评分。
[0145]
本技术实施例中,在获得各评分矩阵之后,分别针对各评分矩阵,将任意一个评分矩阵输入至已训练的评分预测模型中,确定任意一类的各用户对于各api的评分。
[0146]
需要说明的是,随着数据的实时更新,需要定期更新和维护评分预测模型和参数,挖掘用户兴趣和流行度的变化趋势,保证推荐的实时性,并且,在训练过程中利用gpu进行大量并行的重复计算,能够有效地提高评分预测模型训练速度。
[0147]
这样,采用谱聚类技术对用户进行分群,为不同群体的用户分别计算用户-api评分,模型更新更加灵活,并且,以类为基本单位对用户进行评分预测,能够降低海量数据的计算难度,用户分群后基于矩阵分解方法离线计算“用户-api”分值,能够提高api检索推荐速度和准确度。
[0148]
步骤120:分别针对各api,计算检索信息的特征与任意一个api的特征之间的特征相似度,并根据任意一个api的评分、特征相似度、流行度分值和对应的权重,确定任意一个api的推荐分值。
[0149]
本技术实施例中,在分别针对各api,计算任意一个api的推荐分值之前,首先需要先获得检索信息与任意一个api之前的相似度,下面首先对本技术实施例中计算检索信息与任意一个api之间的相似度的步骤进行详细阐述,具体可以根据检索信息分为以下两种方式。
[0150]
第一种方式,具体包括:
[0151]
s1:分别对各检索词进行特征提取,确定各检索词的特征向量,并确定各特征向量的检索向量平均值。
[0152]
本技术实施例中,基于已训练的特征提取模型,分别以各检索词为输入参数,对各检索词进行特征提取,确定各检索词的特征向量,然后,在获得各检索词的特征向量之后,对各检索词的特征向量做平均,获得各特征向量之间的检索向量平均值。
[0153]
s2:获取任意一个api的各标签词,并获取任意一个api的标签向量平均值。
[0154]
本技术实施例中,获取任意一个api的标签词,并基于已训练的特征提取模型,分别以各标签词为输入参数,对各标签词进行特征提取,确定各标签词的特征向量,然后,在获得各标签词的特征向量之后,对各标签词的特征向量做平均,获得各特征向量之间的标签向量平均值。
[0155]
例如,可以基于word2vec模型来进行特征提取,获得标签词对应的特征向量。
[0156]
s3:根据各检索词、各标签词、预设的第一权重系数、检索向量平均值和标签向量平均值,确定检索信息与任意一个api之间的特征相似度。
[0157]
本技术实施例中,根据各检索词,获得检索词集合,并根据各标签词,获得标签词
集合,然后,计算检索词集合与标签词集合之间的并集,并计算检索词集合与标签词集合之间的交集。
[0158]
在确定出并集和交集之后,根据并集、交集、预设的第一权重系数、检索向量平均值和标签向量平均值,确定检索信息与任意一个api之间的特征相似度,检索信息与任意一个api之间的特征相似度例如可以表示为:
[0159][0160]
其中,s1为检索词集合,a1为标签词集合,μ1为预设的第一权重系数,ws为检索向量平均值,wa为标签向量平均值。
[0161]
需要说明的是,表示检索词与全部api标签词集合的交集不为空,即检索词语可以匹配到某个或某些api,根据词匹配计算相似度,当未匹配到词语时,考虑到用户打字错误等因素,进行字匹配。
[0162]
第二种方式,具体包括:
[0163]
s1:获取任意一个api的各标签字。
[0164]
本技术实施例中,获取任意一个api的标签字。
[0165]
s2:根据各检索字、各标签字和预设的第二权重系数,确定检索信息与任意一个api之间的特征相似度。
[0166]
本技术实施例中,根据各检索字,获得检索字集合,并根据各标签字,获得标签字集合,然后,计算检索字集合与标签字集合之间的并集,并计算检索字集合与标签字集合之间的交集。
[0167]
在确定出并集和交集之后,根据并集、交集和预设的第二权重系数,确定检索信息与任意一个api之间的特征相似度,检索信息与任意一个api之间的特征相似度例如可以表示为:
[0168][0169]
其中,s2为检索字集合,a2为标签字集合,μ2为预设的第二权重系数。
[0170]
进而在确定出检索信息与任意一个api之间的特征相似度之后,根据特征相似度、预设的权重,以及流行度分值,确定任意一个api的推荐分值。
[0171]
api的推荐分值例如可以表示为:
[0172]
s=sim+λ1·
r+λ2·
pop
[0173]
其中,λ1和λ2为总评分赋予不同的权重,通过历史数据确定权重值。
[0174]
步骤130:根据各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向用户展示api推荐列表。
[0175]
本技术实施例中,在确定出各api对应的推荐分值之后,将满足预设推荐分值条件的api,生成api推荐列表,并向用户展示api推荐列表。
[0176]
本技术实施例中,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,确定用户的用户标识,并根据用户标识查找到用户对于各api的评
分,分别针对各api,计算检索信息的特征与任意一个api的特征之间的特征相似度,并根据任意一个api的评分、特征相似度、流行度分值和对应的权重,确定任意一个api的推荐分值,这样,就能够确定各api的推荐分值,进而根据各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向用户展示api推荐列表,这样,在根据检索信息从api数据库中检索获得api时,基于用户的历史数据、检索信息和api的流行度进而实现检索,这样,在保证推荐快速、准确的基础上,增加了推荐api的新颖性,在推荐过程中,以检索信息为主,保证搜索内容不偏离搜索的主题,在此基础上结合了用户的兴趣和流行度,从多个维度进行综合推荐,这样,能够实现api的精准推荐。
[0177]
基于上述实施例,参阅图2所示,为本技术实施例中api推荐的技术路线图,具体包括:
[0178]
1、用户历史数据。
[0179]
本技术实施例中,从历史数据库中获取各用户的历史记录信息,历史记录信息中至少包括历史检索信息和历史调用api,还包括历史api浏览记录信息。
[0180]
2、历史数据处理。
[0181]
本技术实施例中,删除重复的数据,并处理缺失、异常数据。
[0182]
并且,对历史检索信息进行分词处理,获得历史检索词标签,并根据历史记录信息中的历史调用api,确定历史api标签,历史检索词标签和历史api标签共同组成体现用户感兴趣的关键特征。
[0183]
3、计算api的流行度分值。
[0184]
本技术实施例中,根据api的上个周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、预设的冷却系数和api发布时间,确定个api的流行度分值。
[0185]
需要说明的是,本技术实施例中在计算api的流行度分值时,引入了冷却系数,这样,能够有效防止短时间爆发的调用、浏览某一api而造成此api长时间流行度过高的情况。
[0186]
4、离线召回api。
[0187]
本技术实施例中,根据历史检索词标签和历史api标签,在各api中进行匹配,离线选择用户感兴趣的api集合,保留出现匹配标签的api,并定期更新。
[0188]
并且,根据api对应的流行度分值,将大于预设流行度分值阈值的api作为热门api,并在用户感兴趣的api集合中选择热门api集合保存为热门兴趣api集合。
[0189]
5、检索信息。
[0190]
本技术实施例中,实施获取用户的检索信息。
[0191]
6、api标签。
[0192]
本技术实施例中,在预设的api数据库中存储有多个api,每一个api都对应至少一个api标签。
[0193]
7、特征。
[0194]
本技术实施例中,特征包括字特征和词特征,字特征包括检索字和标签字,词特征包括检索词和标签词,分别对各检索词进行特征提取,确定各检索词的特征向量,并分别对各标签词进行特征提取,获得标签词的特征向量。
[0195]
8、特征相似度。
[0196]
本技术实施例中,在api库中查找包含检索词和检索字的api服务,从海量api中取匹配字数最多的前n个api,并对前n个api和用户的热门兴趣api集合进行特相似度计算。
[0197]
9、用户-api评分。
[0198]
本技术实施例中,根据各用户的历史api集合,对各用户进行谱聚类处理,获得各类用户,并基于矩阵分解技术预测未知的用户对于api的评分。
[0199]
10、推荐分值。
[0200]
本技术实施例中,根据api的评分、特征相似度、流行度分值和对应的权重,确定api的推荐分值。
[0201]
本技术实施例中,考虑用户的历史数据、检索信息、api流行度等多维度信息,深度挖掘用户需求,实现精准化用户推荐,并且,采用谱聚类的方法进行用户分群,为不同群体用户分别计算用户-api评分,模型更新更加灵活,降低了海量数据的计算难度。
[0202]
基于同一发明构思,本技术实施例中还提供了一种api推荐装置,该api推荐装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示为本技术实施例中api推荐装置的结构示意图,具体包括:
[0203]
第一获取模块300,用于根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合,其中,每一个api对应一个流行度分值;
[0204]
查找模块310,用于确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分;
[0205]
第一处理模块320,用于分别针对所述各api,计算所述检索信息的特征与任意一个api的特征之间的特征相似度,并根据所述任意一个api的评分、特征相似度、流行度分值和对应的权重,确定所述任意一个api的推荐分值;
[0206]
第二处理模块330,用于根据所述各api对应的推荐分值,生成包含有满足预设推荐分值条件的api的api推荐列表,并向所述用户展示所述api推荐列表。
[0207]
可选的,根据用户输入的检索信息,从预设的api数据库中获取包含有候选的各api的api集合之前,进一步包括:
[0208]
第三处理模块340,用于分别针对预设的历史数据库中的各用户,从所述历史数据库中获取任意一个用户的历史记录信息,并对所述历史记录信息中的历史检索信息进行分词处理,获得历史检索词标签,并根据所述历史记录信息中的历史调用api,确定历史api标签,其中,所述历史记录信息中至少包括历史检索信息和历史调用api;
[0209]
匹配模块350,用于分别针对所述各用户,将所述历史检索词标签和所述历史api标签,分别与所述api数据库中的各api对应的标签进行匹配,从api数据库的各api中,确定出预设数个匹配值最高的api,获取所述预设数个匹配值最高的api对应的流行度分值,将大于预设流行度分值阈值的api,作为所述任意一个用户的偏好的热门api,并生成包含有各偏好的热门api的热门兴趣api集合。
[0210]
可选的,获取所述预设数个匹配值最高的api对应的流行度分值时,匹配模块350具体用于:
[0211]
分别获取所述预设数个匹配值最高的api的属性信息,其中,所述属性信息中至少包括上个时间周期的历史调用次数值和历史浏览次数值、各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、api发布时间;
[0212]
分别针对所述预设数个匹配值最高的api,根据任意一个api的所述上个周期的历史调用次数值和历史浏览次数值、所述各时间周期中历史调用次数值的最大值和历史浏览次数值的最大值、预设的冷却系数和所述api发布时间,确定所述任意一个api的流行度分值。
[0213]
可选的,确定所述用户的用户标识,并根据所述用户标识查找到所述用户对于各api的评分之前,进一步包括:
[0214]
获得模块360,用于根据所述各用户的历史api集合,对所述各用户进行谱聚类处理,获得各类用户,其中,所述历史api集合中包括用户历史调用的api;
[0215]
第二获取模块370,用于分别针对所述各类用户,从所述历史数据库中获取任意一类用户中各用户的偏好api集合,并根据所述偏好api集合中包含的各api对应的评分,生成评分矩阵;
[0216]
确定模块380,用于分别针对各评分矩阵,基于已训练的评分预测模型,以所述任意一个评分矩阵为输入参数,确定所述各类用户对于所述各api的评分。
[0217]
可选的,第一获取模块300具体用于:
[0218]
根据所述用户的用户标识,从历史数据库中获取所述用户的热门兴趣api集合;
[0219]
根据所述用户输入的检索信息,从所述api数据库中获取候选api集合;
[0220]
将所述热门兴趣api集合和所述候选api集合进行合并,生成api集合。
[0221]
可选的,根据所述用户输入的检索信息,从所述api数据库中获取候选api集合时,第一获取模块300具体用于:
[0222]
获取用户输入的检索信息,对所述检索信息进行分词处理,获得检索词集合,并对所述检索信息进行分字处理,获得检索字集合;
[0223]
根据所述检索词集合中的各检索词,从预设的api数据库中获取包含至少一个检索词的api;
[0224]
若确定获取到包含有至少一个检索词的api,则根据包含检索词数量最多的预设数个api,生成候选api集合;
[0225]
若确定未获取到包含有至少一个检索词的api,则根据所述检索字集合中的各检索字,从所述api数据库中获取包含至少一个检索字的api,并根据包含检索字数量最多的预设api,生成候选api集合。
[0226]
可选的,若确定获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度时,第一处理模块320具体用于:
[0227]
分别对所述各检索词进行特征提取,确定所述各检索词的特征向量,并确定各特征向量的检索向量平均值;
[0228]
获取所述任意一个api的各标签词,并获取所述任意一个api的标签向量评平均值;
[0229]
根据所述各检索词、所述各标签词、预设的第一权重系数、所述检索向量平均值和所述标签向量平均值,确定所述检索信息与所述任意一个api之间的特征相似度。
[0230]
可选的,若确定未获取到包含有至少一个检索词的api,则计算所述检索信息的特征与任意一个api的特征之间的特征相似度时,第一处理模块320具体用于:
[0231]
获取所述任意一个api的各标签字;
[0232]
根据所述各检索字、所述各标签字和预设的第二权重系数,确定所述检索信息与所述任意一个api之间的特征相似度。
[0233]
基于上述实施例,参阅图4所示为本技术实施例中电子设备的结构示意图。
[0234]
本技术实施例提供了一种电子设备,该电子设备可以包括处理器410(center processing unit,cpu)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
[0235]
存储器420可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器410提供存储器420中存储的程序指令和数据。在本技术实施例中,存储器420可以用于存储本技术实施例中任一种api推荐方法的程序。
[0236]
处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本技术实施例中任一种api推荐方法。
[0237]
基于上述实施例,本技术实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的api推荐方法。
[0238]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0239]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0240]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0241]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0242]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1