基于社交网络的群组查找方法和装置与流程

文档序号:11458662阅读:231来源:国知局
基于社交网络的群组查找方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种基于社交网络的群组查找方法和装置。



背景技术:

在线社交网络已经成为了人们生活中必不可少的一部分,并给社会网络分析带来了巨大的挑战。群体性是社交网络最重要的属性之一,基于社交网络研究群组性已逐渐成为趋势。

在生活、工作中,我们经常需要从社交网络中查找群组以开展工作,筹备晚宴等。传统的群组查找方法首先根据群组人数确定社交网络数据中所有节点的可能组合,然后在通过群组的其他条件对查找的所有组合进行逐一筛选,计算量非常大,查找效率极低。



技术实现要素:

基于此,有必要针对上述问题,提供一种群组查询效率更高的基于社交网络的群组查找方法和装置。

一种基于社交网络的群组查找方法,所述方法包括:

接收查询终端发送的群组查找请求,所述群组查找请求中携带指定包含的查询用户标识、设定的群组规模和群组核度,其中,所述群组核度限定了群组成员邻接其他成员的最少的数量;

响应于所述群组查找请求,调取预先生成的社交网络图,其中,所述社交网络图是根据社交网站中的社交关系数据生成的,所述社交网络图包括多个用户节点和用于连接所述用户节点的边集;

根据所述社交网络图以所述查询用户标识对应的用户节点为起始点进行搜索拓展,在每个搜索拓展层中确定一个在所述社交网络图中连接用户节点数量最多的用户节点作为群组成员,直至确定的所述群组成员的数量等于所述群组规模;

其中,拓展的一级拓展层包括的所述用户节点为所述查询用户的邻接节点,下一级拓展层包括的所述用户节点为上一级拓展层确定的所述群组成员所邻接的用户节点;

将确定的所述群组成员和所述查询用户组成待查找群组;

判断所述待查找群组的群组核度是否不小于设定的所述群组核度,若是,将所述待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,在所述响应于所述群组查找请求,调取预先生成的社交网络图,其中,所述社交网络图是根据社交网站中的社交关系数据生成的,所述社交网络图包括多个用户节点和用于连接所述用户节点的边集的步骤之后,还包括:

以所述查询用户标识对应的用户节点为根节点构建广度优先搜索树,所述广度优先搜索树从所述查询用户标识开始依次遍历所述社交网络图中所有的用户节点;

根据构建的所述广度优先搜索树确定每个用户节点到所述根节点的最短社交距离;

计算所述群组规模与每个所述用户节点的最短社交距离的差值,所述差值不大于1的用户节点为剪枝节点,在所述社交网络图中去除所述剪枝节点以及与所述剪枝节点关联的边集,生成剪枝后的社交网络图。

在一个实施例中,在所述计算所述群组规模与每个所述用户节点的最短社交距离的差值,所述差值不大于1的用户节点为剪枝节点,在所述社交网络图中去除所述剪枝节点以及与所述剪枝节点关联的边集,生成剪枝后的社交网络图的步骤之后,还包括:

查找剪枝后的所述社交网络图的用户节点中是否存在节点核度小于所述群组核度的用户节点,其中,所述节点核度为所述用户节点所邻接节点的数量,若是,则在剪枝后的社交网络图中去除查找到的所述用户节点,并更新剪枝后的所述社交网络图。

在一个实施例中,确定的所述待查找群组为多个;所述方法还包括:

根据所述社交网络图确定所述待查找群组中各群组成员之间的边集,根据确定的所述边集以所述群组成员为用户节点构建每个所述待查询群组的群组网络图;

计算每个所述群组网络图的亲密度;

将亲密度最大的所述群组网络图对应的所述待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,所述群组网络图的群组亲密度的计算公式为:

co(g)=∑(u,v)∈eω(u,v)

其中,co(g)为群组亲密度,g=(v,e)为群组网络图,v为群组网络图中节点的集合,e为群组网络图中的边集,

节点u,v∈v且有(u,v)∈e,

