信息处理方法及计算机可读存储介质与流程

文档序号:18900550发布日期:2019-10-18 21:53阅读:187来源:国知局
信息处理方法及计算机可读存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种信息处理方法及计算机可读存储介质。



背景技术:

信息推送是将用户感兴趣的有效信息推送给用户的一种方式,比如,将用户感兴趣的电影资讯、最新的商品优惠信息、及附近的商业活动资讯等信息等推送给用户。为了提高信息推送的有效性,如何从大量的信息中筛选出不同用户各自感兴趣的信息则变成了亟待解决的问题。

目前的信息筛选方式,通常会将用户的订阅信息,比如订阅关键词,与商家发布的消息进行相似度比较,筛选出最相似的前几条消息,作为待推送给用户的消息。但这种方式需要将多个商家的消息分别与多个用户的需求轮次一一进行相似度计算,导致信息处理效率低。



技术实现要素:

基于此,有必要针对信息处理效率低的技术问题,提供一种信息处理方法、装置、计算机可读存储介质和计算机设备。

一种信息处理方法,包括:

获取查询请求以及所述查询请求对应的至少一个第一编码数据;

在索引树的至少一目标节点存储所述查询请求;所述目标节点,在经过所述索引树的根节点和存储所述第一编码数据的第一叶子节点的至少一路径上;

获取待推送的推广信息对应的第二编码数据;

确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径;

当确定的所述路径包括所述目标节点时,将所述推广信息作为响应所述查询请求的候选推广信息。

在一个实施例中,所述方法还包括:

确定所述查询请求所指示的有效时间段;

当所述有效时间段为历史时间段时,清除所述目标节点中存储的所述查询请求。

在一个实施例中,所述确定经过所述索引树的根节点和存储第二编码数据的第二叶子节点的路径,包括:

当从所述索引树的历史编码数据中查找到所述第二编码数据时,确定存储所述第二编码数据的至少一个第二叶子节点;

依据各所述第二叶子节点,从所述索引树的根节点开始,分别对所述索引树进行自顶向下的访问,直至访问至相应的第二叶子节点;

依据访问过程中所经历的所述索引树中的节点,确定与各所述第二叶子节点对应的路径。

一种信息处理装置,包括:

获取模块,用于获取查询请求以及所述查询请求对应的至少一个第一编码数据;

存储模块,用于在索引树的至少一目标节点存储所述查询请求;所述目标节点,在经过所述索引树的根节点和存储所述第一编码数据的第一叶子节点的至少一路径上;

所述获取模块还用于获取待推送的推广信息对应的第二编码数据;

确定模块,用于确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径;

所述确定模块还用于当确定的所述路径包括所述目标节点时,将所述推广信息作为响应所述查询请求的候选推广信息。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取查询请求以及所述查询请求对应的至少一个第一编码数据;

在索引树的至少一目标节点存储所述查询请求;所述目标节点,在经过所述索引树的根节点和存储所述第一编码数据的第一叶子节点的至少一路径上;

获取待推送的推广信息对应的第二编码数据;

确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径;

当确定的所述路径包括所述目标节点时,将所述推广信息作为响应所述查询请求的候选推广信息。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取查询请求以及所述查询请求对应的至少一个第一编码数据;

在索引树的至少一目标节点存储所述查询请求;所述目标节点,在经过所述索引树的根节点和存储所述第一编码数据的第一叶子节点的至少一路径上;

获取待推送的推广信息对应的第二编码数据;

确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径;

当确定的所述路径包括所述目标节点时,将所述推广信息作为响应所述查询请求的候选推广信息。

上述信息处理方法、装置、计算机可读存储介质和计算机设备,获取查询请求后确定该查询请求对应的至少一个第一编码数据。在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上的目标节点中存储该查询请求,这样就可依据第一编码数据快速地在索引树中标记该查询请求。当存在待推送的推广信息时,根据该推广信息对应的第二编码数据,确定经过该索引树的根节点和存储第二编码数据的第二叶子节点的路径。当确定的路径包括存储有查询请求的目标节点时,说明这些目标节点所存储的查询请求会被这条推广信息所影响,因而可将该推广信息作为响应查询请求的候选推广信息。这样,在进行推广信息和查询请求的匹配处理时,可依据构建好的索引树,以编码数据为基础进行路径匹配,并按照推广信息所对应的路径进行剪枝,过滤掉不被该推广信息影响的查询请求,从而可以大大降低信息匹配次数和系统计算时间,提高了信息处理效率。

附图说明

图1为一个实施例中信息处理方法的应用环境图;

图2为一个实施例中信息处理方法的流程示意图;

图3为一个实施例中获取查询请求以及查询请求对应的至少一个第一编码数据步骤的流程示意图;

图4为一个实施例中采用z-order曲线对空间位置点进行编码的结构示意图;

图5为一个实施例中索引树的索引结构图;

图6为一个实施例中包括目标节点的索引树的结构示意图;

图7为一个实施例中推送目标推广信息至查询请求对应的终端步骤的流程示意图;

图8为一个实施例中构建索引树的步骤的流程示意图;

图9为一个实施例中基于地理社交文本数据的推广信息投放框架图;

图10为一个实施例中信息查询界面的交互界面示意图;

图11为一个实施例中信息处理装置的结构框图;

图12为另一个实施例中信息处理装置的结构框图;

图13为一个实施例中计算机设备的结构框图。

具体实施方式

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

图1为一个实施例中信息处理方法的应用环境图。参照图1,该信息处理方法应用于信息处理系统。该信息处理系统包括终端110、服务器120和推广信息源平台130。终端110和服务器120通过网络连接;服务器120和推广信息源平台130通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。推广信息源平台130具体可包括多种来源的平台,每个推广信息源平台具体可通过一种或多种计算机设备实现。计算机设备可以是终端或服务器。

需要说明的是,终端110上运行有与服务器120进行通信的应用程序,该应用程序和服务器可共同构成推广信息投放平台,用于投放、推送、及呈现推广信息。而推广信息源平台130,则用于生成和发布推广信息。推广信息源平台130产生推广信息,并将推广信息发送至服务器120,服务器120通过执行该信息处理方法,将匹配的推广信息通过应用程序推送至相应的终端110,用户可通过终端110获取推送的推广信息。

如图2所示,在一个实施例中,提供了一种信息处理方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该信息处理方法具体包括如下步骤:

s202,获取查询请求以及查询请求对应的至少一个第一编码数据。

其中,查询请求是用户触发的用于查询推广信息的请求。编码数据是对初始数据进行编码处理所得到的数据,具体可以是编码值或编码符等。第一编码数据是对查询请求所对应的初始数据进行编码处理得到的数据。其中,查询请求所对应的初始数据具体可是查询请求所携带的数据或查询请求所指向的数据等。

具体地,服务器可接收终端发送的查询请求,并对查询请求所携带的数据或查询请求所指向的数据进行编码处理,得到与该查询请求对应的至少一个编码数据。

在一个实施例中,服务器可对查询请求所包括的内容进行分析,确定查询请求所对应的查询文本和目标位置信息。进而分别对查询文本和目标位置信息进行编码,得到第一文本编码数据和第一空间编码数据,根据第一文本编码数据和第一空间编码数据确定与查询请求对应的第一编码数据。

在一个实施例中,查询请求所对应的查询文本所包括的关键词的数量可以是一个也可以是多个,查询请求所对应的目标位置信息具体可包括一个空间位置点也可包括多个空间位置点。服务器可对关键词进行编码得到第一文本编码数据;对空间位置点的坐标进行编码得到第一空间编码数据。因而,相对应的第一文本编码数据的数量可以是一个也可以是多个;相对应的第一空间编码数据的数量可以是一个也可以是多个。相应地,根据第一文本编码数据和第一空间编码数据所确定的第一编码数据的数量也可以是一个或多个。

在一个实施例中,当查询请求所查询的推广信息对应同一类型的推广信息,比如都是查询酒店信息的,那么服务器对查询请求所包括的内容进行分析时,可仅获取查询请求所对应的目标位置信息,从而确定对应的第一编码数据。

在一个实施例中,当查询请求所查询的推广信息对应同一区域的推广信息,比如是查询aa广场的酒店、饭店、电影院等的优惠券信息,那么服务器对查询请求所包括的内容进行分析时,可仅获取查询请求所对应的查询文本,也就是查询的关键词,从而确定对应的第一编码数据。

在一个实施例中,步骤s202,也就是获取查询请求以及查询请求对应的至少一个第一编码数据的步骤具体包括以下步骤:

s302,获取查询请求。

