一种对象聚类方法、装置及存储设备与流程

文档序号:14120928阅读:202来源:国知局
一种对象聚类方法、装置及存储设备与流程

本发明涉及信息处理技术领域,特别涉及一种对象聚类方法、装置及存储设备。



背景技术:

现有许多社区类的应用程序,比如k歌或直播等应用程序,同一社区内的用户之间可以通过各自的应用客户端进行互动,比如评论,点赞,送礼或送花等,因此,挖掘出具有相同兴趣的用户对于社区的深入分析具有非常重要的意义。

具体地,服务器会先确定各个相似群体,然后就可以根据相似群体中的用户信息进行信息推荐,比如,将相似群体中一个用户的应用客户端关注的信息推荐给相似群体中其他用户的应用客户端等,且服务器还可以引导用户的应用客户端关注相似群体中的其他用户等,这对于加强社区用户的应用客户端之间互动,提高产品的粘性具有非常重要的意义。

其中,在确定相似群体时,服务器一般先获取各个用户的特征向量,然后通过聚类方法,比如k均值(k-means)等方式,将特征向量的距离较近的用户划分到同一个相似群体中。但是通过这种方法在确定一个用户属于哪个相似群体时,需要计算该用户的特征信息与各个相似群体中每个用户的特征向量之间的距离,计算量比较大;另外,用特征向量来表示一个用户也是比较困难的事情,特征选取的好坏直接决定了聚类的效果。



技术实现要素:

本发明实施例提供一种对象聚类方法、装置及存储设备,实现了根据第一对象组分别与至少一个第二对象组之间的关联值,确定第一对象组与哪个第二对象组进行聚类。

本发明实施例第一方面提供一种对象聚类方法,包括:

确定与第一对象组相关联的至少一个第二对象组,其中,任一对象组中包括至少一个对象;

确定所述第一对象组分别与至少一个第二对象组之间的关联值,得到至少一个关联值;

根据所述至少一个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到至少一个聚类度;

如果所述至少一个聚类度中第一聚类度满足预置的第一条件,将所述第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中。

本发明实施例第二方面提供一种对象聚类装置,包括:

对象组确定单元,用于确定与第一对象组相关联的至少一个第二对象组,其中,任一对象组中包括至少一个对象;

关联确定单元,用于确定所述第一对象组分别与至少一个第二对象组之间的关联值,得到至少一个关联值;

计算单元,用于根据所述至少一个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到至少一个聚类度;

聚类单元,用于如果所述至少一个聚类度中第一聚类度满足预置的第一条件,将所述第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中。

本发明实施例第三方面提供一种存储设备,所述存储设备储存多条指令,所述指令适于由处理器加载并执行如本发明实施例第一方面所述的对象聚类方法。

本发明实施例第四方面提供一种服务器,包括处理器和存储设备,所述处理器,用于实现各个指令;

所述存储设备用于储存多条指令,所述指令用于由处理器加载并执行如本发明实施例第一方面所述的对象聚类方法。

可见,在本实施例的方法中,对象聚类装置在进行对象聚类时,会根据对象组之间的关联值得到聚类度,然后再根据聚类度确定将哪些对象组进行聚类。这样通过对象组之间的关联值表示对象组之间的亲密程度,与现有技术中需要通过对象之间的特征向量的距离来表示对象之间的亲密程度相比,大大地减少了计算量;且省去了用特征向量来表示一个对象,从而能提升对象聚类的效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种对象聚类方法应用于的场景的示意图;

图2是本发明一个实施例提供的一种对象聚类方法的流程图;

图3a是本发明一个实施例中一种第一对象组和第二对象组之间的关系示意图;

图3b是本发明一个实施例中另一种第一对象组和第二对象组之间的关系示意图;

图3c是本发明一个实施例中另一种第一对象组和第二对象组之间的关系示意图;

图3d是本发明一个实施例中又一种第一对象组和第二对象组之间的关系示意图;

图3e是本发明一个实施例中一种各个对象组之间的关系示意图;

图3f是本发明一个实施例中又一种各个对象组之间的关系示意图;