其中n(u)表示节点u的邻居节点集合,节点u和v的共同邻居节点数为|n(u)∩n(v)|。

一种基于社交网络的群组查找装置,所述装置包括:

查找请求模块,用于接收查询终端发送的群组查找请求,所述群组查找请求中携带指定包含的查询用户标识、设定的群组规模和群组核度,其中,所述群组核度限定了群组成员邻接其他成员的最少的数量;

社交网络图调取模块,用于响应于所述群组查找请求,调取预先生成的社交网络图,其中,所述社交网络图是根据社交网站中的社交关系数据生成的,所述社交网络图包括多个用户节点和用于连接所述用户节点的边集;

层级查找模块,用于根据所述社交网络图以所述查询用户标识对应的用户节点为起始点进行设定层数的搜索拓展,在每个搜索拓展层中确定一个在所述社交网络图中连接用户节点数量最多的用户节点作为群组成员,以使确定的所述群组成员的数量满足所述设定的群组规模;

其中,在拓展过程中的一级拓展层包括的所述用户节点为所述查询用户的邻接节点,下一级拓展层包括的所述用户节点为上一级拓展层确定的所述群组成员所邻接的用户节点;

群组确定模块,用于将确定的所述群组成员和所述查询用户组成待查找群组;

群组反馈模块,用于判断所述待查找群组的群组核度是否不小于设定的所述群组核度,若是,将所述待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,所述装置还包括:

搜索树构建模块,用于以所述查询用户标识对应的用户节点为根节点构建广度优先搜索树,所述广度优先搜索树从所述查询用户标识开始依次遍历所述社交网络图中所有的用户节点;

最短社交距离计算模块,用于根据构建的所述广度优先搜索树确定每个用户节点到所述根节点的最短社交距离;

剪枝模块,用于计算所述群组规模与每个所述用户节点的最短社交距离的差值,所述差值不大于1的用户节点为剪枝节点,在所述社交网络图中去除所述剪枝节点以及与所述剪枝节点关联的边集,生成剪枝后的社交网络图。

在一个实施例中,所述剪枝模块,还用于查找剪枝后的所述社交网络图的用户节点中是否存在节点核度小于所述群组核度的用户节点,其中,所述节点核度为所述用户节点所邻接节点的数量,若是,则在剪枝后的社交网络图中去除查找到的所述用户节点,并更新剪枝后的所述社交网络图。

在一个实施例中,确定的所述待查找群组为多个;所述装置还包括:

群组网络图构建模块,用于根据所述社交网络图确定所述待查找群组中各群组成员之间的边集,根据确定的所述边集以所述群组成员为用户节点构建每个所述待查询群组的群组网络图;

亲密度计算模块,用于计算每个所述群组网络图的亲密度;

所述群组反馈模块,还用于将亲密度最大的所述群组网络图对应的所述待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,所述群组网络图的群组亲密度的计算公式为:

co(g)=∑(u,v)∈eω(u,v)

其中,co(g)为群组亲密度,g=(v,e)为群组网络图,v为群组网络图中节点的集合,e为群组网络图中的边集,

节点u,v∈v且有(u,v)∈e,

其中n(u)表示节点u的邻居节点集合,节点u和v的共同邻居节点数为|n(u)∩n(v)|。

上述基于社交网络的群组查找方法和装置,通过预先指定查询用户,查询系统调用生成的社交网络图,并以查询用户对应的用户节点作为起始点,对社交网络图进行搜索拓展,一级拓展层包括的用户节点为查询用户的邻接节点,从一级拓展层的用户节点中确定一个群组成员,确定的群组成员为在原社交网络图中邻接节点数量最多的用户节点;进而,再以一级拓展层中确定的群组成员为起始点拓展下一拓展层,同样的,拓展层包括的用户节点为上一级确定的群组成员所邻接的用户节点,逐层拓展,直至确定的群组成员(包括指定的查询用户)满足指定的群组规模要求;然后判断确定的群组是否满足群组核度要求,也就是,根据群组成员以及群组成员之间的连接关系判断每个群组成员邻接的组内其他群组成员的数量是否满足核度要求,若是,则该群组为满足条件的群组,将其对应的群组信息返回至查询终端;实现了以查询用户为中心进行层级拓展,只需依赖社交网络数据中各节点的连接关系,拓展过程简单快捷,无需对所有可能的组合进行逐一筛选,提高了查询效率。另外,选取的群组成员均为核度较高的成员,可确保查找的群组具有较高的亲密度。