在一个实施例中,终端上运行有应用程序,可通过应用程序展示信息查询界面。用户可在该信息查询界面中录入文本或语音等内容,终端根据录入的内容生成查询请求,并通过该应用程序将该查询请求发送至服务器,服务器接收该查询请求。s304,根据查询请求所包括的内容,确定相应的查询文本和目标位置信息。

具体地,服务器可对查询请求所包括的内容进行分析,确定查询请求所对应的查询文本和目标位置信息。在一个实施例中,如果查询请求所包括的内容为语音内容时,服务器可将语音内容转化成文本内容,从而依据文本内容确定查询文本和目标位置信息。

在一个实施例中,查询请求携带查询文本和目标位置信息,也就是查询请求所包括的文本内容包含查询文本和目标位置信息。这样,服务器可直接从查询请求中提取出包括关键词的查询文本,提取出文本内容中的位置信息作为目标位置信息。比如,当查询请求包括“查找南山区aa广场的饭店的相关信息”的内容时,服务器可提取出“饭店”作为查询文本、“南山区aa广场”作为目标位置信息。

在一个实施例中,服务器还可获取触发查询请求的终端所在的位置信息,并根据该位置信息和查询请求的内容确定查询请求所指向的目标位置信息。比如,当查询请求包括“附近的饭店”的内容时,服务器可获取用户的定位位置,将该定位位置3公里内的区域,都作为目标区域,将目标区域所包括的位置信息作为目标位置信息。

s306,根据目标位置信息确定对应的至少一个第一空间编码数据、以及根据查询文本确定对应的至少一个第一文本编码数据。

具体地,服务器可预先设置对空间位置点的坐标进行编码的规则,并依据该编码规则确定目标位置信息所包括的空间位置点对应的第一空间编码数据。同样地,服务器也可预先设置对文本内容进行编码的规则,并依据该编码规则确定查询文本所包括的关键词对应的第一文本编码数据。可以理解,对空间位置点的坐标进行编码的编码规则、与对文本内容进行编码的编码规则可以是相同的编码规则,也可以是不同的编码规则,本申请实施例在此不做限定。

在一个实施例中,服务器还可依据预先设置的坐标点与空间编码数据的对应关系,确定目标位置信息对应的第一空间编码数据。依据预先设置的关键词和文本编码数据的对应关系,确定查询文本所包括的关键词对应的第一文本编码数据。

在一个实施例中,服务器可通过迭代算法,将整个空间区域划分成多个子区域,每个子区域中包含至多一个空间位置点。其中,一个空间位置点具体可以是一个定位点。比如,服务器可通过二叉树,利用迭代的方式,每次将一个大的空间区域划分成多个子区域(比如4个),对所得到的子区域也采取同样的划分方式,直到最后所划分的最小的空间区域中包括至多一个空间位置点为止。这样,将不同的空间位置点转换成不同的编码数据,可完成对整个空间区域的编码。

在一个实施例中,参考图4,服务器可采用z-order(z序)曲线对划分出的各个小方格进行编码。其中,各个小方格也可认为是不同的空间位置点。如图4所示,服务器可对整个空间区域所包括的各个小方格按照从左至右、从上至下的方式,按z路径依次遍历所有的小方格,并按遍历的顺序为其赋予对应的编码数据,比如数字1-16。这样,服务器就可先确定目标位置信息所包括的空间位置点,再将所包括的空间位置点所对应的编码数据作为该查询请求对应的第一空间编码数据。

可以理解,服务器对整个空间区域的划分方式也可采用其他的划分方式,比如预先确定单个空间位置点所占据的最小方格的尺寸,服务器可按照相应的尺寸直接将整个空间区域划分成若干个小方格等。本申请实施例在此不做限定。再者,服务器对单个空间位置点的编码方式也可采用其他的编码方式,比如直接按一字型曲线遍历所有的小方格,从而按遍历的顺序依次赋予不同的编码值等。只要能实现将各个空间位置点进行编码得到各自对应的空间编码数据的编码方式均可,本申请实施例在此不做限定。

在一个实施例中,服务器可依据历史查询请求所包括的所有历史查询文本,生成关键词集合,对该关键词集合中的各个关键词分别进行编码,得到对应的文本编码数据。这样,服务器就可先确定查询请求所包括的查询文本,再将查询文本所包括的关键词对应的文本编码数据作为该查询请求对应的第一文本编码数据。

在一个实施例中,服务器可对查询文本进行分词处理,将分词得到的词依次与关键词集合中的关键词比较,将关键词集合中相匹配的关键词作为查询文本所对应的关键词。比如,假设关键词集合包括[美食、酒店、有趣、优惠券、折扣],查询文本为“附近哪些酒店有优惠?”那么将该查询文本分词后得到“附近”、“哪些”、“酒店”及“优惠”,从关键词集合中查找与分词得到的词相匹配的关键词,比如“酒店”和“优惠券”,其中,“优惠”和“优惠券”可认为是同义词,是相匹配的。因而,服务器可将“酒店”和“优惠券”所对应的文本编码数据作为与查询文本对应的第一文本编码数据。

在一个实施例中,服务器可依据各个关键词出现的频率将关键词区分为频繁词和非频繁词。也就是说,可预先设置一个频率阈值,出现频率高于该频率阈值的关键词即可称作频繁词,否则为非频繁词。服务器可为每个频繁词分别设置对应的文本编码数据,全部非频繁词共用一个文本编码数据,这样可大大提高编码效率。

s308,组合拼接第一空间编码数据和第一文本编码数据,得到查询请求对应的至少一个第一编码数据。

具体地,服务器可对至少一个第一空间编码数据和至少一个第一文本编码数据进行组合,通过拼接第一空间编码数据和第一文本编码数据,得到对应的第一编码数据。拼接的顺序在此不做限定,比如,可将第一空间编码数据作为前缀、第一文本编码数据作为后缀进行拼接;也可将可将第一文本编码数据作为前缀、第一空间编码数据作为后缀进行拼接。

举例说明,当根据目标位置信息所确定的空间位置点包括a、b和c时,与空间位置点a对应的编码值为0001、与空间位置点b对应的编码值为0010、与空间位置点c对应的编码值为0011;当查询请求包括的查询文本包括关键词a和b时,与关键词a对应的编码值为1000、与关键词b对应的编码值为1100。那么,组合拼接空间位置点和关键词,可以得到以下的组合及对应的第一编码数据:“关键词a、空间位置点a”及对应的第一编码数据“10000001”、“关键词a、空间位置点b”及对应的第一编码数据“10000010”、“关键词a、空间位置点c”及对应的第一编码数据“10000011”、“关键词b、空间位置点a”及对应的第一编码数据“11000001”、“关键词b、空间位置点b”及对应的第一编码数据“11000010”、“关键词b、空间位置点c”及对应的第一编码数据“11000011”。

上述实施例中,通过对查询请求对应的空间数据和文本数据分别进行编码,得到对应的空间编码数据和文本编码数据,从而从地理位置角度和文本内容角度彻底挖掘出查询请求所隐含的信息,进而可通过索引树,依据由空间编码数据和文本编码数据共同确定的编码数据来准确地匹配对应的推广信息。

s204,在索引树的至少一目标节点存储查询请求;目标节点,在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上。

其中,索引树是用于检索、且呈现树形结构的数据库或其他存储装置,比如二叉树或多叉树等。索引树通常包括根节点、非叶子节点和叶子节点。其中,根节点是索引树最顶端的节点;叶子节点是没有子节点的节点;非叶子节点是索引树中除根节点外的有子节点的节点。

目标节点是索引树中存储第一编码数据的至少一个第一叶子节点或至少一个第一叶子节点的祖先节点。其中,祖先节点是指该叶子节点的父节点、或父节点的父节点等,本申请实施例所提及的祖先节点也就是从根节点到该第一叶子节点的路径所包括的非叶子节点。

具体地,当服务器获取查询请求对应的第一编码数据时,可对于每一个第一编码数据,确定索引树中存储该第一编码数据的第一叶子节点。服务器可从在经过索引树的根节点至第一叶子节点的路径所包括的节点中筛选出至少一个目标节点,并将该查询请求存储至目标节点中。也就是在目标节点中标记该查询请求。其中,目标节点中存储的查询请求,具体可包括该查询请求的请求标识、该查询请求所对应的查询文本和目标位置信息、或者该查询请求对应的用户标识等中的至少一种。

在一个实施例中,步骤s204之前,该信息处理方法还包括:获取预构建的索引树;索引树中的叶子节点用于存储历史查询请求对应的历史编码数据;当从历史编码数据中查找到第一编码数据时,确定存储第一编码数据的至少一个第一叶子节点;依据各第一叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第一叶子节点;根据访问过程中所经历的节点,确定与查询请求对应的目标节点。