图4是本发明应用实施例提供的一种对象聚类方法的流程图;

图5a是本发明应用实施例中各个用户之间的关系示意图;

图5b是本发明应用实施例中一种用户组1与用户组2之间的关系示意图;

图5c是本发明应用实施例中另一种用户组1与用户组2之间的关系示意图;

图6是本发明实施例提供的一种对象聚类装置的结构示意图;

图7是本发明实施例提供的另一种对象聚类装置的结构示意图;

图8是本发明实施例提供的一种服务器的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明实施例提供一种对象聚类方法,主要是对象聚类装置所执行的方法。可以应用于如图1所示的场景中,该场景中包括应用服务器和多个(图1中以n个为例说明)应用客户端。其中,应用客户端为社区类应用的客户端,比如k歌或直播等客户端,一个用户可以使用用户信息,并通过应用客户端登录应用服务器,这样一个应用客户端可以对应一个用户;应用服务器可以通过用户信息识别出用户,并对识别出的用户进行聚类。这种情况下,对象聚类装置具体为应用服务器,应用服务器将用户作为对象进行聚类。

本发明实施例的对象聚类方法还可以应用于其它场景,比如,需要对其它虚拟物品,或是歌曲等进行聚类的场景,在这里并不对本发明实施例的对象聚类方法的场景进行限制。

具体地,在本发明实施例中,对象聚类装置可以通过如下方法进行对象聚类:

确定与第一对象组相关联的至少一个第二对象组,其中,任一对象组中包括至少一个对象;确定第一对象组分别与至少一个第二对象组之间的关联值,得到至少一个关联值;根据至少一个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到至少一个聚类度;如果至少一个聚类度中第一聚类度满足预置的第一条件,将第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中。

可见,对象聚类装置在进行对象聚类时,会根据对象组之间的关联值得到聚类度,然后再根据聚类度确定将哪些对象组进行聚类。这样可以通过对象组之间的关联值表示对象组之间的亲密程度,与现有技术中需要通过对象之间的特征向量的距离来表示对象之间的亲密程度相比,大大地减少了计算量;且省去了用特征向量来表示一个对象,从而能提升对象聚类的效果。

本发明实施例提供一种对象聚类方法,主要是对象聚类装置所执行的方法,比如上述的应用服务器等,流程图如图2所示,包括:

步骤101,确定与第一对象组相关联的至少一个第二对象组,其中,任一对象组中包括至少一个对象。

可以理解,对象聚类装置可以按照一定的周期发起本实施例的流程。

其中,每个对象组中都可以包括至少一个对象,这里的对象可以是通过应用客户端注册到应用服务器的用户,也可以是游戏服务器中的虚拟物品,还可以是歌曲服务器提供的歌曲等。且每个对象组可以是通过本实施例的方法进行聚类得到的,在开始聚类时,对象聚类装置可以将一个对象作为一个对象组,这样通过本实施例中步骤101到104的重复操作,直到聚类后的对象组满足一定的条件,这样每个对象组中即可包括多个对象。

对象聚类装置在发起本实施例的流程后,可以通过各个对象的属性信息,确定与某一对象组(比如第一对象组)相关联的第二对象组。

(1)如果对象是用户,则可以根据用户通过应用客户端注册到应用服务器的用户信息,及用户通过应用客户端操作的信息等,确定与某一用户组相关联的其它用户组。

例如,某一用户组与另一用户组之间的用户通过各自的应用客户端关注了相同的信息,或者,某一用户组的用户通过应用客户端关注了另一用户组中的用户,或者,某一用户组与另一用户组之间的用户通过各自的应用客户端进行了互动等,则确定该某一用户组与另一用户组相关联。