附图说明

图1为一个实施例中基于社交网络的群组查找方法的应用环境图;

图2为一个实施例中服务器的内部结构示意图;

图3为一个实施例中基于社交网络的群组查找方法的流程图;

图4为一个实施例中社交网络图;

图5a-5b为一个实施例中以查询用户为起始点的层级搜索原理图;

图6a-6c为一个实施例中经层级搜索得到的待查找群组;

图7为一个实施例中社交网络图节点剪枝所涉及的流程图;

图8为一个实施例中社交网络图节点剪枝的原理图;

图9为一个实施例中当满足查询条件的群组为多个时,群组优选所涉及的流程图;

图10为一个实施例中基于社交网络的群组查找装置的结构框图;

图11为另一个实施例中基于社交网络的群组查找装置的结构框图;

图12为又一个实施例中基于社交网络的群组查找装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,在一个实施例中,提供了一种基于社交网络的群组查找方法的应用环境图,该应用环境图包括查询终端110、服务器120。查询终端110可通过网络与服务器120通信。查询终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机中的至少一种,但并不局限于此。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。查询终端110向服务器120发送群组查找请求,指定查询用户、群组规模和群组核度。服务器120根据查询终端的给定的群组查询要求(群组规模和群组核度),以查询用户为中心对数据源(社交网络图)进行分层级搜索拓展,每个搜索拓展层中确定一个在所述社交网络图中连接用户节点数量最多的用户节点作为群组成员,在确定过程中保证群组规模要求。初步确定群组后,再对确定的群组进行核度验证,若满足核度要求,则将查找的群组对应的群组信息反馈至查询终端。

如图2所示,在一个实施例中,提供了一种服务器120,该服务器120包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器120的非易失性存储介质存储有操作系统、数据库和至少一条计算机可执行指令。该计算机可执行指令被处理器执行时,可使得处理器执行一种如图3所示的基于社交网络的群组查找方法。数据库用于存储数据,如存储该基于社交网络的群组查找方法执行过程中涉及的社交网络图等数据。处理器用于提供计算和控制能力,支撑整个服务器120的运行。内存储器为非易失性存储介质中的基于社交网络的群组查找装置的运行提供环境。网络接口用于与查询终端110进行通信连接。本领域技术人员可以理解,图2中示出的服务器的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

如图3所示,在一个实施例中,提供了一种基于社交网络的群组查找方法,该包括具体包括如下步骤:

步骤s202:接收查询终端发送的群组查找请求,群组查找请求中携带指定包含的查询用户标识、设定的群组规模和群组核度,所述群组核度限定了群组成员邻接其他成员的最少的数量。

查询终端中显示查询界面,在查询界面中用户可进行查询条件的设置。具体的,查询条件包括群组规模和群组核度。其中,群组规模是指群组成员的数量;群组核度是指确定的群组成员中每个群组成员邻接组内其他群组成员的数量的最小值。

在一个具体的场景中对查询条件进行解释:假设alice想要举办一场规模为10人的晚宴活动(包括alice在内),为了避免参与者之间太陌生使得晚宴期间太过冷清,alice提出了以下查询要求:1)晚宴规模为10人(包括alice在内);2)每个参与者至少认识其他3个参与者。要求1)即为群组规模,要求2)即为群组核度。

如图4为一个包括6个群组成员的群组,图中每个群组成员至少邻接3个其他群组成员,因此,该群组的群组核度为3。

用户可通过查询界面中的输入控件设置群组规模和群组核度。除此之外,还可以通过查询界面指定查询用户。查询用户为指定的群组成员,即必须包括的群组成员。如举例场景中的alice即为查询用户。