在一个实施例中,服务器可获取预先依据历史查询请求所构建的索引树。该索引树的叶子节点用于存储历史查询请求对应的历史编码数据。其中,一个叶子节点用于存储一个历史编码数据。关于如何确定历史查询请求所对应的历史编码数据的详细编码内容可参考前述实施例中关于获取查询请求对应的至少一个第一编码数据步骤中的编码内容,在此不再赘述。

进一步地,当服务器获取预先构建的索引树后,可从索引树的叶子节点所存储的历史编码数据中查找第一编码数据,当查找到第一编码数据后,确定存储该第一编码数据的第一叶子节点。服务器可从至少一个第一叶子节点的祖先节点中,确定与查询请求对应的目标节点。也就是,服务器可依据第一编码数据对索引树进行自顶向下的访问,从访问路径所包括的节点中确定目标节点。

上述实施例中,服务器可从索引树的根节点至存储第一编码数据的第一叶子节点的路径所包括的节点中,快速确定与相应查询请求对应的目标节点。

在一个实施例中,与查询请求对应的目标节点为索引树中存储第一编码数据的第一叶子节点的祖先节点。可以理解,与查询请求对应的目标节点具体可以是一个或至少一个第一叶子节点共同的祖先节点。

参考图5,图5为一个实施例中索引树的索引结构图。如图5所示,该索引树示例性的为满二叉树,共包括16个叶子节点。其中每个叶子节点中都存储对应的编码数据,也可称作空间文本键值。对于查询请求q而言,该查询请求q对应的编码数据包括存储在第一叶子节点9-15中的编码数据,第一叶子节点9-15所对应的祖先节点为非叶子节点a、b、c、d、e、f和g。从与第一叶子节点对应的祖先节点中确定目标节点可以有多种情况,比如。服务器可将非叶子节点a、b、c和d作为该查询请求所对应的目标节点、将非叶子节点e和f作为该查询请求所对应的目标节点、将非叶子节点a、b和f作为该查询请求所对应的目标节点、将非叶子节点e、c和d作为该查询请求所对应的目标节点、或者将非叶子节点g作为该查询请求所对应的目标节点等。服务器可从多种选择方式中选择一组合适的节点作为与第一叶子节点9-15对应的目标节点,并将该查询请求存储至至少一各目标节点中。

在一个实施例中,目标节点满足第一条件和第二条件;第一条件包括:至少一目标节点,覆盖全部第一叶子节点,且覆盖最少数量的非第一叶子节点的叶子节点;第二条件包括:满足第一条件的目标节点的数量最少化。

其中,目标节点覆盖叶子节点是指该目标节点为该叶子节点的祖先节点,在二叉树上呈现出覆盖的形式。也就是从索引树的根节点至该叶子节点的路径包括该目标节点。非第一叶子节点的叶子节点是指二叉树中除第一叶子节点外的其他的叶子节点。

具体地,为减少查询请求存储的冗余,服务器可从目标节点的多种可能方式中选择较优的一种。其中较优的方式如下:服务器所选中的目标节点是满足以下两个条件:第一条件具体包括:至少一个目标节点,覆盖全部第一叶子节点,且覆盖最少数量的其他的叶子节点。当该索引树为满二叉树时,覆盖最少数量的其他的叶子节点中所提及的最少数量具体可以是零或一,也就是至多有一个节点的冗余。第二条件具体包括:满足第一条件的目标节点的数量最少化。也就是从满足第一条件的节点中,选择使得节点的数量最少的一组节点作为目标节点。

参考图6,图6为一个实施例中包括目标节点的索引树的结构示意图。如图6所示,该索引树示例性的为满二叉树,共包括16个叶子节点。其中每个叶子节点中都存储对应的编码数据,也可称作空间文本键值。对于查询请求q1而言,该查询请求q1对应的编码数据包括存储在第一叶子节点9-14中的编码数据,那么相应的,服务器可选择满足上述两个条件的非叶子节点n11和n12的作为目标节点。对于查询请求q2而言,该查询请求q2对应的编码数据包括存储在第一叶子节点5-8中的编码数据,那么相应的,服务器可选择满足上述两个条件的非叶子节点n2作为目标节点,从而将查询请求q2存储至非叶子节点n2中。

在一个实施例中,服务器也可从满足第一条件的节点中,随机选择一组节点作为目标节点。

上述实施例中,目标节点满足上述两个条件,这样既能确保从索引树的根节点至第一叶子节点的路径包括存储有该查询请求的目标节点,又能减少查询请求的存储冗余。

在一个实施例中,对于某个第一叶子节点,与该查询请求对应的所有第一叶子节点中不存在与该第一叶子节点相关的兄弟节点时,可将该第一叶子节点作为该查询请求的目标节点,在该第一叶子节点中存储该查询请求。其中,与第一叶子节点相关的兄弟节点是指这个节点和第一叶子节点互为兄弟节点。兄弟节点是指两个或两个以上的节点具有同一个父节点的节点。对于兄弟节点也是第一叶子节点的第一叶子节点,服务器可将相应的两个或两个以上的第一叶子节点共同的祖先节点作为目标节点。

继续参考图5,对于第一叶子节点9-14,它们的兄弟节点均为第一叶子节点。而第一叶子节点15,它的兄弟节点不是第一叶子节点,服务器可直接将查询请求q存储至第一叶子节点15中。对于第一叶子节点9-14,服务器可将查询请求存储至第一叶子节点9-14所对应的祖先节点中,第一叶子节点9-14所对应的祖先节点包括非叶子节点a、b、c、e、f和g。服务器可从与第一叶子节点9-14对应的祖先节点中筛选出目标节点,比如,将非叶子节点a、b和c作为该查询请求所对应的目标节点、将非叶子节点e和c作为该查询请求所对应的目标节点等。服务器可从多种选择方式中选择一组合适的节点作为与第一叶子节点9-14对应的目标节点,并将该查询请求存储至各目标节点中。

在一个实施例中,为减少查询请求存储的冗余,服务器可从目标节点的多种可能方式中选择较优的一种。具体地,服务器可将第一叶子节点中,兄弟节点不是第一叶子节点的节点作为该查询请求对应的目标节点。对于除了作为目标节点的第一叶子节点外的其他第一叶子节点,服务器可将覆盖全部其他第一叶子节点的数量最少的非叶子节点作为目标节点。比如,图5中,服务器可将节点e、c和叶子节点15作为目标节点。这样所确定的目标节点不覆盖除第一叶子节点外的其他的叶子节点,可完全避免冗余。

s206,获取待推送的推广信息对应的第二编码数据。

其中,推广信息是待传播的数据,推广信息具体可以是文本数据、媒体数据、链接地址、或产品对象等,更具体些,推广信息比如可以是公告、广告、公益宣导、新闻、电子优惠券等。第二编码数据是对推广信息对应的初始数据进行编码所得到的数据。其中,推广信息所对应的初始数据具体可是推广信息所属的推广源对应的源位置和/或推广信息对应的内容文本等。

具体地,服务器可获取推广信息源平台上报的推广信息,并对推广信息所属的推广源对应的源位置和/或推广信息对应的内容文本进行编码处理,得到与该推广信息对应的至少一个第二编码数据。

在一个实施例中,服务器可对推广信息所包括的内容进行分析,确定推广信息所属的推广源对应的源位置、以及推广信息对应的内容文本。其中,推广信息所属的推广源对应的源位置具体可以是推广信息源平台所在的位置,比如,当推广信息为广告时,该源位置具体可以是发布这条广告的商家。进而服务器可分别对源位置和内容文本进行编码,得到第二空间编码数据和第二文本编码数据,根据第二空间编码数据和第二文本编码数据确定与推广信息对应的至少一个第二编码数据。

在一个实施例中,推广信息所对应的内容文本所包括的关键词的数量可以是一个也可以是多个,推广信息所对应的源位置通常包括一个空间位置点,当然若该推广信息源平台占地面积较大,也可包括多个空间位置点,本申请实施例在此不做限定。服务器可对关键词进行编码得到第二文本编码数据;对空间位置点的坐标进行编码得到第二空间编码数据。因而,相对应的第二文本编码数据的数量可以是一个也可以是多个;相对应的第二空间编码数据的数量可以是一个也可以是多个。相应地,根据第二空间编码数据和第二文本编码数据所确定的第二编码数据的数量也可以是一个或多个。

在一个实施例中,对于不同推广信息源平台所发布的推广信息,该推广信息所对应的源位置通常是一样的。对于某条推广信息,依据该推广信息对应的源位置和内容文本所得到的第二编码数据,通常可以代表该推广信息。