例如,应用客户端是k歌客户端,用户组1中用户a通过k歌客户端1点唱歌曲集合a为a1,a2,……,an,用户组2中用户b通过k歌客户端2点唱歌曲集合b为b1,b2,……,bm,集合a和集合b中有相同的歌曲;或者,用户组1中用户a通过k歌客户端1关注了用户组2中用户b;或者,用户组1中用户a通过k歌客户端1转发了用户组2中用户b通过k歌客户端2发布的信息,或者,用户组1中用户a与用户组2中用户b是好友,或者,用户组1中用户a与用户组2中用户b通过各自的k歌客户端进行互动等。则用户组1和用户组2是关联的。

(2)如果对象是歌曲,则可以根据歌曲的内容,歌曲的下载用户,歌曲的点唱用户等信息,确定与某一歌曲组相关联的另一歌曲组等。

例如,某一歌曲的下载用户,与另一歌曲的下载用户之间,相同用户的数量大于一个阈值;或者,某一歌曲和另一歌曲的内容都是关于“爱”,则该某一歌曲与另一歌曲之间相关联。

步骤102,确定第一对象组分别与至少一个第二对象组之间的关联值,得到至少一个关联值。

这里的关联值可以表示两个对象组的对象之间的亲密程度,如果关联值越大,说明两个对象组的对象之间越亲密。具体地,对象聚类装置在确定第一对象组与某一个第二对象组之间的关联值时,会先确定第一对象组内的第一对象与第二对象组内的第二对象之间,基于至少一个维度的关联分值,其中,第一对象和第二对象是相关联的对象;则第一对象组和第二对象组之间的关联值有如下几种情况:

(1)如果第一对象和第二对象都为一个,则对象聚类装置会将第一对象与第二对象之间基于至少一个维度的关联分值的数学计算值作为第一对象组与第二对象组之间的关联值。比如,将第一对象和第二对象之间基于至少一个维度的关联分值之和作为第一对象组与第二对象组之间的关联值,或者,将第一对象和第二对象之间基于至少一个维度的关联分值的乘积作为第一对象组与第二对象组之间的关联值。

其中,如果对象为用户,第一对象组为第一用户组,第二对象组为第二用户组,则上述的至少一个维度可以包括但不限于如下的信息:第一用户和第二用户分别通过各自的应用客户端操作的信息,及第一用户与第二用户之间的关系等。则关联分值具体有如下两种情况:

(11)如果至少一个维度包括:第一用户和第二用户分别通过应用客户端操作的信息,则基于至少一个维度的关联分值具体包括:第一用户通过应用客户端操作的第一信息,与第二用户通过应用客户端操作的第二信息中相同的信息条数,除以第一信息和第二信息的信息条数之和,得到的商值。

(12)如果至少一个维度包括:第一用户和第二用户之间的关系,则基于至少一个维度的关联分值具体包括:第一用户与第二用户之间关系的种类数量之和,其中,第一用户与第二用户之间的关系有多种,比如第一用户与第二用户为好友,或者第一用户和第二用户通过各自的应用客户端进行互动,或者第一用户通过应用客户端关注了第二用户等。

例如,应用客户端是k歌客户端,如果用户组1中用户a通过k歌客户端1点唱歌曲集合a为a1,a2,……,an,用户组2中用户b通过k歌客户端2点唱歌曲集合b为b1,b2,……,bm,集合a和集合b中有相同的歌曲数量为p,则基于用户通过k歌客户端点唱的歌曲这个维度的关联分值s1可以通过如下公式1得到:

如果用户组1中用户a通过k歌客户端1关注了用户组2中用户b,可以记分值s21为1;如果用户组1中用户a与用户组2中用户b是好友,可以记分值s22为1;如果用户组1中用户a与用户组2中用户b通过各自的k歌客户端进行互动,比如评论等,则及分值s23为1,则基于第一用户和第二用户之间的关系这个维度,得到的关联分值为上述分值s21,s22和s23之和。

则用户组1和用户组2之间的关联值可以是上述关联分值s1与关联分值s2的数学计算值,比如s1与s2的乘积,或者s1与s2之和等。

(2)如果上述第一对象组和第二对象组都包括多个对象,这样可能第一对象组内的一个对象,与第二对象组内的多个对象之间都有关联,即第一对象为一个,第二对象为多个,则对象聚类装置确定的第一对象与第二对象之间基于至少一个维度的关联分值会包括一个第一对象分别与多个第二对象之间基于至少一个维度的关联分值。