在一个实施例中,在指定查询用户之前,需要设置查询的社交网站,如微博、msn等。服务器将根据选定的社交网站,向查询用户对应的终端控件推送对应的查询用户标识。以使用户通过终端控件进行查询用户标识的选择。

默认状态下,查询用户为查询终端用户在该选定的数据库中的用户标识。例如,选定的社交网站为微博,查询终端的用户标识为litch,默认状态下,查询用户为litch在微博中的标识,如litchsweety。

在一个实施例中,可通过注册信息中的注册身份信息(如电话号码、真实姓名、身份编号等)自动查询查询终端用户在指定社交网站中的用户标识。

步骤s204:响应于群组查找请求,调取预先生成的社交网络图,其中,社交网络图是根据社交网站中的社交关系数据生成的,社交网络图包括多个用户节点和用于连接用户节点的边集。

社交网络图是根据预先指定的社交网站中的社交关系数据生成的。社交网站中的社交关系可以是好友关系、相互关注等彼此之间互相关联的关系。社交关系包括的两个要素分别是用户和用户之间的关联关系。根据社交关系生成的社交网络图通过节点标识用户,通过节点之间的边线标识用户之间的关系,图4即为一个社交网络图。

基于社交网站的社交关系数据生成的社交网络图是一个非常庞大且复杂的社交网络图像。按照传统做法,筛选出符合查询条件的群组将会是一个重大的工程,需要花费较多的时间和较大的计算资源。本实施例中,将以逐层确定中心节点的思想来又快又准确地达到查找到满足查询条件的群组的目的,具体详见后续步骤。

步骤s206:根据社交网络图以查询用户标识对应的用户节点为起始点进行搜索拓展,在每个搜索拓展层中确定一个在社交网络图中连接用户节点数量最多的用户节点作为群组成员,直至确定的群组成员的数量等于群组规模,其中,在拓展过程中的一级拓展层包括的用户节点为查询用户的邻接节点,下一级拓展层包括的用户节点为上一级拓展层确定的群组成员所邻接的用户节点。

首先,在社交网络图中定位到查询用户标识所在位置,然后以查询用户标识所对应的用户节点为起始点进行层级拓展,形成拓展子图。

具体的,拓展子图的第一拓展层所包括的用户节点为查询用户所对应的用户节点所邻接的用户节点。如图5a中的社交网络图所示,假设查询终端指定的查询用户是用户节点v4,那么,第一拓展层包含的用户节点为与用户节点v4邻接的节点,分别为v2、v5、v6,如图5b中的拓展子图。

确定第一拓展层中的用户节点后,在第一拓展层包括的用户节点中确定一个用户节点作为群组成员。具体的,确定在社交网络图中邻接用户节点数量最多的节点作为群组成员。第一拓展层中的v2用户节点在社交网络图中的邻接节点数量是6;v5用户节点在社交网络图中的邻接节点数量是7;v6用户节点在社交网络图中的邻接节点数量是4。因此,选定v5为群组成员。

确定新的群组成员后,再以新的群组成员所对应的用户节点作为新的中心节点,进行下一层级拓展。也就是,以v5作为新的中心节点拓展第二拓展层。同样的,第二拓展层所包括的用户节点为v5邻接的用户节点。需要说明的是,新的拓展层中不包括已经确定为群组成员的用户节点。如图5b,虽然v4是v5邻接的节点,但由于v4是已经确定为群组成员的用户节点,所以第二拓展层中不包括节点v4。第二拓展层包括的用户节点分别为v1、v2、v3、v6、v7、v9。根据第二拓展层确定的邻接节点最多的节点是v2(邻接节点数量是6个),因此,确定节点v2为群组成员。

若指定的群组规模为4,则只需再确定最后一个群组成员即可,也就是拓展到第三拓展层即可。同理,第三拓展层包括的用户节点分别为v1、v8、v3、v6。在社交网络图中,v1、v8、v3、v6邻接的用户节点的数量分别为:3、4、4、4。因此,确定的群组成员可以是v8或v3或v6。