在一个实施例中,步骤s206,也就是获取待推送的推广信息对应的第二编码数据的步骤具体包括以下步骤:获取待推送的推广信息;根据推广信息所包括的内容,确定推广信息所属的推广源对应的源位置、及推广信息对应的内容文本;确定源位置对应的第二空间编码数据、及内容文本对应的第二文本编码数据;拼接第二空间编码数据和第二文本编码数据,得到推广信息对应的第二编码数据。

具体地,服务器可获取推广信息源平台上报的推广信息,并根据该推广信息所属的推广源确定推广源所在的源位置,从推广信息所包括的内容中提取出对应的内容文本。其中,推广源也就是推广信息源平台。服务器可依据预先设置对空间位置点的坐标进行编码的规则,或者坐标点与空间编码数据的对应关系,确定源位置对应的第二空间编码数据。服务器可依据预先设置对文本内容进行编码的规则,或者关键词和文本编码数据的对应关系,确定内容文本所包括的关键词对应的至少一个第二文本编码数据。

进一步地,服务器可组合拼接第二空间编码数据和第二文本编码数据,得到推广信息对应的第二编码数据。比如,当确定的与源位置d对应的编码值为0100,与内容文本所包括的关键词c和d所对应的编码值分别是1110和1111时,那么组合拼接空间位置点和关键词,可以得到以下的组合及对应的第二编码数据:“关键词c、空间位置点d”及对应的第二编码数据“11100100”、“空关键词d、空间位置点d”及对应的第二编码数据“11110100”。

可以理解,查询请求所对应的查询文本、与推广信息所对应的内容文本采取相同的编码规则,这样就可保障当查询文本和内容文本相匹配时,他们对应的文本编码数据是相同的。相应地,查询请求所对应的目标位置信息,与推广信息所对应的源位置也采取相同的编码规则,这样就可保障在地理空间上相同的位置,对应相同的空间编码数据。

上述实施例中,通过对推广信息所属的推广源对应的源位置和推广信息对应的内容文本分别进行编码,得到对应的空间编码数据和文本编码数据,从而从地理位置角度和文本内容角度彻底挖掘出推广信息所隐含的信息,进而可通过索引树,方便快捷地查找到与推广信息匹配的查询请求,从而将用户真正感兴趣的推广信息推送给用户。

s208,确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径。

具体地,当服务器获取到与推广信息对应的第二编码数据后,可从索引树的历史编码数据中查找该第二编码数据,并确定相应的第二叶子节点。服务器可根据该第二编码数据,确定从索引树的根节点到存储第二编码数据的第二叶子节点间的访问路径。

在一个实施例中,步骤s208,也就是确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径的步骤具体包括:当从索引树的历史编码数据中查找到第二编码数据时,确定存储第二编码数据的至少一个第二叶子节点;依据各第二叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第二叶子节点;依据访问过程中所经历的索引树中的节点,确定与各第二叶子节点对应的路径。

具体地,当服务器获取到与推广信息对应的第二编码数据后,可从索引树的历史编码数据中查找该第二编码数据,当查找到该第二编码数据时,确定存储第二编码数据的至少一个第二叶子节点。对于每个第二叶子节点,服务器可从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第二叶子节点,依据访问过程中所经历的索引树中的节点,确定与各第二叶子节点对应的路径。

参考图6,当推广信息对应的第二编码数据被存储在叶子节点11中时,服务器可依据图6中箭头所指示的方向,从索引树的根节点开始,对索引树进行自顶向下的访问,该箭头所指示的路径即为与该第二编码数据对应的路径。

上述实施例中,通过推广信息所对应的第二编码数据,对索引树进行自顶向下访问,直到访问至存储该第二编码数据的第二叶子节点,从而可唯一确定与该推广信息对应的第二编码数据对应的路径。

s210,当确定的路径包括目标节点时,将推广信息作为响应查询请求的候选推广信息。

具体地,当该推广信息所对应的路径包括查询请求所对应的目标节点时,可认为这个目标节点上所存储的查询请求会被这条推广信息影响,这个查询请求和这条推广信息是至少部分匹配的,因而可将这条推广信息作为响应该查询请求的候选推广信息。

在一个实施例中,步骤s210,也就是当确定的路径包括目标节点时,将推广信息作为响应查询请求的候选推广信息的步骤具体包括:创建各查询请求对应的缓存队列;当路径包括目标节点时,将推广信息添加至目标节点所存储的查询请求对应的缓存队列,以将推广信息作为响应查询请求的候选推广信息。

具体地,服务器可预先为每一个查询请求均创建一个缓存队列,用来存储用户感兴趣的推广信息。当某条推广信息在索引树中所确定的路径包括该查询请求所对应的目标节点时,将该推广信息添加至目标节点所存储的查询请求对应的缓存队列,以将推广信息作为响应查询请求的候选推广信息。

在一个实施例中,当推广信息被发布时,服务器可检测该推广信息所对应的路径包括的节点,并将该推广信息存储至各个节点所标记的查询请求对应的缓存队列中。

在一个实施例中,对于每一个查询请求,服务器均可在与该查询请求对应的目标节点中标记该查询请求。对于每一条推广信息,服务器均可确定在索引树中与该推广信息对应的路径,将该推广信息作为与该路径所包括的节点所标记的查询请求对应的候选推广信息。

在一个实施例中,服务器可确定与该推广信息对应的路径所包括的节点中标记的各个查询请求,并确定各查询请求所指示的有效时间段。当该推广信息的发布时间处于该有效时间段时,也就是该推广信息进入该查询请求的时间窗口时,将该推广信息作为相应查询请求对应的候选推广信息。其中,有效时间段是一段时间,比如,当查询请求为“最近3天附近的酒店信息”,服务器可确定有效时间段为该查询请求的发起日期至3天后这一段时间。

上述实施例中,创建各查询请求对应的缓存队列,将与查询请求匹配的推广信息添加至相应的缓存队列,以针对每个查询请求做精准分析,存储用户感兴趣的推广信息。

在一个实施例中,该信息处理方法还包括清除无效推广信息的步骤,该步骤具体包括:确定缓存队列中的候选推广信息各自对应的发布时间点;确定查询请求所指示的有效时间段;当候选推广信息对应的发布时间点处于有效时间段外时,清除缓存队列中相应的候选推广信息。

具体地,服务器可确定缓存队列中的候选推广信息各自对应的发布时间点,以及该查询请求所指示的有效时间段。当候选推广信息对应的发布时间点处于有效时间段外时,也就是该推送信息对于该查询请求而言是过期的查询请求,服务器可清除过期的候选推广信息。这样,保障推送至用户的推广信息是有效且精准的。

上述信息处理方法,获取查询请求后确定该查询请求对应的至少一个第一编码数据。在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上的目标节点中存储该查询请求,这样就可依据第一编码数据快速地在索引树中标记该查询请求。当存在待推送的推广信息时,根据该推广信息对应的第二编码数据,确定经过该索引树的根节点和存储第二编码数据的第二叶子节点的路径。当确定的路径包括存储有查询请求的目标节点时,说明这些目标节点所存储的查询请求会被这条推广信息所影响,因而可将该推广信息作为响应查询请求的候选推广信息。这样,在进行推广信息和查询请求的匹配处理时,可依据构建好的索引树,以编码数据为基础进行路径匹配,并按照推广信息所对应的路径进行剪枝,过滤掉不被该推广信息影响的查询请求,从而可以大大降低信息匹配次数和系统计算时间,提高了信息处理效率。

在一个实施例中,该信息处理方法该包括清除过期查询请求的步骤,该步骤具体包括:确定查询请求所指示的有效时间段;当有效时间段为历史时间段时,清除目标节点中存储的查询请求。

其中,有效时间段是查询请求生效的一段时间,历史时间段是在当前的时间点之前的时间段,指这段时间为历史时间。具体地,当服务器获取终端发送的查询请求时,服务器可将该查询请求存储至相应的目标节点上。当该查询请求携带时间信息时,服务器可依据该时间信息确定该查询请求所指示的有效时间段。比如,当该查询请求的内容为“最近三天内的酒店信息”,那么该查询请求所指示的有效时间段为从该查询请求发起的当日起三天内。当该查询请求并未携带什么时间信息时,服务器可根据预设时间段确定该查询请求所对应的有效时间段。比如,该查询请求的内容为“附近的健身房”,发起时间为2019年6月15日13:00,预设时间段比如3个小时,那么该查询请求所指示的有效时间段为2019年6月15日13:00至2019年6月15日16:00。

进一步地,当查询请求所指示的有效时间段为历史时间段时,清除目标节点中存储的查询请求。也就是说,当该查询请求所指示的有效时间过期时,服务器可从相应的目标节点中删除该查询请求,以减少无效信息占用存储空间。