这样对象聚类装置还会计算一个第一对象分别与多个第二对象之间基于至少一个维度的关联分值的数学计算值,得到多个数学计算值,再将这多个数学计算值之和作为第一对象组与第二对象组的关联值。

例如图3a所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密程度。第一对象组的对象1与第二对象组的对象2和对象3都分别相关联,则对象聚类装置会计算对象1与对象2基于至少一个维度的关联分值的数学计算值s12,及对象1与对象3基于至少一个维度的关联分值的数学计算值s13,并将数学计算值s12和s13之和作为第一对象组与第二对象组之间的关联值。

(3)如果上述第一对象组和第二对象组都包括多个对象,这样可能第一对象组内的多个对象,分别与第二对象组内的多个对象之间有关联,即第一对象为多个,第二对象为多个,则对象聚类装置确定的第一对象与第二对象之间基于至少一个维度的关联分值会包括多个第一对象中每个第一对象分别与相关联的第二对象之间基于至少一个维度的关联分值。

这样对象聚类装置还会计算多个第一对象中每个第一对象分别与相关联的第二对象之间基于至少一个维度的关联分值的数学计算值,得到多个数学计算值,再将这多个数学计算值之和作为第一对象组与第二对象组的关联值。

例如图3b所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密度。第一对象组的对象1与第二对象组的对象2相关联,第一对象组的对象3与第二对象组的对象4相关联,则对象聚类装置会计算对象1与对象2基于至少一个维度的关联分值的数学计算值s12,及对象3与对象4基于至少一个维度的关联分值的数学计算值s34,并将数学计算值s12和s34之和作为第一对象组与第二对象组之间的关联值。

(4)如果上述第一对象组和第二对象组都包括多个对象,这样可能第一对象组内的多个对象,分别与第二对象组内的一个对象之间有关联,即第一对象为多个,第二对象为一个,则对象聚类装置确定的第一对象与第二对象之间基于至少一个维度的关联分值会包括多个第一对象中每个第一对象分别与一个第二对象之间基于至少一个维度的关联分值。

对象聚类装置还会计算多个第一对象中每个第一对象分别与一个第二对象之间基于至少一个维度的关联分值的数学计算值,得到多个数学计算值,再将这多个数学计算值之和作为第一对象组与第二对象组的关联值。

例如图3c所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密度。第一对象组的对象1与第二对象组的对象2相关联,第一对象组的对象3与第二对象组的对象2相关联,则对象聚类装置会计算对象1与对象2基于至少一个维度的关联分值的数学计算值s12,及对象3与对象2基于至少一个维度的关联分值的数学计算值s32,并将数学计算值s12和s32之和作为第一对象组与第二对象组之间的关联值。

步骤103,根据上述至少一个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到至少一个聚类度。

这里,根据某一个关联值得到的聚类度是指该关联值对应的第一对象组与第二对象组聚类到同一对象组后,聚类后的该对象组的聚合程度。其中,预置的聚类度的函数计算式可以是根据上述步骤102确定的一个关联值计算一个聚类度的计算公式,具体可以是任意形式的计算公式。在一个具体的实施例中,该聚类度的函数计算式可以包括如下公式2:

其中,∑in为第一对象组内对象之间的关联值之和,某一第二对象组内对象之间的关联值之和,与所述第一对象组与某一第二对象组之间的关联值相加后的值;∑tot为第一对象组和某一第二对象组中对象,与其它对象组中的对象之间的关联值之和;m包括所有对象之间的关联值之和。

需要说明的是,如果某一对象组中包括一个对象,则在计算∑in时,该对象组内对象之间的关联值之和为零。

例如图3d所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密度。第一对象组包括对象1,2和3,某一第二对象组包括对象4,5和6,则∑in为对象1与对象2之间的关联值s12,对象2与对象3之间的关联值s23,第一对象组和第二对象组之间的关联值(即对象3与对象4之间的关联值s34),对象4与对象5之间的关联值s45及对象5与对象6之间的关联值s56之和。∑tot为对象1与其它对象之间的关联值s1t,及对象6与其它对象之间的关联值s6p之和。