步骤s208:将确定的群组成员和查询用户组成待查找群组。

根据步骤s206,确定的待查找群组为{v4、v5、v2、v6}或者{v4、v5、v2、v3}或者{v4、v5、v2、v8}。

根据确定的待查找群组成员以及群组成员之间的关联关系(该关联关系可从社交关系图中确定),构建待查找群组的群组网络图。

如{v4、v5、v2、v6}、{v4、v5、v2、v3}、{v4、v5、v2、v8}的群组网络图依次如图6a、6b、6c所示。

步骤s210:判断所述待查找群组的群组核度是否不小于设定的所述群组核度,若是,将所述待查找群组作为查询结果反馈至查询终端显示。

确定待查找群组的核度,根据图6a-6c可清楚得到,{v4、v5、v2、v6}的核度为3;{v4、v5、v2、v3}、的核度为2;{v4、v5、v2、v8}的核度为1。若查询终端指定的群组核度为3,则{v4、v5、v2、v6}为满足查询条件的群组。若查询终端指定的群组核度为2,则{v4、v5、v2、v6}和{v4、v5、v2、v3}为满足查询条件的群组。将满足查询条件的群组推送至查询终端。

本实施例中的基于社交网络的群组查找方法以查询用户为中心进行层级拓展,所采用的拓展只需依赖社交网络数据中各节点的连接关系。拓展过程简单快捷,无需对查找可能的所有组合进行逐一筛选,查询效率高。另外,选取的群组成员均为核度较高的成员,可确保查找的群组具有较高的亲密度。

在一个实施例中,在步骤s204:响应于群组查找请求,调取预先生成的社交网络图,社交网络图是根据社交网站中的社交关系数据生成的,社交网络图包括多个用户节点和用于连接用户节点的边集的步骤之后,还包括:对调取的社交网络图进行剪枝处理。然后,再基于剪枝后的社交网络图执行步骤s206:根据社交网络图以查询用户标识对应的用户节点为起始点进行设定层数的搜索拓展,在每个搜索拓展层中确定一个在社交网络图中连接用户节点数量最多的用户节点作为群组成员,以使确定的群组成员的数量满足设定的群组规模;其中,在拓展过程中的一级拓展层包括的用户节点为查询用户的邻接节点,下一级拓展层包括的用户节点为上一级拓展层确定的群组成员所邻接的用户节点。

具体的,如图7所示,对调取的社交网络图进行剪枝处理的步骤包括:

步骤s302:以所述查询用户标识对应的用户节点为根节点构建广度优先搜索树,所述广度优先搜索树从所述查询用户标识开始依次遍历所述社交网络图中所有的用户节点。

广度优先搜索是从图的某个顶点v0出发,在访问v0之后,依次搜索访问v0的各个未被访问过的邻接点w1,w2,…。然后顺序搜索访问w1的各未被访问过的邻接点,w2的各未被访问过的邻接点,…。即从v0开始,由近至远,按层次依次访问与v0有路径相通且路径长度分别为1,2,…的顶点,直至连通图中所有顶点都被访问一次。

根据图8(a)中的社交网络图,以查询用户v1为根节点构建广度优先搜索树(breadth-firstsearchbfs),图8(b)所示为根据社交网络图构建的基于查询用户v1的广度优先搜索树。

步骤s304:根据构建的广度优先搜索树确定每个节点到查询用户的最短社交距离。

根据构建的广度优先搜索树可确定每个用户节点距离根节点(查询用户)的社交距离,广度优先搜索树确定的社交距离即为最短社交距离。如图8(b)所示,v2、v3和v5的最短社交距离为1,v4、v6、v8的最短社交距离为2,v7的最短社交距离为3。

步骤s306:计算群组规模与每个用户节点的最短社交距离的差值,差值不大于1的用户节点为剪枝节点,在社交网络图中去除剪枝节点以及与剪枝节点对应的边集。