在一个实施例中,服务器可实时检测已存储在索引树中的节点中的查询请求,一旦存在查询请求过期的情况时,则可删除该查询请求。或者,服务器还可定时检测索引树的节点中存储的查询请求所指示的有效时间段,定时清除已过期的查询请求。

上述实施例中,当查询请求所指示的有效时间段为历史时间段时,可及时清除目标节点中存储的查询请求,以减少无效信息占用存储空间。

在一个实施例中,该信息处理方法还包括推送目标推广信息至查询请求对应的终端的步骤,该步骤具体包括:

s702,确定响应查询请求的候选推广信息各自对应的匹配得分。

其中,匹配得分是衡量该候选推广信息与该查询请求的匹配程度的得分,匹配得分越高,说明该推广信息与查询请求越匹配;匹配得分越低,说明该推广信息与查询请求越不匹配。

具体地,服务器可通过从至少一个维度,来计算候选推广信息与查询请求之间的相似程度或差异情况,从而确定相应的匹配得分。其中,维度具体可以是空间维度、文本维度、及社交维度中的至少一种。

在一个实施例中,服务器可根据候选推广信息对应的内容文本和查询请求对应的查询文本,计算这两个文本之间的文本相似度。其中,文本相似度的计算方式具体可通过计算文本之间的距离来确定,比如jaccard(杰卡德)距离。

在一个实施例中,服务器可确定候选推广信息对应的内容文本包括的关键词组成的第一集合、以及查询请求对应的查询文本包括的关键词所组成的第二集合。服务器可通过计算第一集合和第二集合间的jaccard距离,从而确定内容文本和查询文本间的相似度。

在一个实施例中,服务器可根据候选推广信息所属的推广源对应的源位置和查询请求的发起方所在的位置,计算空间相似度。具体地,服务器可通过计算源位置和发起方所在的位置之间的距离,比如欧式距离,从而确定相应的空间相似度。当源位置和发起方所在的位置之间的距离越大,则空间相似度越低;当源位置和发起方所在的位置之间的距离越小,则空间相似度越高。

在一个实施例中,服务器可获取与发起方对应的关联用户在源位置处的签到累计次数。其中,与发起方对应的关联用户具体可以是发起方对应的用户、与发起方互为好友的用户、或与发起方互为亲属关系的用户等。关联用户在源位置处的签到累计次数,是指至少一个关联用户在源位置处的签到次数之和。其中,关联用户在源位置处签到是指关联用户在源位置处进行打卡签到,以证明来过此地方。

进一步地,服务器可根据与发起方对应的关联用户在源位置处的签到累计次数,确定该候选推广信息与查询请求间的社交相似度。比如,签到累计次数越高,则社交相似度越高。可以理解,有社交关系的用户之间大概率有相似的兴趣爱好,此外,如果一个用户在一个空间对象上进行过多次签到,则说明这个用户对该空间对象更感兴趣。因而,可借助与发起方对应的关联用户在源位置处的签到累计次数,来衡量发起方对该源位置的感兴趣程度。

在一个实施例中,服务器可依据候选推广信息与查询请求间的文本相似度、空间相似度、及社交相似度中的至少一种,确定该候选推广信息对应的匹配得分。

s704,从候选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

其中,匹配得分满足推送条件,具体可以是匹配得分大于或等于预设得分、或将匹配得分按高至低进行排序时,排序名次小于预设名次等。具体地,服务器可从候选推广信息中筛选出匹配得分满足推送条件的候选推广信息,作为目标推广信息。

s706,将目标推广信息推送至查询请求对应的终端。

具体地,服务器可预先确定与查询请求发起方对应的用户标识,将目标推广信息发送至通过该用户标识登录的终端,也就是发送至与查询请求对应的终端。其中,用户标识用于唯一标识用户,具体可以是数字、字母、汉字、或字符串等。

上述实施例中,确定响应查询请求的候选推广信息各自对应的匹配得分,从而将匹配得分满足推送条件的目标推广信息推送至查询请求对应的终端,这样,可将用户更感兴趣的推广信息推送给用户,大大提高了信息推送的有效性。

在一个实施例中,步骤s702,也就是确定查询请求对应的候选推广信息各自对应的匹配得分的步骤,具体包括:根据候选推广信息对应的内容文本和查询请求对应的查询文本,计算文本相似度;根据候选推广信息所属的推广源对应的源位置和查询请求的发起方所在的位置,计算空间相似度;获取与发起方对应的关联用户在源位置处的签到累计次数;依据文本相似度、空间相似度和签到累计次数,确定候选推广信息对应的匹配得分。

在一个实施例中,服务器可根据与发起方对应的关联用户在源位置处的签到累计次数,确定该候选推广信息与查询请求间的社交相似度。进一步地,服务器可对文本相似度、空间相似度和社交相似度进行加权求和,计算得到该候选推广信息对应的匹配得分。其中,加权求和所需的加权系数可依据实际情况进行调整和确定。

上述实施例中,根据候选推广信息和查询请求间的文本相似度、空间相似度和签到累计次数,综合考量以确定候选推广信息对应的匹配得分。这样,在计算推广信息的匹配得分时,除了考虑到空间和文本方面的数据,还考虑了用户之间的社交关系以及用户在空间对象上的签到信息,大大提高了候选推广信息筛选的准确性,进而提高了信息推送的精准性。

在一个实施例中,获取与发起方关联的用户在源位置处的签到累计次数的步骤具体包括:获取不同的用户所触发的不同位置的签到次数;依据签到次数构建用户签到矩阵;获取不同的用户间的社交关系信息;依据社交关系信息构建不同用户间的用户社交关系矩阵;将用户签到矩阵和用户社交关系矩阵进行矩阵乘法运算,得到由不同用户的关联用户分别在不同的位置处的签到累计次数所组成的关联矩阵;从关联矩阵中,查找与查询请求的发起方、及源位置均对应的签到累计次数。

具体地,服务器可获取不同的用户所触发的不同位置的签到次数,通过用户签到矩阵存储一组用户对一组位置的签到次数。服务器还可获取不同的用户间的社交关系信息,通过用户社交关系矩阵存储一组用户与一组用户间的社交关系信息。其中,社交关系信息具体可以是是否好友关系,比如当用户a和用户b互为好友时,用户a和用户b间对应的社交关系信息具体可设置为1;当用户a和用户b不是好友时,用户a和用户b间对应的社交关系信息具体可设置为0。

进一步地,服务器可将用户签到矩阵和用户社交关系矩阵进行矩阵乘法运算,得到由不同用户的关联用户分别在不同的位置处的签到累计次数所组成的关联矩阵。该关联矩阵中的每个元素分别表示某一用户的关联用户在某一位置处的签到累计次数。各个元素所组成的关联矩阵可以用来表示一组用户各自的关联用户与一组空间对象之间的社交相似性。

进一步地,服务器可依据查询请求发起方所对应的用户标识、以及源位置,从关联矩阵中查找对应的元素,该元素的值就是相应的签到累计次数。

上述实施例中,通过两个矩阵相乘即可得到一组用户的关联用户对一组空间对象的签到次数,通过一次计算就可确定一组用户对一组推广信息的社交相似性,大大降低了计算成本,提高了计算效率。

伀在一个实施例中,步骤s702,也就是确定响应查询请求的候选推广信息在一个实施例中,步骤s702,也就是确定响应查询请求的候选推广信息各自对应的匹配得分的步骤具体包括:确定响应查询请求的候选推广信息所对应的匹配得分、及发布时间点。步骤s704,也就是从候选推广信息中筛选出匹配得分满足推送条件的目标推广信息的步骤具体包括:依据候选推广信息对应的匹配得分和发布时间点,对候选推广信息进行排序;将排序名次小于预设名次的候选推广信息作为备选推广信息;从备选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

具体地,服务器可确定响应查询请求的候选推广信息所对应的匹配得分、及发布时间点。再依据候选推广信息对应的匹配得分和发布时间点,对候选推广信息进行排序。比如,服务器可综合考量该候选推广信息的发布时间的先后顺序、以及相应的匹配得分,从而对候选推广信息进行排序。将排序名次小于预设名次的候选推广信息作为备选推广信息,再从备选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

在一个实施例中,服务器可将同一查询请求所对应的候选推广信息的发布时间点,按发布时间的先后顺序进行排序,并赋予不同的排序名次以不同的分值。比如,服务器可按发布时间点与当前时间点的时间间隔的长短来对候选推广信息进行初始排序,如,发布时间点距离当前时间最近的候选推广信息排第一。再根据初始排名的名次确定各个候选推广信息对应的时间得分,比如初始排名名次越小,则时间得分越高。