步骤104,如果至少一个聚类度中的第一聚类度满足预置的第一条件,将第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中。

可以理解,对象聚类装置需要先判断该至少一个聚类度中哪个聚类度满足预置的第一条件,如果某一个聚类度满足,则该聚类度为第一聚类度,将第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中;如果任一聚类度都不满足,则不会进行聚类。

这里预置的第一条件是决定第一对象组和第二对象组是否能聚类的条件,具体可以包括如下两种情况:

(1)如果至少一个聚类度包括一个聚类度,说明与第一对象组关联的只有一个第二对象组,则该聚类度为第一聚类度,预置的第一条件为:第一聚类度对应的整体聚类度大于当前整体聚类度,当前整体聚类度为第一聚类度对应的第二对象组与第一对象组在聚类之前所有对象组的聚类度之和,第一聚类度对应的整体聚类度为第一聚类度对应的第二对象组与第一对象组在聚类之后所有对象组的聚类度之和。整体聚类度具体可以通过如下公式3来表示,其中,c表示所有对象组:

例如图3e所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密度。所有对象组包括第一对像组,第二对象组,某一对象7组成的对象组7,第一对象组包括对象1,2和3,第二对象组包括对象4,5和6。与第一对象组关联的只有一个第二对象组,则根据第一对象组与该第二对象组的关联值可以计算得到一个聚类度。则在确定第一对象组和第二对象组是否可以聚类时,需要计算当前整体聚类度,及计算得到的一个聚类度对应的整体聚类度。

其中,在计算当前整体聚类度时,所有对象组为第一对象组,第二对象组,和对象组7;在计算一个聚类度对应的整体聚类度时,所有对象组为第一对象组和第二对象组聚类后的对象组(图中虚线框所示),和对象组7。

(2)如果至少一个聚类度包括多个聚类度,则多个聚类度中某一聚类度为第一聚类度,预置的第一条件为:第一聚类度对应的整体聚类度大于当前整体聚类度,且第一聚类度对应的整体聚类度大于多个聚类度中除第一聚类度之外的其它聚类度对应的整体聚类度。

例如图3f所示,用一个圆点表示一个对象,点与点之间的连线表示两个对象之间相关联,而点与点之间连线的长短可以表示两个对象之间的亲密度。所有对象组包括第一对像组,第二对象组,某一对象7和8分别组成的对象组7和对象组8,第一对象组包括对象1,2和3,第二对象组包括对象4,5和6。与第一对象组关联的有两个对象组,即第二对象组和对象组7,则根据第一对象组与该第二对象组的关联值可以计算得到聚类度1,根据对象组7与第一对象组的关联值计算得到聚类度2。则在确定第一对象组与哪个对象组可以聚类时,需要计算当前整体聚类度,聚类度1对应的整体聚类度及聚类度2对应的整体聚类度。

其中,在计算当前整体聚类度时,所有对象组为第一对象组,第二对象组,和对象组7和8;在计算聚类度1对应的整体聚类度时,所有对象组为第一对象组和第二对象组聚类后的对象组,和对象组7和8;在计算聚类度2对应的整体聚类度时,所有对象组为第一对象组和对象组7聚类后的对象组,和第二组及对象组8。

需要说明的是,上述步骤101到104是针对某一对象组(即第一对象组)所执行的方法,在针对所有对象组都执行了上述步骤101到104后,对象聚类装置可以进一步地判断聚类后的对象组是否满足预置的第二条件,如果满足,则结束流程;如果不满足,则针对聚类后的对象组返回执行步骤101,即执行上述确定第二对象组,确定关联值,计算聚类度及聚类的步骤。

其中预置的第二条件是决定是否需要针对所有聚类后的对象组,再次循环执行上述步骤101到104流程的条件,具体可以包括:当前循环得到的聚类后的所有对象组对应的聚类度之和(即当前循环后得到的整体聚类度),与上一次循环得到的聚类后的所有对象组对应的聚类度之和相同(上一次循环后得到的整体聚类度),或者近似,即整体聚类度不会发生变化时,可以不需要再次进行循环。

