消息发送确定方法及装置、数据表创建方法及装置制造方法及图纸

技术编号:15863982 阅读:146 留言:0更新日期:2017-07-23 08:33
本申请公开了一种消息发送确定方法及装置、一种数据表创建方法及装置,用以解决现有技术中的消息发送确定方式在待发送消息的目标用户数量较多时,为记录明细信息所需的存储开销很大的问题。所述消息发送确定方法包括:获得待发送消息的目标用户的标识;确定所述待发送消息对应的数据表,所述数据表中保存有至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤;根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户。

【技术实现步骤摘要】
消息发送确定方法及装置、数据表创建方法及装置
本申请涉及计算机
,尤其涉及一种消息发送确定方法装置、一种数据表创建方法及装置。
技术介绍
随着计算机技术和互联网技术的迅速发展,很多业务都可以在网上进行,业务提供方可以向用户发送营销消息(称为:待发送消息),以推广业务,从而有利于扩大用户群,也有利于用户及时了解最新业务动态。营销消息虽然具有上述好处但也不适于向同一个用户频繁地发送,因为这样会对用户造成骚扰,反而引起用户反感。在实际应用中,业务提供方可以基于待发送消息的目标用户的消息疲劳度和预定消息疲劳度,确定是否向目标用户发送待发送消息。其中,消息疲劳度反映向该目标用户发送待发送消息的频度,预定消息疲劳度可以用于限定所述频度,具体地,可以用于限定在每个单位时间(比如,1天等)内最多向该目标用户发送一次待发送消息,进一步地,还可以用于限定在多个单位时间(比如,当单位时间是1天时,多个单位时间可以是1周或1个月等)内向该目标用户发送待发送消息的最大次数。在现有技术中,业务提供方基于目标用户的标识(如邮箱地址、手机号等),向目标用户发送待发送消息,业务提供方每向一个目标用户发送一次待发送消息后,会记录下该目标用户的标识以及发送时间等明细信息。业务提供方在向任一个目标用户发送待发送消息前,会在已记录的各明细信息查询该目标用户的标识,以确定本次发送是否会导致目标用户的消息疲劳度超过预定消息疲劳度,若是,则确定不向该目标用户发送待发送消息,否则,确定向该目标用户发送待发送消息发送。但是,上述的消息发送确定方式在待发送消息的目标用户数量较多时,为记录明细信息所需的存储开销很大。
技术实现思路
本申请实施例提供一种消息发送确定方法及装置,用以解决现有技术中的消息发送确定方式在待发送消息的目标用户数量较多时,为记录明细信息所需的存储开销很大的问题。本申请实施例还提供一种数据表创建方法及装置。本申请实施例采用下述技术方案:本申请实施例提供的一种消息发送确定方法,包括:获得待发送消息的目标用户的标识;确定所述待发送消息对应的数据表,所述数据表中保存有至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤;根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户。本申请实施例提供的一种消息发送确定装置,包括:获得模块,获得待发送消息的目标用户的标识;数据表确定模块,确定所述待发送消息对应的数据表,所述数据表中保存有至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;过滤模块,确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤;发送确定模块,根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户。本申请实施例提供的一种数据表创建方法,包括:确定待发送消息;创建与所述待发送消息对应的数据表,所述数据表用于保存至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识。本申请实施例提供的一种数据表创建装置,包括:确定模块,确定待发送消息;创建模块,创建与所述待发送消息对应的数据表,所述数据表用于保存至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:可以基于待发送消息对应的数据表中保存的布隆过滤器的二进制向量以及对应的哈希函数,确定是否向某个目标用户发送待发送消息,而无需保存诸如已发送用户的标识等明细信息,其中,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;在待发送消息的目标用户数量较多时,相比于保存各明细信息所需的存储开销,保存所述二进制向量和所述各哈希函数所需的存储开销要小得多,因此,可以部分或全部地解决现有技术中的问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为布隆过滤器的原理示意图;图2为布隆过滤器的误判概率示意图;图3为本申请实施例提供的一种消息发送确定方法的流程示意图;图4为本申请实施例提供的一种实际应用场景下数据表中保存的各二进制向量所涉及的数据操作示意图;图5为本申请实施例提供的一种数据表创建方法的流程示意图;图6为本申请实施例提供的对应于图3的一种消息发送确定装置的结构示意图;图7为本申请实施例提供的对应于图5的一种数据表创建装置的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的方案中用到了布隆过滤器。为了便于理解,先对布隆过滤器进行说明。布隆过滤器由一个二进制向量和多个不同的哈希函数构成,该二进制向量初始时所有的位均为0。可以将一个元素集合中的每个元素,分别通过布隆过滤器的各哈希函数分别映射到该布隆过滤器的二进制向量中的一个位,每一次映射后将该二进制向量中映射到的位更新为1。当需要判断某个元素是否存在于该元素集合中时,只要将该元素分别通过各哈希函数映射到该二进制向量中的一个位,并判断所映射到的各位是否全部为1,若是,则确定该元素有很大可能存在于该元素集合中,否则,确定该元素不存在于该元素集合中。这个过程可以称为:采用该布隆过滤器对该元素进行过滤;确定该元素很大可能存在于该元素集合中即表示未过滤出该元素;确定该元素不存在于该元素集合中即表示过滤出了该元素。由此可知,布隆过滤器的二进制向量中只存放元素的存在关系,而不存放元素本身,因此,所需的存储开销相比于将元素本身进行存储所需的存储开销少。图1为布隆过滤器的原理示意图。在图1中,{x,y,z}表示该布隆过滤器的多个哈希函数(以3个哈希函数x、y、z为例),通过哈希函数的映射,该布隆过滤器的二进制向量中已保存了一个元素集合的存在关系,w为当前被判断是否存在于该元素集合中的一个元素,可以看到,w通过3个哈希函数分别被映射到的该二进制向量中的3个位,其中有一个位为0,因此,可以确定w不存在于该元素集合中,也即,通过该布隆过滤器过滤出了w。需要说明的是,布隆过滤器有较小的概率误判一个元素存在于该元素集合中,但是,对于本申请的方案的场景,由于并不要求必须将待发送消息发送给所有目标用户,因此可以允许误判,后面会在本申请的方案中详细说明。定义k为一个布隆过滤器的哈希函数的个数,n为需要进行过滤的元素数量,m为该布隆过滤器的二进制向量的位数,则该布隆过滤器的误判概率如图2所示。图2为布隆过滤器的误判概率示意图(仅显示出了常用的一部分),具体示出了布隆过滤器在k=[1,8],取值范围内的误判概率。图3为本申请实施例提供的一种消息发送确定方法的流程示意图。该流程的执行主体本文档来自技高网
...
消息发送确定方法及装置、数据表创建方法及装置