在一个实施例中,服务器还可直接依据各候选推广信息的发布时间点与当前时间点间的时间间隔,确定对应的时间得分。比如,时间间隔越长,则时间得分越低;时间间隔越短,则时间得分越高。

进一步地,服务器可对匹配得分和时间得分进行加权求和,以得到候选推广信息对应的综合得分。服务器可根据各候选推广信息的综合得分的大小,按从大至小的顺序对候选推广信息进行排序。从而将排序名次小于预设名次的候选推广信息作为备选推广信息,再从备选推广信息中筛选出匹配得分满足推送条件的目标推广信息。其中,预设名次可依据用户感兴趣的推广信息的数量而定,具体可以等于用户感兴趣的推广信息的数量或者大于用户感兴趣的推广信息的数量,比如,用户感兴趣的推广信息的数量为5,那么可设预设名次为10。

上述实施例中,依据候选推广信息对应的匹配得分和发布时间点,对候选推广信息进行排序,从而将将排序名次小于预设名次的候选推广信息作为备选推广信息,这样,通过匹配得分和发布时间点的综合考量,可进一步筛选出较新发布的、且匹配得分较高的备选推广信息,再从备选推广信息中筛选出匹配得分满足匹配条件的目标推广信息,使得筛选出的目标推广信息的时新度较高。

在一个实施例中,依据候选推广信息对应的匹配得分和发布时间点,对候选推广信息进行排序的步骤具体包括以下步骤:对于每条候选推广信息,计算其他的候选推广信息中,匹配得分大于当前的候选推广信息的匹配得分、且发布时间点滞后于当前的候选推广信息的发布时间点的候选推广信息的数量;按每条候选推广信息各自对应的数量的大小,从小至大对候选推广信息进行排序。

具体地,对于每条候选推广信息,服务器均可通过以下方式来计算该条推广信息被支配的次数:假定给定两条推广信息,若第一条推广信息的匹配得分大于第二条推广信息的匹配得分,且第一条推广信息的发布时间点晚于第二条推广信息的发布时间点,则称第一条匹配信息支配第二条匹配信息,也就是第二条匹配信息被第一条匹配信息支配一次。那么,对于任意一条候选推广信息,服务器可计算其他的候选推广信息中,匹配得分大于当前的候选推广信息的匹配得分、且发布时间点滞后于该当前的候选推广信息的发布时间点的候选推广信息的数量,该数量即可认为是该条候选推广信息被支配的次数。

进一步地,服务器可按每条候选推广信息各自对应的被支配的次数的大小,从小至大对候选推广信息进行排序。可以理解,某条候选推广信息被支配的次数越少,则说明该条候选推广信息的匹配得分较高、且时新度较高,是质量较高的推广信息。

上述实施例中,按每条候选推广信息被支配的次数的大小对候选推广信息进行排序,可筛选出较新发布的、且匹配得分较高的备选推广信息,再从备选推广信息中筛选出匹配得分满足匹配条件的目标推广信息,使得筛选出的目标推广信息的时新度很高,更贴合用户的需求。

在一个实施例中,该信息处理方法还包括构建索引树的步骤,该步骤具体包括:

s802,获取历史查询请求;历史查询请求包括历史查询文本和历史位置信息。

其中,历史查询请求是历史时间段内用户通过应用程序所触发的用于查询推广信息的请求。历史时间段具体可以是过去的一年、半年、三个月、或一个月等预设的历史时间段。

具体地,服务器可获取历史时间段内由终端发送的历史查询请求,并确定历史查询请求包括的历史查询文本和历史位置信息。在一个实施例中,历史查询请求携带历史查询文本和历史位置信息,服务器可直接从历史查询请求中提取出包括关键词的历史查询文本,提取出位置信息作为历史位置信息。

在一个实施例中,服务器还可获取触发历史查询请求的终端所在的位置信息,并根据该位置信息和历史查询请求的内容确定查询请求所指向的历史位置信息。比如,当历史查询请求包括“附近的饭店”的内容时,服务器可获取用户的定位位置,将该定位位置3公里内的区域,都作为历史目标区域,将历史目标区域所包括的位置信息作为历史位置信息。

s804,对历史查询文本和历史位置信息分别进行编码处理,得到与历史查询请求对应的历史编码数据。

具体地,服务器可预先设置对空间位置点的坐标进行编码的规则,并依据该编码规则确定历史位置信息所包括的空间位置点对应的历史空间编码数据。同样地,服务器也可预先设置对文本内容进行编码的规则,并依据该编码规则确定历史查询文本所包括的关键词对应的历史文本编码数据。服务器可根据历史空间编码数据和历史文本编码数据,确定与历史查询请求对应的历史编码数据。

在一个实施例中,步骤s804,也就是对历史查询文本和历史位置信息分别进行编码处理,得到与历史查询请求对应的历史编码数据的步骤具体包括:根据所有历史查询请求所包括的历史位置信息确定相应的整体搜索区域;将整体搜索区域划分为多于一个的子区域;对子区域进行编码,得到各子区域各自对应的空间编码数据;对于每条历史查询请求,将所包括的历史位置信息对应的子区域的空间编码数据,作为与历史查询请求对应的历史空间编码数据;对于每条历史查询请求,对所包括的历史查询文本进行编码处理,得到对应的历史文本编码数据;对于每条历史查询请求,拼接历史空间编码数据和历史文本编码数据,得到历史查询请求对应的历史编码数据。

具体地,服务器可根据所有历史查询请求所包括的历史位置信息,确定包含所有历史位置信息的区域,将该区域作为整体搜索区域。进而将整体搜索区域划分为多于一个的子区域。每个子区域中包含至多一个空间位置点。服务器可对多于一个的子区域进行编码,为每个不同子区域分配不同的空间编码数据,这样就可完成对整个搜索空间的编码处理。对于每条历史查询请求,服务器可依据该历史查询请求所对应的历史位置信息,确定对应的空间位置点,将该空间位置点所在的子区域对应的空间编码数据,作为与该历史查询请求对应的历史空间编码数据。

在一个实施例中,服务器可依据历史查询请求所包括的所有历史查询文本,生成关键词集合,对该关键词集合中的各个关键词分别进行编码,得到与各个关键词对应的文本编码数据,这样就可完成对文本的编码处理。对于每条历史查询请求,服务器可确定该历史查询请求所包括的查询文本中的关键词,将各关键词所对应的文本编码数据,作为与该历史查询请求对应的历史文本编码数据。进一步地,对于每条历史查询请求,服务器可拼接历史空间编码数据和历史文本编码数据,得到与该历史查询请求对应的历史编码数据。

在一个实施例中,服务器可通过迭代算法,将整个空间区域划分成多个子区域,每个子区域中包含至多一个空间位置点。其中,一个空间位置点具体可以是一个定位点。比如,服务器可通过二叉树,利用迭代的方式,每次将一个大的空间区域划分成多个子区域(比如4个),对所得到的子区域也采取同样的划分方式,直到最后所划分的最小的空间区域中包括至多一个空间位置点为止。这样,将不同的子区域编码成不同的编码值,可完成对整个空间区域的编码。按照上述编码规则,服务器可确定与历史位置信息对应的历史空间编码数据。

在一个实施例中,服务器可依据各个关键词出现的频率将历史关键词区分为频繁词和非频繁词。也就是说,可预先设置一个频率阈值,出现频率高于该频率阈值的关键词即可称作频繁词,否则为非频繁词。服务器可为每个频繁词分别设置对应的编码值,全部非频繁词共用一个编码值,这样可大大提高编码效率。

进一步地,服务器可对所有的历史空间编码数据和历史文本编码数据进行组合拼接,比如将历史文本编码数据作为前缀,历史空间编码数据作为后缀,将一个历史文本编码数据和一个历史空间编码数据拼接成一个历史编码数据。这样,可得到与历史查询请求对应的全部的历史编码数据。

上述实施例中,通过对历史查询请求对应的历史空间数据和历史文本数据分别进行编码,得到对应的历史空间编码数据和历史文本编码数据,从而从地理位置角度和文本内容角度彻底挖掘出历史查询请求所隐含的信息,以构建用于关联存储历史编码编码数据和历史查询请求的索引树。

s806,依据历史查询请求和对应的历史编码数据,构建索引树。