进一步地,如果对象是用户,对象组为用户组,则当对象聚类装置通过上述的流程进行对象聚类得到聚类后的用户组后,还可以将聚类后的用户组中除第一用户之外的其它用户操作的信息,和/或用户信息发送给第一用户的应用客户端。也可以将第一用户操作的信息,和/或用户信息发送给其它用户的应用客户端。其中,每一用户操作的信息可以是该用户通过对应的应用客户端操作的信息,比如关注或转发的信息等。

可见,在本实施例的方法中,对象聚类装置在进行对象聚类时,会根据对象组之间的关联值得到聚类度,然后再根据聚类度确定将哪些对象组进行聚类。这样通过对象组之间的关联值表示对象组之间的亲密程度,与现有技术中需要通过对象之间的特征向量的距离来表示对象之间的亲密程度相比,大大地减少了计算量;且省去了用特征向量来表示一个对象,从而能提升对象聚类的效果。

以下以一个具体的实施例来说明本发明的对象聚类方法,本实施例的方法可以应用于上述图1所示的场景中,具体地,本实施例中,应用客户端可以为k歌客户端,应用服务器为k歌服务器,对象为用户,对象组为用户组,对象聚类装置为k歌服务器。参考图4所示,本实施例的方法可以包括如下步骤:

步骤201,k歌服务器针对通过k歌客户端注册到k歌服务器的用户,发起本实施例的流程,k歌服务器会先将每一个用户作为一个用户组,针对一个用户组(比如用户组1),确定与该用户组1相关联的用户组2,具体地,本实施例中以用户组2为多个为例进行说明。

例如图5a所示,用户1到6都各自作为一个独立的用户组,针对某一用户6,与用户6相关联的为用户1,2和5;针对用户3,与用户3相关联的为用户2和4。图中用一个圆点表示一个用户,用圆点之间的连线表示用户之间相关联。

步骤202,k歌服务器确定用户组1分别与多个用户组2之间的关联值,得到多个关联值。

具体地,在确定用户组1与一个用户组2之间的关联值时,可以先确定用户组1中第一用户(比如图5a中所示的用户6)与用户组1中第二用户(比如图5a中所示的用户1),基于多个维度的关联分值,然后将这多个维度的关联分值的乘积作为用户组1与用户组2之间的关联值。

比如基于用户通过k歌客户端点唱的歌曲这个维度的关联分值s1,为用户6与用户1通过k歌客户端点唱的相同歌曲的数量,与用户6和用户1通过k歌客户端点唱的所有歌曲的数量的比值。而基于第一用户和第二用户之间的关系这个维度,得到的关联分值s2为用户6与用户1之间关系的种类数量之和。则将关联分值s1与s2的乘积作为两个用户组之间的关联值。

步骤203,k歌服务器根据多个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到多个聚类度。其中,根据某一个关联值得到的聚类度是指该关联值对应的第一用户组与第二用户组聚类到同一用户组后,聚类后的该用户组的聚合程度。

具体地,这里预置的聚类度的函数计算式可以包括上述公式2,在这里不进行赘述。例如图5a所示,在根据用户1和用户6这两个用户组之间的关联值及聚类度的函数计算式计算对应的聚类度时,则∑in为用户1和用户6之间的关联值,∑tot为用户6分别与用户2和5之间的关联值之和。

步骤204,如果多个聚类度中第一聚类度满足预置的第一条件,k歌服务器将第一聚类度对应的用户组2与用户组1聚类到同一用户组中。

其中,第一聚类度对应的整体聚类度需要大于当前整体聚类度,且第一聚类度对应的整体聚类度大于多个聚类度中除第一聚类度之外的其它聚类度对应的整体聚类度。