假设指定的群组规模是4,对于最短社交距离为3的用户节点v7,群组规模4与最短社交距离3的差值不大于1,所以用户节点v7为剪枝节点。最短社交距离大于3的用户节点也属于剪枝节点。

步骤s308:判断剪枝后的社交网络图的用户节点中是否存在不满足核度核度要求的用户节点,若是,则在剪枝后的社交网络图中去除不满足核度要求的用户节点,剪枝后对社交网络图进行更新。

由于查询条件中有对群组核度的要求,群组的核度实质上是群组成员的核度。若用户节点在查找的社交网络图中的核度不满足要求,若将其提出来作为群组成员,其在群组中的核度将更加不能满足要求,因此,需要对剪枝后的社交网络图中的用户节点进行核度检查,若剪枝后的社交网络图中存在不满足核度要求的用户节点,则再次对用户节点进行剪枝。

假设查找的群组核度为3,对最短社交距离不满足条件的节点v7剪枝后,节点v8的核度为2,小于群组核度。因此,在剪枝后的社交网络图的基础上再次剪枝,去除节点v8。最终,剪枝后的社交网络图如图8(c)所示。

基于剪枝后的社交网络图进行层级拓展将更加简单,生成的拓展子图也将简化,从而是群组查询效率更高。

在一个实施例中,如图9所示,通过层级拓展查找的满足查询条件(群组规模和群组核度)的群组为多个时,基于社交网络的群组查找方法还包括:

步骤s402:根据社交网络图确定待查找群组中各群组成员之间的边集,根据确定的边集以群组成员为用户节点构建每个待查询群组的群组网络图。

根据层级搜索确定的待查找群组可以确定群组的成员信息,根据群组的成员信息和社交网络图(如有进行了剪枝处理,则应该是剪枝后的社交网络图)可确定群组成员之间的关联关系。将群组成员作为用户节点,群组成员之间的关联关系生成用户节点之间的边集,即可生成待查找群组的群组网络图。

若设定的群组核度为1,则如图6a、6b、6c分别为确定的待查找群组{v4、v5、v2、v6}、{v4、v5、v2、v3}和{v4、v5、v2、v8}的群组网络图。

步骤s404:计算每个群组网络图的群组亲密度。

根据生成的群组网络图计算每个待查找群组所对应的群组亲密度。首先,计算在群组网络图中任意两节点之间的亲密度。再将所有的可能组合的节点亲密度加和得到群组亲密度。

如图6a所示,依次计算{v2、v6}、{v2、v4}、{v2、v5}、{v4、v6}、{v4、v5}、{v5、v6}的节点亲密度,再将这6个节点亲密度加和得到群组群密度。

具体的,节点亲密度的计算公式为:

给定一个网络图g=(v,e),节点u,v∈v且有(u,v)∈e,那么节点u,v之间的亲密度为:

其中,n(u)表示节点u的邻接节点集合,节点u和v的共同邻接节点数为|n(u)∩n(v)|。在亲密度的计算中,分子采用节点的共同邻居加1,主要是为了避免两个节点之间存在边,而亲密度却为0的情况。

一个网络图g=(v,e)的亲密度为其节点之间边的亲密度之和,记作co(g)=∑(u,v)∈eω(u,v)。

举例来说,图6a所示社交网络图的亲密度为co(ga)=ω(v2,v4)+ω(v2,v5)+ω(v2,v6)+ω(v4,v5)+ω(v4,v6)+ω(v5,v6)=3/4+3/4+3/4+3/4+3/4+3/4=9/2;co(gb)=ω(v2,v3)+ω(v2,v5)+ω(v2,v4)+ω(v4,v5)+ω(v4,v3)+ω(v5,v3)=1/2+3/4+1/2+1/2+3/2+1/2=17/4co(gc)=ω(v2,v4)+ω(v2,v5)+ω(v2,v8)+ω(v4,v5)+ω(v4,v8)+ω(v5,v8)=1/2+1/2+1/4+2/3+1+1=47/12;