具体地,服务器可将所有的历史编码数据按相应的编码值依次存储至索引树的叶子节点中,其中,一个叶子节点具体可存储一个历史编码数据。服务器还可将与历史编码数据对应的历史查询请求,存储至与相应叶子节点对应的非叶子节点中,以此构建索引树。鉴于该索引树是依据查询请求所对应的空间数据和文本数据所构建,该索引树还可称作stb(spatialtextualbinary)-树在一个实施例中,关于如何确定用于存储历史查询请求的非叶子节点的具体内容,可参考前述实施例中关于确定存储查询请求的目标节点的具体内容,本申请实施例在此不做赘述。

在一个实施例中,步骤s806,也就是依据历史查询请求和对应的历史编码数据,构建索引树的步骤具体包括:根据历史编码数据的数量确定待构建的索引树的树形结构;待构建的索引树为满二叉树;依据待构建的索引树的树形结构,将历史编码数据依次存储至待构建的索引树中各叶子节点中,得到构建好的索引树。

具体地,服务器可通过满二叉树来构建本申请实施例中所提及的索引树。当服务器确定了历史编码数据的数量后,即可确定相应的索引树的树形结构。为减少冗余空间所占据的资源,该满二叉树的叶子节点应该尽可能的少,但叶子节点的数量又必须大于或等于全部的历史编码数据的数量。

进一步地,服务器可依据待构建的索引树的树形结构,将历史编码数据依次存储至待构建的索引树中各叶子节点中,得到构建好的索引树。在一个实施例中,历史编码数据具体可以是从小至大的历史编码值,服务器可按历史编码值的大小,按从小至大的顺序,从叶子节点的左侧开始,依次存储至叶子节点中。

在一个实施例中,服务器还可将与历史编码数据对应的历史查询请求,存储至相应叶子节点的祖先节点中,以此构建索引树。这样,将历史编码数据依次存储至满二叉树的叶子节点中,即可快速地构建所需的索引树。

上述实施例中,根据历史查询请求所对应的历史编码数据即可快速地构建索引树,用于对后续的查询请求和推广信息进行索引匹配处理,大大提高了信息处理效率。

在一个具体的实施例中,该信息处理方法具体包括步骤1-38,内容如下:

1、获取查询请求。

2、根据查询请求所包括的内容,确定相应的查询文本和目标位置信息。

3、根据目标位置信息确定对应的至少一个第一空间编码数据、以及根据查询文本确定对应的至少一个第一文本编码数据。

4、组合拼接第一空间编码数据和第一文本编码数据,得到查询请求对应的至少一个第一编码数据。

5、获取预构建的索引树;索引树中的叶子节点用于存储历史查询请求对应的历史编码数据。

6、当从历史编码数据中查找到第一编码数据时,确定存储第一编码数据的至少一个第一叶子节点。

7、依据各第一叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第一叶子节点;

8、根据访问过程中所经历的节点,确定与查询请求对应的目标节点。目标节点满足第一条件和第二条件;第一条件包括:至少一目标节点,覆盖全部第一叶子节点,且覆盖最少数量的非第一叶子节点的叶子节点;第二条件包括:满足第一条件的目标节点的数量最少化。

9、在索引树的至少一目标节点存储查询请求。

10、确定查询请求所指示的有效时间段。

11、当有效时间段为历史时间段时,清除目标节点中存储的查询请求。

12、获取待推送的推广信息。

13、根据推广信息所包括的内容,确定推广信息所属的推广源对应的源位置、及推广信息对应的内容文本。

14、确定源位置对应的第二空间编码数据、及内容文本对应的第二文本编码数据。

15、拼接第二空间编码数据和第二文本编码数据,得到推广信息对应的第二编码数据。

16、当从索引树的历史编码数据中查找到第二编码数据时,确定存储第二编码数据的至少一个第二叶子节点。

17、依据各第二叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第二叶子节点。

18、依据访问过程中所经历的索引树中的节点,确定与各第二叶子节点对应的路径。

19、创建各查询请求对应的缓存队列。

20、当路径包括目标节点时,将推广信息添加至目标节点所存储的查询请求对应的缓存队列,以将推广信息作为响应查询请求的候选推广信息。

21、确定缓存队列中的候选推广信息各自对应的发布时间点。

22、确定查询请求所指示的有效时间段。

23、当候选推广信息对应的发布时间点处于有效时间段外时,清除缓存队列中相应的候选推广信息。

24、根据候选推广信息对应的内容文本和查询请求对应的查询文本,计算文本相似度。

25、根据候选推广信息所属的推广源对应的源位置和查询请求的发起方所在的位置,计算空间相似度。

26、获取不同的用户所触发的不同位置的签到次数。

27、依据签到次数构建用户签到矩阵。

28、获取不同的用户间的社交关系信息。

29、依据社交关系信息构建不同用户间的用户社交关系矩阵。

30、将用户签到矩阵和用户社交关系矩阵进行矩阵乘法运算,得到由不同用户的关联用户分别在不同的位置处的签到累计次数所组成的关联矩阵。

31、从关联矩阵中,查找与查询请求的发起方、及源位置均对应的签到累计次数。

32、依据文本相似度、空间相似度和签到累计次数,确定候选推广信息对应的匹配得分。

33、确定响应查询请求的候选推广信息所对应的发布时间点。

34、对于每条候选推广信息,计算其他的候选推广信息中,匹配得分大于当前的候选推广信息的匹配得分、且发布时间点滞后于当前的候选推广信息的发布时间点的候选推广信息的数量。

35、按每条候选推广信息各自对应的数量的大小,从小至大对候选推广信息进行排序。

36、将排序名次小于预设名次的候选推广信息作为备选推广信息。

37、从备选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

38、将目标推广信息推送至查询请求对应的终端。

上述信息处理方法,获取查询请求后确定该查询请求对应的至少一个第一编码数据。在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上的目标节点中存储该查询请求,这样就可依据第一编码数据快速地在索引树中标记该查询请求。当存在待推送的推广信息时,根据该推广信息对应的第二编码数据,确定经过该索引树的根节点和存储第二编码数据的第二叶子节点的路径。当确定的路径包括存储有查询请求的目标节点时,说明这些目标节点所存储的查询请求会被这条推广信息所影响,因而可将该推广信息作为响应查询请求的候选推广信息。这样,在进行推广信息和查询请求的匹配处理时,可依据构建好的索引树,以编码数据为基础进行路径匹配,并按照推广信息所对应的路径进行剪枝,过滤掉不被该推广信息影响的查询请求,从而可以大大降低信息匹配次数和系统计算时间,提高了信息处理效率。

应该理解的是,虽然图2、图3、图7和图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3、图7和图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

参考图9,图9为一个实施例中基于地理社交文本数据的推广信息投放框架图。如图9所示,当一名用户发布一条用户订阅(也就是本申请前述实施例所提及的查询请求)后,根据该用户订阅所对应的空间文本键值将其插入到stb-树索引结构中(参见图9中箭头④所示),也就是在相应的非叶子节点上标记该用户订阅。其中,该用户订阅所对应的空间文本键值具体可以是通过与该用户订阅对应的查询文本和目标位置信息所确定的第一编码数据。

参见图10,图10为一个实施例中信息查询节点的交互界面示意图。参见图10,用户可通过该交互界面输入想查询的具体内容,比如“查询附近购物和美食的优惠券有哪些?”,该应用程序可自动获取终端所在位置的经纬度信息,比如纬度32.116;经度115.17,以及当前的时间点。终端可从该查询请求中提取出关键词“购物”和“美食”。终端可根据该查询请求确定相应的有效时间段,比如3小时,开始时间为2019年6月15日13:00,结束时间为2019年6月15日16:00。当用户点击“查询”按钮时,终端可将相应的信息发送至服务器,通过服务器执行该信息处理方法,向终端反馈目标推广信息。

服务器可为每一个用户订阅初始化一个缓存队列,该缓存队列用来存储可以影响该用户订阅的推广信息。当一条推广信息进入时间窗口(参见图9中的箭头①)后,计算其空间文本键值,并按照该空间文本键值对stb-树进行自顶向下访问(参见图9中的箭头②);若访问路径经过某个节点,则说明这个节点上的用户订阅会被这条推广信息影响,因而可将这条推广信息插入该用户订阅所对应的缓存队列中(参见图9中的箭头③);若访问路径不经过某个节点,说明这个节点所对应的用户订阅对这条推广信息不感兴趣,可以剪枝。

进一步地,服务器可对缓存队列中的推广信息进行筛选,选择满足推送条件的若干条推广信息作为目标推广信息发送给相应用户订阅所对应的终端(参见图9中的箭头⑤)。若一条用户订阅过期,服务器可从非叶子节点中删除该用户订阅(参见图9中的箭头⑥);若一条推广信息过期,则将过期的推广信息从缓存队列中删除。