例如图5a所示,当k歌服务器分别根据用户6与用户1,2和5计算得到相应的聚类度,得到3个聚类度,即聚类度1,2和5;然后再确定这3个聚类度分别对应的整体聚类度,如果这些整体聚类度中整体聚类度1最大,如果该整体聚类度1大于当前整体聚类度,则将该整体聚类度1对应的聚类度(比如聚类度1)所对应的用户组(比如用户1)与用户6聚类到同一用户组中。

需要说明的是,通过上述步骤201到204的流程,只是针对某一个用户组进行的方法流程,k歌服务器可以针对所有用户组,循环执行上述步骤201到204,得到聚类后的用户组。

例如图5b所示,k歌服务器将用户1到6聚类到用户组1中,将用户7到9聚类到用户组2中,聚类后的用户组还包括其它用户组,在图5b中没有画出。如果还需要执行聚类的流程,则针对用户组1,在计算与用户组2之间的关联值时,可以直接将用户4与用户7之间的关联值作为用户组1与用户组2之间的关联值。

然后在根据该关联值计算聚类度时,如果聚类度的函数计算式为上述公式2,则在这种情况下,∑in包括用户4与用户7之间的关联值,还包括用户组1中用户之间的关联值之和,及用户组2中用户之间的关联值之和。其中用户组1中用户之间的关联值之和具体为:用户1与用户6之间的关联值,用户6与用户2之间的关联值,用户6与用户5之间的关联值,用户2与用户3之间的关联值,用户3与用户4之间的关联值,及用户4与用户5之间的关联值之和。用户组2中用户之间的关联值之和具体为:用户7与用户8之间的关联值,用户7与用户9之间的关联值,及用户9与用户8之间的关联值之和。

而∑tot则包括用户组1与其它相关联的用户组(图中未示出)之间的关联值。

在另一种情况下,如果用户组1中不止一个用户与用户组2中的用户相关联,如图5c所示,用户组1中的用户3和4都与用户组2中的用户7相关联,则在计算用户组1与用户组2之间的关联值时,可以将用户7分别与用户3和4之间的关联值之和作为用户组1与用户组2之间的关联值。

本发明实施例还提供一种对象聚类装置,比如上述的应用服务器,其结构示意图如图6所示,具体可以包括:

对象组确定单元10,用于确定与第一对象组相关联的至少一个第二对象组,其中,任一对象组中包括至少一个对象;

关联确定单元11,用于确定所述第一对象组分别与所述对象组确定单元10确定的至少一个第二对象组之间的关联值,得到至少一个关联值。

该关联确定单元11,具体用于在确定所述第一对象组与某一个第二对象组之间的关联值时,确定所述第一对象组内的第一对象,与某一第二对象组内的第二对象之间,基于至少一个维度的关联分值;所述第一对象和第二对象是相关联的对象;如果所述第一对象和第二对象都为一个,则将所述第一对象与第二对象之间基于至少一个维度的关联分值的数学计算值作为所述第一对象组与第二对象组之间的关联值。

进一步地,该关联确定单元11,具体还用于如果所述第一对象为一个,第二对象为多个,则计算一个第一对象分别与多个第二对象之间基于至少一个维度的关联分值的数学计算值,得到多个数学计算值,将所述多个数学计算值之和作为所述第一对象组与第二对象组的关联值;

如果所述第一对象为多个,第二对象为多个,则分别计算所述多个第一对象中每个第一对象与相关联的第二对象之间基于至少一个维度的关联分值的数学计算值,得到多个数学计算值,将所述多个数学计算值之和作为所述第一对象组与第二对象组的关联值。

其中,如果上述对象为用户,第一对象为第一用户,第二对象为第二用户,则所述至少一个维度包括:所述第一用户和第二用户分别通过应用客户端操作的信息,则所述基于至少一个维度的关联分值具体包括:所述第一用户通过应用客户端操作的第一信息,与第二用户通过应用客户端操作的第二信息中相同的信息条数,除以所述第一信息和第二信息的信息条数之和,得到的商值;如果至少一个维度包括:第一用户和第二用户之间的关系,则基于至少一个维度的关联分值具体包括:第一用户与第二用户之间关系的种类数量之和。

