信息推送方法和装置、服务器
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种信息推送方法和装置、服务器。
背景技术
随着客户端的发展,客户端的地理位置数据变得容易获取。所述客户端例如可以为移动智能电话、平板电子设备、便携式计算机(例如笔记本电脑等)等。这样,服务器可以通过客户端的地理位置数据推知用户的地理位置,可以基于所述地理位置获取与所述用户相匹配的信息,并可以向所述用户推送所述信息。例如,在用户位于某一商圈附近时,可以获取所述商圈内部商户的信息,并可以向用户推送所述信息。
然而,上述信息推送方法局限于单个用户地理位置的识别,缺乏对多个用户地理位置之间内在联系的研究,无法有效地确定出多个用户形成的用户群体,进而无法获取并推送与所述用户群体相匹配的信息。因此,需要提供一种能够获取与用户群体相匹配的信息的技术方案。
发明内容
本说明书实施例的目的是提供一种信息推送方法和装置、服务器,以能够推送与多个用户形成的用户群体相匹配的信息。
为实现上述目的,本说明书实施例提供一种信息推送方法,所述方法包括:接收用户标识和地理位置数据;其中,所述地理位置数据与所述用户标识相对应;基于接收的地理位置数据,确定第一用户标识集合;其中,所述第一用户标识集合包括接收的用户标识和至少一个临近用户标识;每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据间的距离在第一距离范围内;基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;以接收的用户标识所在的分类作为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
为实现上述目的,本说明书实施例提供一种服务器,包括:通信组件和处理器;所述通信组件,用于建立通信连接并进行数据传输;所述处理器,用于接收用户标识和地理位置数据;其中,所述地理位置数据与所述用户标识相对应;基于接收的地理位置数据,确定第一用户标识集合;其中,所述第一用户标识集合包括接收的用户标识和至少一个临近用户标识;每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据间的距离在第一距离范围内;基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;以接收的用户标识所在的分类作为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
为实现上述目的,本说明书实施例提供一种信息推送装置,包括:接收单元,用于接收用户标识和地理位置数据;其中,所述地理位置数据与所述用户标识相对应;第一确定单元,用于基于接收的地理位置数据,确定第一用户标识集合;其中,所述第一用户标识集合包括接收的用户标识和至少一个临近用户标识;每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据间的距离在第一距离范围内;划分单元,用于基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;第二确定单元,用于以接收的用户标识所在的分类作为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
由以上本说明书实施例提供的技术方案可见,服务器可以接收用户标识和地理位置数据;基于接收的地理位置数据,确定第一用户标识集合;可以基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;可以以接收的用户标识所在的分类为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。在本实施例中,所述目标分类可以对应一个用户群体,所述用户群体可以为接收的用户标识所标识的用户所在的用户群体。所述服务器可以获取所述用户群体匹配的至少一个对象信息,并可以返回所述至少一个对象信息。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种业务系统的功能结构示意图;
图2为本说明书实施例一种信息推送方法的流程图;
图3为本说明书实施例一种客户端展示对象信息的示意图;
图4为本说明书实施例一种K-MEANS聚类算法的流程图;
图5为本说明书实施例一种用户标识间关联系数的示意图;
图6为本说明书实施例一种服务器的功能结构示意图;
图7为本说明书实施例一种信息推送装置的功能结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书的一个或多个实施例中采用术语第一、第二、第三等来描述各种信息,但这些信息并不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
为了便于本领域技术人员理解本说明书实施例的技术方案,以下首先介绍本实施例的应用环境。请参阅图1。本实施例的业务系统可以包括服务器和至少一个客户端。
所述服务器可以为一个服务器,还可以为包括多个服务器的服务器集群。所述服务器可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软体。
所述客户端例如可以为PC(personal computer)机、服务器、工控机(工业控制计算机)、移动智能电话、平板电子设备、便携式计算机(例如笔记本电脑等)、个人数字助理(PDA)、或桌面型计算机或智能穿戴设备等。
所述客户端可以具有定位功能。所述定位功能可以通过GPS(Global PositioningSystem,全球定位系统)、BDS(BeiDou Navigation Satellite System,北斗卫星导航系统)、GLONASS(格洛纳斯卫星导航系统)、伽利略卫星导航系统(Galileo satellitenavigation system)、基站无线信号、WIFI(Wireless-Fidelity,无线保真)信号、蓝牙(Bluetooth)信号等方式来实现,当然,也可以通过上述方式的任意组合来实现。
所述客户端可以运行有应用程序,所述应用程序例如可以为支付宝或微信等。运行于所述客户端的应用程序可以获取登录用户的用户标识;可以使用所述客户端的定位功能来获取所述客户端的地理位置数据;可以向所述服务器上传所述用户标识和所述地理位置数据。所述服务器可以接收所述用户标识和所述地理位置数据;可以将所述地理位置数据作为所述用户标识对应的地理位置数据。其中,所述用户标识可以用于标识一个用户,例如可以为该用户的名称、昵称、账户等。所述地理位置数据可以用于表示所述客户端的地理位置,具体可以包括经纬度(经度和维度)数据。所述经纬度数据例如可以为(116.389550,39.928167),具体表示经度数据为116.389550,维度数据为39.928167。当然,所述地理位置数据还可以包括其它的用于表示地理位置的数据,需要说明的是,鉴于通过客户端的地理位置可以推知持有所述客户端的用户的地理位置,所述地理位置数据还可以用于表示用户标识所标识用户的地理位置。
具体地,运行于所述客户端的应用程序在启动后,可以默认获取登录用户标识的用户标识和所述客户端的地理位置数据。或者,运行于所述客户端的应用程序也可以在接收到地理位置数据上传指令以后,获取登录用户的用户标识和所述客户端的地理位置数据。所述地理位置数据上传指令例如可以是在检测到指定按钮被按下时产生;或者,在识别到所述客户端的预置运动状态时产生,例如,用户甩动所述客户端;又或者,在识别到所述客户端的地理位置发生变化后产生,例如,所述客户端从一个地理位置移动到另一个地理位置。又或者,运行于所述客户端的应用程序还可以每间隔预设时间间隔,获取登录用户的用户标识和所述客户端的地理位置数据。所述预设时间间隔例如可以为1s、5s、15s等。
需要说明的是,运行于所述客户端的应用程序,可以一次或多次向所述服务器上传用户标识和地理位置数据。从而,对于每个用户标识,所述服务器可以将一个或多个地理位置数据作为该用户标识对应的地理位置数据。即,每个用户标识可以对应一个或多个地理位置数据,所述一个或多个地理位置数据可以用于表示所述客户端的移动路径。
请一并参阅图1、图2、图3、图4和图5。本说明书实施例提供一种信息推送方法。所述信息推送方法以服务器为执行主体。关于所述服务器的详细介绍可以参照前述应用环境。本实施例可以包括以下步骤。
步骤S102:接收用户标识和地理位置数据。
在本实施例中,所述地理位置数据和所述用户标识可以具有对应关系。具体地,客户端可以向服务器上传用户标识和地理位置数据。所述服务器可以接收所述用户标识和所述地理位置数据;可以将所述地理位置数据作为所述用户标识对应的地理位置数据。所述客户端可以为前述应用环境中的任一客户端。关于所述客户端的详细介绍,可以参照前述应用环境。
步骤S104:基于接收的地理位置数据,确定第一用户标识集合。
在本实施例中,所述第一用户标识集合可以包括接收的用户标识和至少一个临近用户标识。每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据之间的距离在第一距离范围内。其中,地理位置数据之间的距离在第一距离范围内,可以理解为:地理位置数据之间的距离小于或等于所述第一距离范围的数值。所述第一距离范围可以是根据实际需要预先设定的,例如可以为100m、150m、250m等。当然,所述服务器还可以向用户提供设置所述第一距离范围大小的功能,并可以根据用户的设置来确定所述第一距离范围的大小。
在本实施例中,所述服务器可以提供有至少一个用户标识。例如,一个或多个用户可以在一个或多个客户端的应用程序中进行注册或登录操作;从而,所述一个或多个客户端可以获得所述一个或多个用户的用户标识,并可以向所述服务器发送所述一个或多个用户的用户标识;所述服务器可以接收所述一个或多个用户的用户标识。所述服务器提供的每个用户标识在当前时刻可以对应有地理位置数据。
如此,在本实施例的一个实施方式中,针对提供的每个用户标识,所述服务器可以使用距离计算公式,计算该用户标识在当前时刻对应的地理位置数据与接收的地理位置数据之间的距离;可以判断该距离是否在所述第一距离范围内;当该距离在所述第一距离范围内的条件下,可以将该用户标识作为所述第一用户标识集合中的临近用户标识。所述距离计算公式例如可以为S=R·arccos(cosb1·cosb2·cos(a1-a2)+sinb1·sinb2)。其中,S表示距离;R表示地球半径;a1表示所述参考地理位置数据中的经度数据;b1表示所述参考地理位置数据中的维度数据;a2表示该用户标识在当前时刻对应地理位置数据中的经度数据;b2表示该用户标识在当前时刻对应地理位置数据中的维度数据。当然,本领域技术人员应当能够理解,上述距离计算公式仅为示例,在实际上还可以有其它的公式或方法来计算距离。
或者,在本实施例的另一个实施方式中,地理位置编码可以用于表示地理位置。所述地理位置编码具体可以为将地理位置数据依据预设算法进行计算后产生的字符串。所述预设算法例如可以为去尾算法或GeoHash算法等。例如,地理位置数据(116.389550,39.928167)依据GeoHash算法进行计算后产生的地理位置编码可以为wx4g。
每个地理位置编码可以用于表示一个地理范围。通常地,每个地理位置编码的位数,与该地理位置编码表示的地理范围,反相关。即,每个地理位置编码的位数越多,该地理位置编码表示的地理范围越小,该地理位置编码描述的地理位置越精确。例如,地理位置编码GeoHash_A的位数可以为5位,地理位置编码GeoHash_B的位数可以为6位。那么,相对于地理位置编码GeoHash_A,地理位置编码GeoHash_B描述的地理位置更精确。
相对于一个地理位置编码,该地理位置编码的前缀可以表示更大的地理范围。另外,相对于该地理位置编码较多位数的前缀,该地理位置编码较少位数的前缀可以表示更大的地理范围。例如,一个地理位置编码可以为wx4g0ec1。那么,相对于该地理位置编码wx4g0ec1,该地理位置编码的前缀wx4g0e,可以表示更大的地理范围;相对于该地理位置编码较多位数的前缀wx4g0e,该地理位置编码较少位数的前缀wx4g,可以表示更大的地理范围。
根据两个或多个地理位置编码具有相同前缀的位数,所述服务器可以识别所述两个或多个地理位置编码所描述地理位置的远近程度。具体地,所述两个或多个地理位置编码具有相同前缀的位数越多,所述服务器可以识别所述两个或多个地理位置编码所描述地理位置较接近。相对应地,所述两个或多个地理位置编码具有相同前缀的位数越少,所述服务器可以识别所述两个或多个地理位置编码所描述地理位置较远。
如此,在本实施方式中,针对提供的每个用户标识,所述服务器可以计算该用户标识在当前时刻对应的地理位置数据的地理位置编码;可以计算接收的地理位置数据的地理位置编码。所述服务器例如可以使用去尾算法或GeoHash算法来计算地理位置编码。如此,针对提供的每个用户标识,所述服务器可以识别该用户标识在当前时刻对应的地理位置数据的地理位置编码与接收的地理位置数据的地理位置编码是否满足第一匹配规则;当满足第一匹配规则的条件下,可以将该用户标识作为所述第一用户标识集合中的临近用户标识。所述第一匹配规则可以为地理位置编码中具有相同前缀位数的数值,例如可以为7位、6位、或5位等。在实际过程中可以根据所述第一距离范围来灵活设定所述第一匹配规则中前缀位数的数值。具体地,在所述第一距离范围数值较小时,所述第一匹配规则中前缀位数的数值可以设置的较小;在所述第一距离较大时,所述第一匹配规则中前缀位数的数值可以设置的较大。
需要说明的是,在本实施例的一个实施方式中,所述服务器提供的每个用户标识在当前时刻对应的地理位置数据,可以是所述服务器在当前时刻接收到的地理位置数据。在本实施例的另一个实施方式中,所述服务器有可能无法恰好在当前时刻接收到每个用户标识对应的地理位置数据。所述服务器提供的每个用户标识可以对应有一个或多个地理位置数据。具体地,除去步骤S102中上传用户标识和地理位置数据的客户端以外,至少一个其它客户端还可以向所述服务器上传用户标识和地理位置数据。这里为了便于描述,可以将步骤S102中上传用户标识和地理位置数据的客户端作为第一客户端,可以将每个其它客户端作为第二客户端。每个第二客户端可以一次或多次向所述服务器上传用户标识和地理位置数据。所述服务器在接收到用户标识和地理位置数据后,可以将接收到地理位置数据作为接收到用户标识对应的地理位置数据。从而,所述服务器提供的每个用户标识可以对应有一个或多个地理位置数据。如此,针对提供的每个用户标识,所述服务器还可以从该用户标识对应的一个或多个地理位置数据中,选取最近接收到的地理位置数据,作为该用户标识在当前时刻对应的地理位置数据。
步骤S106:基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类。
在本实施例中,所述服务器可以基于所述第一用户标识集合中用户标识间的关联关系,对所述第一用户标识集合进行聚类分析,得到至少两个分类。当然,本领域技术人员应当能够理解,所述服务器还可以采用其它方法将所述第一用户标识集合划分为至少两个分类,这些其它方法也在本实施例的公开和保护范围内。在后续过程中,本实施例将结合聚类分析方法,介绍将所述第一用户标识集合划分为至少两个分类的实现方案,同时不排除将这些其它方法应用于本实施例的实现方案。
在本实施例中,用户标识间的关联关系表示了用户间的亲密关系,包括但不限于社交关联关系、媒介关联关系和资金关联关系等。例如,多个用户间可以具有社交关系,例如微博关注关系、支付宝好友关系、QQ好友关系、微信好友关系等;那么,所述多个用户的用户标识间可以具有社交关联关系。另举一例,多个用户使用过同一媒介,例如同一台电脑、同一部手机等;那么,所述多个用户的用户标识间可以具有媒介关联关系。另举一例,多个用户间可以具有资金关系,例如进行过转账、代付、亲密付、代订机票、信用卡还款等;那么,所述多个用户的用户标识间可以具有资金关联关系。
所述服务器可以基于所述第一用户标识集合中用户标识间的关联关系,来设置所述第一用户标识集合中用户标识间的关联系数;可以使用所述第一用户标识集合中用户标识间的关联系数,对所述第一用户标识集合进行聚类分析,得到至少两个分类。例如,当两个用户标识间具有社交关联关系时,可以设置所述两个用户标识间的关联系数为D1;当两个用户标识间具有媒介关联关系时,可以设置所述两个用户标识间的关联系数为D2;当两个用户标识间具有资金关联关系时,可以设置所述两个用户标识间的关联系数为D3;当两个用户标识间具有社交关联关系和媒介关联关系时,可以设置所述两个用户标识间的关联系数为D1+D2;当两个用户标识间具有社交关联关系和资金关联关系时,可以设置所述两个用户标识间的关联系数为D1+D3;当两个用户标识间具有媒介关联关系和资金关联关系时,可以设置所述两个用户标识间的关联系数为D2+D3;当两个用户标识间具有社交关联关系、媒介关联关系和资金关联关系时,可以设置所述两个用户标识间的关联系数为D1+D2+D3。
所述聚类算法可以为依据距离准则将一个数据集分割为不同分类的数学模型,以使得同一分类内的数据对象的相似性尽可能大,同时不在同一分类内的数据对象的差异性也尽可能地大。所述聚类算法包括但不限于K-MEANS、MEAN-SHIFT、SOM(Self OrganizingMaps)和FCM等聚类算法等。
请参阅图4。以下以K-MEANS聚类算法为例,详细介绍所述服务器对所述第一用户标识集合进行聚类分析的过程。当然,所述服务器还可以使用其它聚类算法对所述第一用户标识集合进行聚类分析。此外,本领域技术人员应当能够理解,此处的K-MEANS聚类算法步骤仅为示例,在实际中K-MEANS聚类算法步骤还可以有其它的变形或变化。
步骤S402:所述服务器将第一用户标识集合中接收的用户标识作为第一分类的聚类中心;可以将所述第一用户标识集合中的一个临近用户标识作为第二分类的聚类中心。
具体地,所述服务器可以将所述第一用户标识集合中的任意一个临近用户标识作为第二分类的聚类中心。当然,所述服务器还可以将所述第一用户标识集合中,与接收的用户标识的距离最远的临近用户标识作为第二分类的聚类中心。
步骤S404:针对所述第一用户标识集合中除去第一分类聚类中心和第二分类聚类中心以外的其它每个用户标识,所述服务器可以分别计算该用户标识与所述第一分类聚类中心之间的距离,以及与所述第二分类聚类中心之间的距离;在与所述第一分类聚类中心之间的距离小于或等于与所述第二分类聚类中心之间的距离的条件下,可以将该用户标识作为所述第一分类中的用户标识;在与所述第一分类聚类中心之间的距离大于与所述第二分类聚类中心之间的距离的条件下,可以将该用户标识作为所述第二分类中的用户标识。
步骤S406:针对所述第一分类中的每个用户标识,所述服务器可以计算该用户标识与所述第一分类中除去该用户标识以外的其它每个用户标识之间的距离,继而可以计算该用户标识与其它每个用户标识之间的距离之和;可以将所述第一分类中距离之和最小的用户标识,作为所述第一分类的新的聚类中心。相类似地,针对所述第二分类中的每个用户标识,所述服务器可以计算该用户标识与所述第二分类中除去该用户标识以外的其它每个用户标识之间的距离,继而可以计算该用户标识与其它每个用户标识之间的距离之和;可以将所述第二分类中距离之和最小的用户标识,作为所述第二分类的新的聚类中心。
例如,图5所示的第一用户标识集合可以包括用户标识Uid_A、Uid_B、Uid_C、Uid_D、Uid_E、Uid_F、Uid_G、Uid_H、Uid_I。用户标识Uid_A、Uid_B、Uid_C、Uid_D、Uid_E、Uid_F隶属于第一分类;用户标识Uid_A为所述第一分类的聚类中心。用户标识Uid_G、Uid_H、Uid_I隶属于第二分类;用户标识Uid_I为所述第二分类的聚类中心。用户标识Uid_A与用户标识Uid_B间的关联系数为4;相类似地,用户标识Uid_A与用户标识Uid_C间的关联系数为4;用户标识Uid_A与用户标识Uid_D间的关联系数为5,等等;
那么,以用户标识Uid_C为例,所述服务器可以计算用户标识Uid_C与用户标识Uid_A之间的距离为3;可以计算用户标识Uid_C与用户标识Uid_B之间的距离为1;可以计算用户标识Uid_C与用户标识Uid_D之间的距离为4;可以计算用户标识Uid_C与用户标识Uid_E之间的距离为5;可以计算用户标识Uid_C与用户标识Uid_F之间的距离为6。继而,所述服务器可以计算用户标识Uid_C与所述第一分类中其它每个用户标识之间的距离之和为3+4+1+5+6=19。
步骤S408:所述服务器可以计算标准测度函数。当满足一定条件时,例如所述标准测度函数收敛,则K-MEANS聚类算法终止;当不满足该条件时,则返回步骤S404。
具体地,所述标准测度函数例如可以为
其中,N可以为所述第一用户标识集合中用户标识的数量;K可以为所述第一用户标识集合的分类数量,此处具体可以为2;在第n个用户标识隶属于第k分类的条件下,r
nk的数值可以为1;在第n个用户标识不属于第k分类的条件下,r
nk的数值可以为0;u
k可以表示第k个分类的聚类中心。
步骤S108:以接收的用户标识所在的分类为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
在本实施例中,经过前述步骤S106,所述服务器可以将所述第一用户标识集合划分为至少两个分类。如此,所述服务器可以查找接收的用户标识所在的分类;可以将接收的用户标识所在的分类作为目标分类;可以确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。其中,所述目标分类可以包括一个或多个用户标识。所述对象可以包括商品、服务、商户等,所述商品例如可以包括电脑、数码产品等,所述服务例如可以包括话费充值、健康咨询等,所述商户例如可以包括餐馆、公交车站、电影院等。所述对象信息可以包括对象的名称、型号、价格、功能参数、外观、作用、地址、简介等中的一个或多个。例如,一个对象可以为金逸影视中心店。那么,该对象信息可以包括金逸影视中心店的地址、简介等。
在本实施例中,所述目标分类可以对应有至少一个历史对象信息。例如,所述目标分类可以对应一个用户群体,所述用户群体在某一餐馆进行过聚餐。那么,所述服务器可以将该餐馆的信息作为所述目标分类对应的历史对象信息。如此,所述服务器可以获取所述目标分类对应的历史对象信息,作为所述目标分类匹配的对象信息。
或者,在本实施例中,所述目标分类中的用户标识可以对应有至少一个历史对象信息。例如,所述目标分类可以包括张三的用户标识,张三在某一餐馆进行过消费。那么,所述服务器可以将该餐馆的信息作为张三的用户标识对应的历史对象信息。如此,所述服务器可以将所述目标分类中用户标识对应的历史对象信息,作为历史对象信息集合中的历史对象信息;可以从所述历史对象信息集合中选取至少一个历史对象信息,作为所述目标分类匹配的对象信息。具体地,所述服务器可以统计所述历史对象信息集合中的每个历史对象信息,在所述目标分类中对应的用户标识数量;可以选取对应用户标识数量大于或等于第一预设阈值的历史对象信息。所述第一预设阈值可以根据实际需要灵活设定,例如可以为3、5、10等。或者,所述服务器还可以统计所述历史对象信息集合中的每个历史对象信息,在所述目标分类中对应的用户标识数量;可以将每个历史对象信息对应的用户标识数量与所述目标分类中用户标识的数量进行数学运算;可以选取数学运算结果大于或等于第四预设阈值的历史对象信息。所述第四预设阈值可以根据实际需要灵活设定,例如可以为75%、80%等。所述数学运算包括但不限于加法、减法、乘法、除法等。
又或者,在本实施例中,所述服务器可以提供有对象信息集合。所述对象信息集合可以包括至少一个对象信息。例如,可以包括100、500、1000个对象信息。所述目标分类中的用户标识可以对应有至少一个历史对象信息。如此,所述服务器可以基于所述目标分类中用户标识对应的历史对象信息,使用推荐算法,从所述对象信息集合中选取所述目标分类匹配的对象信息。所述推荐算法例如可以为基于内容的推荐算法(Content-BasedRecommendations,CB)、或协同过滤推荐算法(Collaborative Filtering)等。例如,所述服务器可以从所述目标分类中用户标识对应的至少一个历史对象信息中,选取历史对象信息作为参考对象信息;可以基于所述参考对象信息,使用推荐算法,从所述信息集合中选取至少一个对象信息作为所述目标分类匹配的对象信息。需要说明的是,所述对象信息集合可以包括所述目标分类中用户标识对应的历史对象信息,还可以包括其它的对象信息。当然,所述对象信息集合还可以不包括所述目标分类中用户标识对应的历史对象信息,即,所述对象信息集合可以仅包括其它的对象信息。
在本实施例中,所述服务器可以确定所述目标分类匹配的至少一个对象信息;可以向前述步骤S102客户端发送所述至少一个对象信息。前述步骤S102客户端可以接收所述至少一个对象信息,可以展示所述至少一个对象信息。例如,可以以气泡形式、或卡片形式等任意适当形式展示所述至少一个对象信息。当然,所述服务器还可以向其它客户端发送所述至少一个对象信息。例如,除去包含接收的用户标识以外,所述目标分类还可以包括至少一个临近用户标识。那么,所述服务器还可以向所述目标分类中的临近用户标识对应的客户端发送所述至少一个对象信息。
在本实施例的一个实施方式中,为了使确定的用户群体更加准确,所述服务器还可以基于当前时刻和指定时间长度,确定至少一个采样时刻;可以分别获取接收的用户标识和每个临近用户标识,在每个采样时刻对应的地理位置数据;可以基于所述第一用户标识集合,确定第二用户标识集合;可以基于所述第二用户标识集合中用户标识间的关联关系,将所述第二用户标识集合划分为至少两个分类;可以以接收的用户标识所在的分类为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
在本实施方式中,所述指定时间长度可以是根据实际需要预先设定的,例如可以为20分钟、25分钟、35分钟等。当然,所述服务器还可以向用户提供设置所述指定时间长度大小的功能,并可以根据用户的设置来确定所述指定时间长度的大小。所述服务器可以以当前时刻为一个时刻边界,以当前时刻和所述指定时间长度之和为另一个时刻边界,确定时间段;可以从该时间段选取至少一个采样时刻。例如,选取5、10、20、100个采样时刻。具体地,所述服务器可以以固定时间间隔从该时间段选取至少一个采样时刻,所述固定时间间隔例如可以为1s、5s、15s等。当然,所述服务器还可以随机从该时间段选取至少一个采样时刻。例如,当前时刻可以为2017年6月18日15点00分,所述指定时间长度可以为20分钟。那么,所述服务器确定的时间段可以为2017年6月18日15点00分-2017年6月18日15点20分。
在本实施方式中,所述服务器可以获取所述第一用户标识集合中的每个用户标识在每个采样时刻对应的地理位置数据。即,所述服务器可以获取接收的用户标识,在每个采样时刻对应的地理位置数据;可以获取每个临近用户标识,在每个采样时刻对应的地理位置数据。所述服务器获取地理位置数据方式具体可以参照前述步骤S102。
在本实施方式中,所述第二用户标识集合可以包括接收的用户标识和至少一个相似路径用户标识。所述相似路径用户标识可以为在至少一个采样时刻对应的地理位置数据与接收的用户标识在该采样时刻对应的地理位置数据之间的距离,在第二距离范围内的临近用户标识。其中,地理位置数据之间的距离在第二距离范围内,可以理解为:地理位置数据之间的距离小于或等于所述第二距离范围的数值。所述第二距离范围可以是根据实际需要预先设定的,例如可以为5m、10m等。当然,所述服务器还可以向用户提供设置所述第二距离范围大小的功能,并可以根据用户的设置来确定所述第二距离范围的大小。
在本实施方式中,针对所述第一用户标识集合中的每个临近用户标识,所述服务器可以计算该临近用户标识在每个采样时刻对应的地理位置数据与接收的用户标识在该采样时刻对应的地理位置数据之间的距离,可以判断该距离是否在所述第二距离范围内,可以统计距离在所述第二距离范围内的采样时刻数量,作为该临近用户标识的统计采样时刻数量。继而,所述服务器可以基于统计采样时刻数量,从所述第一用户标识集合中选取至少一个临近用户标识,作为第二用户标识集合中的相似路径用户标识。例如,针对所述第一用户标识集合中的每个临近用户标识,当该临近用户标识的统计采样时刻数量大于第三预设阈值的条件下,可以将该临近用户标识作为所述第二用户标识集合中的相似路径用户标识。所述第一预设阈值可以根据实际需要灵活设定,例如可以为100、150等。另举一例,针对所述第一用户标识集合中的每个临近用户标识,可以将该临近用户标识的统计采样时刻数量与前述从时间段选取的采样时刻数量进行数学运算;当数学运算结果大于或等于第四预设阈值的条件下,可以将该临近用户标识作为所述第二用户标识集合中的相似路径用户标识。所述第四预设阈值可以根据实际需要灵活设定,例如可以为75%、80%等。所述数学运算包括但不限于加法、减法、乘法、除法等。
或者,在本实施方式中,针对所述第一用户标识集合中的每个临近用户标识,所述服务器可以识别该临近用户标识在每个采样时刻对应的地理位置数据的地理位置编码与接收的用户标识在该采样时刻对应的地理位置数据的地理位置编码是否满足第二匹配规则,可以统计满足第二匹配规则的采样时刻数量,作为该临近用户标识的统计采样时刻数量。继而,所述服务器可以基于统计采样时刻数量,从所述第一用户标识集合中选取至少一个临近用户标识,作为第二用户标识集合中的相似路径用户标识。所述第二匹配规则可以为地理位置编码中具有相同前缀位数的数值,在实际过程中可以根据所述第二距离范围来灵活设定所述第二匹配规则中前缀位数的数值。
例如,所述第一用户标识集合可以包括接收的用户标识Uid_Refer、临近用户标识Uid_A、临近用户标识Uid_B、临近用户标识Uid_C。所述服务器可以确定3个采样时刻,具体包括ST_1、ST_2、ST_3。
针对所述第一用户标识集合中的临近用户标识Uid_A,所述服务器可以计算该临近用户标识Uid_A在采样时刻ST_1对应的地理位置数据POI_Uid_A_ST_1,与接收的用户标识Uid_Refer在采样时刻ST_1对应的地理位置数据POI_Uid_Refer_ST_1之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_A在采样时刻ST_2对应的地理位置数据POI_Uid_A_ST_2,与接收的用户标识Uid_Refer在采样时刻ST_2对应的地理位置数据POI_Uid_Refer_ST_2之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_A在采样时刻ST_3对应的地理位置数据POI_Uid_A_ST_3,与接收的用户标识Uid_Refer在采样时刻ST_3对应的地理位置数据POI_Uid_Refer_ST_3之间的距离,并可以判断该距离在第二距离范围内。
继而,所述服务器可以统计距离在所述第二距离范围内的采样时刻数量为3;可以将统计的采样时刻数量3与前述确定的采样时刻数量3进行除法运算,得到除法运算的结果100%。除法运算的结果100%大于第二预设阈值70%。从而,所述服务器可以将该临近用户标识Uid_A作为所述第二用户标识集合中的相似路径用户标识。
相类似地,针对所述第一用户标识集合中的临近用户标识Uid_B,所述服务器可以计算该临近用户标识Uid_B在采样时刻ST_1对应的地理位置数据POI_Uid_B_ST_1,与接收的用户标识Uid_Refer在采样时刻ST_1对应的地理位置数据POI_Uid_Refer_ST_1之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_B在采样时刻ST_2对应的地理位置数据POI_Uid_B_ST_2,与接收的用户标识Uid_Refer在采样时刻ST_2对应的地理位置数据POI_Uid_Refer_ST_2之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_B在采样时刻ST_3对应的地理位置数据POI_Uid_B_ST_3,与接收的用户标识Uid_Refer在采样时刻ST_3对应的地理位置数据POI_Uid_Refer_ST_3之间的距离,并可以判断该距离在第二距离范围外。
继而,所述服务器可以统计距离在所述第二距离范围内的采样时刻数量为2;可以将统计的采样时刻数量2与前述确定的采样时刻数量3进行除法运算,得到除法运算的结果66.7%。除法运算的结果66.7%小于第二预设阈值70%。从而,所述服务器可以忽略该临近用户标识Uid_B。
相类似地,针对所述第一用户标识集合中的临近用户标识Uid_C,所述服务器可以计算该临近用户标识Uid_C在采样时刻ST_1对应的地理位置数据POI_Uid_C_ST_1,与接收的用户标识Uid_Refer在采样时刻ST_1对应的地理位置数据POI_Uid_Refer_ST_1之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_C在采样时刻ST_2对应的地理位置数据POI_Uid_C_ST_2,与接收的用户标识Uid_Refer在采样时刻ST_2对应的地理位置数据POI_Uid_Refer_ST_2之间的距离,并可以判断该距离在第二距离范围内;可以计算该临近用户标识Uid_C在采样时刻ST_3对应的地理位置数据POI_Uid_C_ST_3,与接收的用户标识Uid_Refer在采样时刻ST_3对应的地理位置数据POI_Uid_Refer_ST_3之间的距离,并可以判断该距离在第二距离范围内。
继而,所述服务器可以统计距离在所述第二距离范围内的采样时刻数量为3;可以将统计的采样时刻数量3与前述确定的采样时刻数量3进行除法运算,得到除法运算的结果100%。除法运算的结果100%大于第二预设阈值70%。从而,所述服务器可以将该临近用户标识Uid_C作为所述第二用户标识集合中的相似路径用户标识。
在本实施方式中,所述服务器基于所述第二用户标识集合中用户标识间的关联关系,将所述第二用户标识集合划分为至少两个分类,可以与前述基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类的过程,相类似。二者可以对照进行解释。
在本实施例中,例如,张三与朋友李四、王五共同出行。所述服务器可以接收张三持有客户端上传的张三的用户标识和地理位置数据;可以基于张三的地理位置数据,确定出包含有张三的用户标识、李四的用户标识和王五的用户标识的目标分类;可以确定所述目标分类匹配的至少一个对象信息;可以向张三持有的客户端发送所述至少一个对象信息。如此,张三的用户体验可以是:在与朋友李四、王五共同出行时,自身持有客户端可以自动确定出自身所在的用户群体,并可以展示该用户群体匹配的对象信息。
在本实施例中,服务器可以接收用户标识和地理位置数据;可以基于接收的地理位置数据,确定第一用户标识集合;可以基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;可以以接收的用户标识所在的分类为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。在本实施例中,所述目标分类可以对应一个用户群体,所述用户群体可以为接收的用户标识所标识的用户所在的用户群体。所述服务器可以获取所述用户群体匹配的至少一个对象信息,可以返回所述至少一个对象信息。
另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
请参阅图6。本说明书实施例提供一种服务器。所述服务器可以包括通信组件和处理器。
在本实施例中,所述通信组件可以按任何适当的方式实现,例如,有线网卡、无线网卡、蓝牙模块、红外收发模块、超宽带通信模块、以及紫蜂协议通信模块等。所述通信组件可以用于建立通信连接并进行数据传输;
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施例中,所述处理器可以用于接收用户标识和地理位置数据;其中,所述地理位置数据与所述用户标识相对应;基于接收的地理位置数据,确定第一用户标识集合;其中,所述第一用户标识集合包括接收的用户标识和至少一个临近用户标识;每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据间的距离在第一距离范围内;基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;以接收的用户标识所在的分类作为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
本说明书实施例公开的服务器,其通信组件和处理器实现的具体功能,可以与本说明书中前述实施例对照进行解释。
请参阅图7。本说明书实施例还提供一种信息推送装置。所述装置包括接收单元702、第一确定单元704、划分单元706、第二确定单元708。
接收单元702,可以用于接收用户标识和地理位置数据;其中,所述地理位置数据与所述用户标识相对应;
第一确定单元704,可以用于基于接收的地理位置数据,确定第一用户标识集合;其中,所述第一用户标识集合包括接收的用户标识和至少一个临近用户标识;每个临近用户标识在当前时刻对应的地理位置数据与接收的地理位置数据间的距离在第一距离范围内;
划分单元706,可以用于基于所述第一用户标识集合中用户标识间的关联关系,将所述第一用户标识集合划分为至少两个分类;
第二确定单元708,可以用于以接收的用户标识所在的分类作为目标分类,确定所述目标分类匹配的至少一个对象信息,以便于返回所述至少一个对象信息。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务器实施例和信息推送装置实施例而言,由于其基本相似于信息推送方法实施例,所以描述的比较简单,相关之处参见信息推送实施例的部分说明即可。
另外,可以理解的是,所属领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到本说明书文件中列举的部分或全部实施例之间可以组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。