通过比较可知:co(ga)>co(gb)>co(gc)。因此,向查询终端推送的群组是图6a所示群组。

步骤s406:将亲密度最大的群组网络图对应的待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,向查询终端反馈的查询结果为根据群组成员和群组成员在社交网络图中的关联关系生成的群组网络图,如图6a。

在一个实施例中,当通过层级拓展查找的满足查询条件(群组规模和群组核度)的群组为多个时,还可以计算每个确定的待查找群组的核度,若存在最大核度,则将核度最大的待查找群组作为查询结果反馈至查询终端显示。如图6a-6c,群组核度分别为3、2、1。查询条件限定的群组核度为1,则三个待查找群组均满足查询条件,此时,根据群组核度的大小进行结果推送。也就是,将群组核度最大的待查找群组a推送至查询终端显示。

在一个实施例中,如图10所示,提供了一种基于社交网络的群组查找装置,该装置包括:

查找请求模块510,用于接收查询终端发送的群组查找请求,群组查找请求中携带指定包含的查询用户标识、设定的群组规模和群组核度,其中,所述群组核度限定了群组成员邻接其他成员的最少的数量。

社交网络图调取模块520,用于响应于群组查找请求,调取预先生成的社交网络图,社交网络图是根据社交网站中的社交关系数据生成的,社交网络图包括多个用户节点和用于连接用户节点的边集。

层级查找模块530,用于根据社交网络图以查询用户标识对应的用户节点为起始点进行设定层数的搜索拓展,在每个搜索拓展层中确定一个在社交网络图中连接用户节点数量最多的用户节点作为群组成员,以使确定的群组成员的数量满足设定的群组规模;

其中,在拓展过程中的一级拓展层包括的用户节点为查询用户的邻接节点,下一级拓展层包括的用户节点为上一级拓展层确定的群组成员所邻接的用户节点。

群组确定模块540,用于将确定的群组成员和查询用户组成待查找群组。

群组反馈模块550,用于判断所述待查找群组的群组核度是否不小于设定的所述群组核度,若是,将所述待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,如图11所示,基于社交网络的群组查找装置还包括:

搜索树构建模块610,用于以所述查询用户标识对应的用户节点为根节点构建广度优先搜索树,所述广度优先搜索树从所述查询用户标识开始依次遍历所述社交网络图中所有的用户节点。

最短社交距离计算模块620,用于根据构建的广度优先搜索树确定每个用户节点到根节点的最短社交距离。

剪枝模块630,用于计算群组规模与每个用户节点的最短社交距离的差值,差值不大于1的用户节点为剪枝节点,在社交网络图中去除剪枝节点以及与剪枝节点关联的边集,生成剪枝后的社交网络图。

在一个实施例中,剪枝模块630,还用于查找剪枝后的所述社交网络图的用户节点中是否存在节点核度小于所述群组核度的用户节点,其中,所述节点核度为所述用户节点所邻接节点的数量,若是,则在剪枝后的社交网络图中去除查找到的所述用户节点,并更新剪枝后的所述社交网络图。

在一个实施例中,如图12所示,确定的待查找群组为多个;基于社交网络的群组查找装置还包括:

群组网络图构建模块710,用于根据所述社交网络图确定所述待查找群组中各群组成员之间的边集,根据确定的所述边集以所述群组成员为用户节点构建每个所述待查询群组的群组网络图;

亲密度计算模块720,用于计算每个群组网络图的亲密度;

群组反馈模块550,还用于将亲密度最大的群组网络图对应的待查找群组作为查询结果反馈至查询终端显示。

在一个实施例中,群组网络图的群组亲密度的计算公式为:

co(g)=∑(u,v)∈eω(u,v)

其中,co(g)为群组亲密度,g=(v,e)为群组网络图,v为群组网络图中节点的集合,e为群组网络图中的边集,

节点u,v∈v且有(u,v)∈e,

其中n(u)表示节点u的邻居节点集合,节点u和v的共同邻居节点数为|n(u)∩n(v)|。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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