计算单元12,用于根据所述关联确定单元11得到的至少一个关联值及预置的聚类度的函数计算式分别计算对应的聚类度,得到至少一个聚类度。这里,根据某一个关联值得到的聚类度是指该关联值对应的第一对象组与第二对象组聚类到同一对象组后,聚类后的该对象组的聚合程度

预置的聚类度的函数计算式可以包括:

其中,∑in为所述第一对象组内对象之间的关联值之和,某一第二对象组内对象之间的关联值之和,与所述第一对象组与某一第二对象组之间关联值相加后的值;所述∑tot为所述第一对象组和某一第二对象组中对象,与其它对象组的对象之间的关联值之和;所述m包括所有对象之间的关联值之和。

聚类单元13,用于如果所述计算单元12得到的至少一个聚类度中的第一聚类度满足预置的第一条件,将所述第一聚类度对应的第二对象组与第一对象组聚类到同一对象组中。

该聚类单元13,具体用于如果所述至少一个聚类度包括一个聚类度,所述第一聚类度对应的整体聚类度大于当前整体聚类度,所述当前整体聚类度为所述第一聚类度对应的第二对象组与第一对象组在聚类之前所有对象组的聚类度之和,所述第一聚类度对应的整体聚类度为所述第一聚类度对应的第二对象组与第一对象组在聚类之后所有对象组的聚类度之和;

如果所述至少一个聚类度包括多个聚类度,所述第一聚类度对应的整体聚类度大于所述当前整体聚类度,且所述第一聚类度对应的整体聚类度大于所述多个聚类度中除所述第一聚类度之外的其它聚类度对应的整体聚类度。

可见,在本实施例的装置中,计算单元12会根据对象组之间的关联值得到聚类度,然后聚类单元13再根据聚类度确定将哪些对象组进行聚类。这样通过对象组之间的关联值表示对象组之间的亲密程度,与现有技术中需要通过对象之间的特征向量的距离来表示对象之间的亲密程度相比,大大地减少了计算量;且省去了用特征向量来表示一个对象,从而能提升对象聚类的效果。

参考图7所示,在一个具体的实施例中,本实施例的对象聚类装置中除了可以包括如图6所示的结构外,还可以包括循环确定单元14和信息发送单元15,其中:

循环确定单元14,用于确定所述聚类后的对象组是否满足预置的第二条件,如果不满足,通知所述对象组确定单元10针对所述聚类后的对象组执行所述确定第二对象组的步骤。

信息发送单元15,用于如果上述对象为用户,第一对象为第一用户,根据聚类单元13得到的聚类后的用户组,将所述聚类后的用户组中除第一用户之外的其它用户操作的信息,和/或用户信息发送给所述第一用户的应用客户端。

本发明实施例还提供一种服务器,其结构示意图如图8所示,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在服务器上执行存储介质22中的一系列指令操作。

具体地,在存储介质22中储存的应用程序221包括对象聚类的应用程序,且该程序可以包括上述对象聚类装置中的对象组确定单元10,关联确定单元11,计算单元12,聚类单元13,循环确定单元14和信息发送单元15,在此不进行赘述。更进一步地,中央处理器20可以设置为与存储介质22通信,在服务器上执行存储介质22中储存的用聚类的应用程序对应的一系列操作。

服务器还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,一个或一个以上输入输出接口25,和/或,一个或一个以上操作系统223,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述方法实施例中所述的由应用服务器所执行的步骤可以基于该图8所示的服务器的结构。

本发明实施例还提供一种存储设备,所述存储设备储存多条指令,所述指令适于由处理器加载并执行如上述应用服务器所执行的对象聚类方法。

本发明实施例还提供一种服务器,包括处理器和存储设备,所述处理器,用于实现各个指令;

所述存储设备用于储存多条指令,所述指令用于由处理器加载并执行如上述应用服务器所执行的对象聚类方法。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom)、随机存取存储器ram)、磁盘或光盘等。

以上对本发明实施例所提供的对象聚类方法、装置及存储设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1