【技术保护点】
一种消息发送确定方法,其特征在于,包括:获得待发送消息的目标用户的标识;确定所述待发送消息对应的数据表,所述数据表中保存有至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤;根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户。

【技术特征摘要】
1.一种消息发送确定方法,其特征在于,包括:获得待发送消息的目标用户的标识;确定所述待发送消息对应的数据表,所述数据表中保存有至少一个布隆过滤器的二进制向量,所述布隆过滤器用于过滤出所述待发送消息的未发送用户的标识;确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤;根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户。2.如权利要求1所述的方法,其特征在于,采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤,具体包括:分别根据所述各哈希函数,将所述目标用户的标识映射为一个位;根据映射的各所述位,针对所述数据表中保存的所述二进制向量进行数据查询操作;根据所述查询结果,确定采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器对所述目标用户的标识进行过滤得到的过滤结果。3.如权利要求1所述的方法,其特征在于,所述数据表中只保存有一个布隆过滤器的二进制向量,根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户,具体包括:根据所述过滤结果,确定所述目标用户是否为所述待发送消息的未发送用户;若是,则确定将所述待发送消息发送给所述目标用户;否则,确定不将所述待发送消息发送给所述目标用户。4.如权利要求3所述的方法,其特征在于,确定将所述待发送消息发送给所述目标用户后,所述方法还包括:将所述待发送消息发送给所述目标用户;根据所述目标用户的标识,对所述数据表中保存的所述二进制向量进行更新。5.如权利要求1所述的方法,其特征在于,所述数据表中保存有多个布隆过滤器的二进制向量,每个所述二进制向量分别对应于一个指定时间范围,每个所述二进制向量对应的布隆过滤器用于:过滤出在该二进制向量对应的指定时间范围内所述待发送消息的未发送用户的标识。6.如权利要求5所述的方法,其特征在于,当前时刻属于各所述指定时间范围中的至少一个时间范围内;确定所述布隆过滤器的各哈希函数,并采用由所述二进制向量和所述各哈希函数构成的所述布隆过滤器,对所述目标用户的标识进行过滤,具体包括:确定所述待发送消息对应的预定规则,所述预定规则用于限定一定时间范围内可向同一用户发送所述待发送消息的最大次数;在各所述二进制向量中,确定对应的指定时间范围属于所述一定时间范围的二进制向量;针对确定的每个二进制向量分别执行:确定该二进制向量对应的布隆过滤器的各哈希函数,并采用该二进制向量和该二进制向量对应的布隆过滤器的各哈希函数构成的该布隆过滤器,对所述目标用户的标识进行过滤。7.如权利要求6所述的方法,其特征在于,根据所述过滤结果,确定是否将所述待发送消息发送给所述目标用户,具体包括:根据所述过滤结果和所述预定规则,确定在所述一定时间范围内向所述目标用户发送所述待发送消息的次数是否小于所述最大次数;若是,则确定将所述待发送消息发送给所述目标用户;否则,确定不将所述待发送消息发送给所述目标用户。8.如权利要求7所述的方法,其特征在于,确定将所述待发送消息发送给所述目标用户前,所述方法还包括:确定所述当前时刻在所述各所述指定时间范围中所属的时间范围;确定所述目标用户为:所述所属的时间范围内所述待发送消息的未发送用户。9.如权利要求7所述的方法,其特征在于,确定将所述待发送消息发送给所述目标用户后,所述方法还包括:将所述待发送消息发送给所述目标用户;确定所述发送时刻在各所述指...

【专利技术属性】
技术研发人员:戴潇桐
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1