上述基于地理社交文本数据的广告投放框架,在对存储至缓存队列中的推广信息进行精炼时,将用户之间的社交关系和用户对空间对象的签到次数纳入考虑,从而可大大提高推广信息投放的精准度。

在具体应用场景中,推广信息具体可以是广告,用户可通过终端中运行的应用程序,标注自己对哪些方面(如旅游、体育、美食等)感兴趣。与此同时,该应用程序可通过终端定位来抓取用户的位置信息,并通过终端的通讯录或联系人等获得用户的社交信息。此外,其他的推广信息源平台也可想该应用程序发布广告。服务器可通过上述的信息,计算用户对一组广告的感兴趣程度,从而将用户最感兴趣的广告投放给相应的终端,提高广告投放精准度。

如图11所示,在一个实施例中,提供了信息处理装置1100,包括获取模块1101、存储模块1102和确定模块1103。

获取模块1101,用于获取查询请求以及查询请求对应的至少一个第一编码数据。

存储模块1102,用于在索引树的至少一目标节点存储查询请求;目标节点,在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上。

获取模块1101还用于获取待推送的推广信息对应的第二编码数据。

确定模块1103,用于确定经过索引树的根节点和存储第二编码数据的第二叶子节点的路径。

确定模块1103还用于当确定的路径包括目标节点时,将推广信息作为响应查询请求的候选推广信息。

在一个实施例中,获取模块1101还用于获取查询请求;根据查询请求所包括的内容,确定相应的查询文本和目标位置信息;根据目标位置信息确定对应的至少一个第一空间编码数据、以及根据查询文本确定对应的至少一个第一文本编码数据;组合拼接第一空间编码数据和第一文本编码数据,得到查询请求对应的至少一个第一编码数据。

在一个实施例中,获取模块1101还用于获取预构建的索引树;索引树中的叶子节点用于存储历史查询请求对应的历史编码数据;当从历史编码数据中查找到第一编码数据时,确定存储第一编码数据的至少一个第一叶子节点;依据各第一叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第一叶子节点;根据访问过程中所经历的节点,确定与查询请求对应的目标节点。

在一个实施例中,该信息处理装置还包括清除模块1104,其中,确定模块1103还用于确定查询请求所指示的有效时间段。清除模块1104,用于当有效时间段为历史时间段时,清除目标节点中存储的查询请求。

在一个实施例中,获取模块1101还用于获取待推送的推广信息;根据推广信息所包括的内容,确定推广信息所属的推广源对应的源位置、及推广信息对应的内容文本;确定源位置对应的第二空间编码数据、及内容文本对应的第二文本编码数据;拼接第二空间编码数据和第二文本编码数据,得到推广信息对应的第二编码数据。

在一个实施例中,确定模块1103还用于当从索引树的历史编码数据中查找到第二编码数据时,确定存储第二编码数据的至少一个第二叶子节点;依据各第二叶子节点,从索引树的根节点开始,分别对索引树进行自顶向下的访问,直至访问至相应的第二叶子节点;依据访问过程中所经历的索引树中的节点,确定与各第二叶子节点对应的路径。

在一个实施例中,确定模块1103还用于创建各查询请求对应的缓存队列;当路径包括目标节点时,将推广信息添加至目标节点所存储的查询请求对应的缓存队列,以将推广信息作为响应查询请求的候选推广信息。

在一个实施例中,确定模块1103还用于确定缓存队列中的候选推广信息各自对应的发布时间点。确定模块1103还用于确定查询请求所指示的有效时间段。清除模块1104还用于当候选推广信息对应的发布时间点处于有效时间段外时,清除缓存队列中相应的候选推广信息。

在一个实施例中,该信息处理装置还包括筛选模块1105和推送模块1106,其中:

确定模块1103还用于确定响应查询请求的候选推广信息各自对应的匹配得分。

筛选模块1105,用于从候选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

推送模块1106,用于将目标推广信息推送至查询请求对应的终端。

在一个实施例中,确定模块1103还用于根据候选推广信息对应的内容文本和查询请求对应的查询文本,计算文本相似度;根据候选推广信息所属的推广源对应的源位置和查询请求的发起方所在的位置,计算空间相似度;获取与发起方对应的关联用户在源位置处的签到累计次数;依据文本相似度、空间相似度和签到累计次数,确定候选推广信息对应的匹配得分。

在一个实施例中,确定模块1103还用于获取不同的用户所触发的不同位置的签到次数;依据签到次数构建用户签到矩阵;获取不同的用户间的社交关系信息;依据社交关系信息构建不同用户间的用户社交关系矩阵;将用户签到矩阵和用户社交关系矩阵进行矩阵乘法运算,得到由不同用户的关联用户分别在不同的位置处的签到累计次数所组成的关联矩阵;从关联矩阵中,查找与查询请求的发起方、及源位置均对应的签到累计次数。

在一个实施例中,确定模块1103还用于确定响应查询请求的候选推广信息所对应的匹配得分、及发布时间点。筛选模块1105还用于依据候选推广信息对应的匹配得分和发布时间点,对候选推广信息进行排序;将排序名次小于预设名次的候选推广信息作为备选推广信息;从备选推广信息中筛选出匹配得分满足推送条件的目标推广信息。

在一个实施例中,筛选模块1105还用于对于每条候选推广信息,计算其他的候选推广信息中,匹配得分大于当前的候选推广信息的匹配得分、且发布时间点滞后于当前的候选推广信息的发布时间点的候选推广信息的数量;按每条候选推广信息各自对应的数量的大小,从小至大对候选推广信息进行排序。

参考图12,在一个实施例中,该信息处理装置还包括编码模块1107和构建模块1108,其中:

获取模块1101还用于获取历史查询请求;历史查询请求包括历史查询文本和历史位置信息。

编码模块1107,用于对历史查询文本和历史位置信息分别进行编码处理,得到与历史查询请求对应的历史编码数据。

构建模块1108,用于依据历史查询请求和对应的历史编码数据,构建索引树。

在一个实施例中,编码模块1107还用于根据所有历史查询请求所包括的历史位置信息确定相应的整体搜索区域;将整体搜索区域划分为多于一个的子区域;对子区域进行编码,得到各子区域各自对应的空间编码数据;对于每条历史查询请求,将所包括的历史位置信息对应的子区域的空间编码数据,作为与历史查询请求对应的历史空间编码数据;对于每条历史查询请求,对所包括的历史查询文本进行编码处理,得到对应的历史文本编码数据;对于每条历史查询请求,拼接历史空间编码数据和历史文本编码数据,得到历史查询请求对应的历史编码数据。

在一个实施例中,构建模块1108还用于根据历史编码数据的数量确定待构建的索引树的树形结构;待构建的索引树为满二叉树;依据待构建的索引树的树形结构,将历史编码数据依次存储至待构建的索引树中各叶子节点中,得到构建好的索引树。

在一个实施例中,目标节点满足第一条件和第二条件;第一条件包括:至少一目标节点,覆盖全部第一叶子节点,且覆盖最少数量的非第一叶子节点的叶子节点;第二条件包括:满足第一条件的目标节点的数量最少化。

上述信息处理装置,获取查询请求后确定该查询请求对应的至少一个第一编码数据。在经过索引树的根节点和存储第一编码数据的第一叶子节点的至少一路径上的目标节点中存储该查询请求,这样就可依据第一编码数据快速地在索引树中标记该查询请求。当存在待推送的推广信息时,根据该推广信息对应的第二编码数据,确定经过该索引树的根节点和存储第二编码数据的第二叶子节点的路径。当确定的路径包括存储有查询请求的目标节点时,说明这些目标节点所存储的查询请求会被这条推广信息所影响,因而可将该推广信息作为响应查询请求的候选推广信息。这样,在进行推广信息和查询请求的匹配处理时,可依据构建好的索引树,以编码数据为基础进行路径匹配,并按照推广信息所对应的路径进行剪枝,过滤掉不被该推广信息影响的查询请求,从而可以大大降低信息匹配次数和系统计算时间,提高了信息处理效率。

图13示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图13所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现信息处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行信息处理方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的信息处理装置可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备上运行。计算机设备的存储器中可存储组成该信息处理装置的各个程序模块,比如,图11所示的获取模块、存储模块和确定模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的信息处理方法中的步骤。

例如,图13所示的计算机设备可以通过如图11所示的信息处理装置中的获取模块执行步骤s202和s206。计算机设备可通过存储模块执行步骤s204。计算机设备可通过确定模块执行步骤s208和s210。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述信息处理方法的步骤。此处信息处理方法的步骤可以是上述各个实施例的信息处理方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述信息处理方法的步骤。此处信息处理方法的步骤可以是上述各个实施例的信息处理方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

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

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

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