消息推送方法、装置、电子设备及存储介质与流程

未命名 07-12 阅读:103 评论:0


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.确定单元,用于基于所述第一消息,确定关键词组;
39.查询单元,用于在信息库中查询与所述关键词组匹配的目标信息;
40.生成单元,用于根据所述目标信息和预设的消息结构,生成第二消息;
41.推送单元,用于将所述第二消息推送给所述用户终端。
42.第三方面,提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的消息推送方法的步骤。
43.第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的消息推送方法的步骤。
44.第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,且适于由处理器读取并执行,以使得具有所述处理器的电子设备执行如第一方面所述的消息推送方法的步骤。
45.应用本技术实施例所提供的技术方案,获得来自用户终端的第一消息后,先基于第一消息,确定关键词组,然后在信息库中查询与关键词组匹配的目标信息,再根据目标信息和预设的消息结构,生成第二消息,推送给用户终端。也就是说,推送给用户终端的第二消息是基于用户终端的第一消息生成的,使得推送给用户终端的第二消息更有针对性,更容易符合用户终端的信息获取需求,提高了消息推送的准确性,可以达到较好的运营效果。
46.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本技术。
附图说明
47.图1为本技术实施例中一种消息推送方法的实施流程图;
48.图2为本技术实施例中对消息的处理过程的示意图;
49.图3为本技术实施例中对延迟队列中数据的拉取过程的示意图;
50.图4为本技术实施例中对可消费队列中数据的处理过程的示意图;
51.图5为本技术实施例中对消息进行校验过程的示意图;
52.图6为本技术实施例中一种消息推送装置的结构示意图;
53.图7为本技术实施例中一种电子设备的结构示意图。
具体实施方式
54.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.本技术的核心是提供一种消息推送方法,该方法可以应用于产品推广、职位推荐、房源推荐、车源推荐等应用场景中。以职位推荐场景为例,获得来自用户终端的第一消息,通过第一消息可以获知用户终端的职位信息获取需求,基于第一消息,确定出关键词组,然后在信息库中查询与关键词组匹配的目标信息,该目标信息可以是与用户终端的职位信息获取需求相匹配的职位信息,根据目标信息和预设的消息结构,生成的第二消息可包括该职位信息,最后将第二消息推送给用户终端,这样用户终端即可获得与自己的职位信息获取需求相匹配的职位信息。
56.推送给用户终端的第二消息是基于用户终端的第一消息生成的,使得推送给用户终端的第二消息更有针对性,更容易符合用户终端的信息获取需求,提高了消息推送的准确性,可以达到较好的运营效果。
57.另外,本技术实施例所提供的技术方案可以通过消息推送服务自动完成,有助于减少人工成本,提高运营效率。
58.参见图1所示,为本技术实施例所提供的一种消息推送方法的实施流程图,该方法可以包括以下步骤:
59.s110:获得来自用户终端的第一消息。
60.在本技术实施例中,用户终端对应的用户可以是私域用户,即通过社交软件运营获取的用户,如社交软件运营群中的用户、与运营人员互加好友的用户等,私域用户可以在社交软件运营群里发送消息,或者通过社交软件与运营人员私聊发送消息。
61.用户在有信息获取需求时,可以通过用户终端发送第一消息,通过该第一消息可以获知用户的信息获取需求。比如用户的信息获取需求为职位信息获取需求,用户通过用户终端发送的第一消息可以包括求职信息,如“找x市普工职位”,通过第一消息即可获知用户的职位信息获取需求为“找x市普工职位”。
62.获得来自用户终端的第一消息后,可以继续执行后续步骤的操作。
63.s120:基于第一消息,确定关键词组。
64.获得来自用户终端的第一消息后,可以基于第一消息,确定关键词组。关键词组中可以包括一个或多个关键词。比如,第一消息为“找x市普工职位”,基于第一消息确定的关键词组可以为[x市;普工]。
[0065]
s130:在信息库中查询与关键词组匹配的目标信息。
[0066]
基于来自用户终端的第一消息,确定出关键词组后,可以基于关键词组在信息库中进行查询。信息库可以预先构建,或者通过相应接口进行访问。在产品推广应用场景中,信息库中可以包含产品信息,在职位推荐应用场景中,信息库中可以包含职位信息。
[0067]
基于关键词组在信息库中进行查询,可以得到与关键词组匹配的目标信息。比如,得到与关键词组[x市;普工]相匹配的职位信息。
[0068]
可选地,如果基于关键词组包含的所有关键词在信息库中进行查询,无法得到与关键词组匹配的目标信息,则可以减少关键词组包含的关键词后再次进行查询。可以每次减少关键词组包含的一个关键词,直至关键词组只包含必不可少的关键词。必不可少的关键词可以认为是进行目标信息查询必须存在的关键词。
[0069]
可选地,如果在信息库中无法查询到与关键词组匹配的目标信息,则可以不再进行后续步骤s140的操作,可以将该关键词组包含的关键词存到数据库中,待后续再次进行关键词组确定时使用。
[0070]
s140:根据目标信息和预设的消息结构,生成第二消息。
[0071]
在本技术实施例中,可以预设消息结构,比如预设的消息结构包括关键词组、信息内容等。
[0072]
在信息库中查询得到与关键词组匹配的目标信息后,进一步可以根据目标信息和预设的消息结构,生成第二消息。
[0073]
需要说明的是,基于第一消息,确定的关键词组可以有一个或多个,如果确定的关键词组有多个,则在信息库中查询得到的与关键词组匹配的目标信息也可能有多个,进一步地,根据目标信息和预设的消息结构,生成的第二消息可以是一个或多个。可选地,如果目标信息有多个,则生成的第二消息可以是一个,该第二消息中包含多个目标信息,或者,生成的第二消息有多个,根据每个目标信息和预设的消息结构,生成相应的第二消息,每个第二消息中包含其对应的目标信息。
[0074]
第二消息可以是小程序卡片形式的消息或者是链接形式的消息。
[0075]
s150:将第二消息推送给用户终端。
[0076]
根据在信息库中查询得到的与关键词组匹配的目标信息和预设的消息结构,生成第二消息后,可以将第二消息推送给用户终端。这样用户终端即可获得基于自身发送的第一消息确定出的关键词组查询得到的目标信息。
[0077]
应用本技术实施例所提供的方法,获得来自用户终端的第一消息后,先基于第一消息,确定关键词组,然后在信息库中查询与关键词组匹配的目标信息,再根据目标信息和预设的消息结构,生成第二消息,推送给用户终端。也就是说,推送给用户终端的第二消息是基于用户终端的第一消息生成的,使得推送给用户终端的第二消息更有针对性,更容易符合用户终端的信息获取需求,提高了消息推送的准确性,可以达到较好的运营效果。
[0078]
在本技术的一些实施例中,基于第一消息,确定关键词组,可以包括以下步骤:
[0079]
步骤一:确定第一消息包含的目标关键词;
[0080]
步骤二:基于目标关键词,确定关键词组。
[0081]
为方便描述,将上述两个步骤结合起来进行说明。
[0082]
在本技术实施例中,获得来自用户终端的第一消息后,可以先确定第一消息包含的目标关键词。
[0083]
可选地,可以先针对第一消息包含的每个目标词,确定目标词的类别,如果目标词的类别为目标类别,则将目标词确定为目标关键词。
[0084]
其中,目标词可以为第一消息包含的任意一个词。
[0085]
或者,可以先对第一消息进行分词处理,并剔除介词、助词、连词、语气词等没有实际意义的词,得到第一消息包含的具有实际意义的词,即第一消息包含的目标词是第一消息中任意一个具有实际意义的词,如地名、职位名等词。
[0086]
针对第一消息包含的每个目标词,可以先确定该目标词的类别。如该目标词的类别为职位类、地域类、薪资类、人名类等。如果该目标词的类别为目标类别,则可以将该目标词确定为目标关键词。目标类别是根据实际情况预先设定的。比如,目标类别包括职位类、地域类和薪资类,则针对第一消息包含的每个目标词,如果该目标词的类别为职位类、或地域类、或薪资类,则将该目标词确定为目标关键词。
[0087]
根据第一消息包含的每个目标词的类别,可以准确确定第一消息包含的目标关键词。
[0088]
确定出第一消息包含的目标关键词后,进一步可以基于目标关键词,确定关键词组。基于第一消息包含的目标关键词确定的关键词组更容易符合用户终端的信息获取需求。
[0089]
可选地,可以将第一消息包含的目标关键词的组合确定为关键词组。
[0090]
但是,如果第一消息包含的目标关键词的数量不足,或者目标关键词的类别不足,则可能导致查询到的目标信息的数量较多,针对性不强。所以,在本技术的一些实施例中,可以预先设定目标条件,该目标条件可以根据实际情况进行设定和调整,目标条件为进行目标信息查询所需关键词的条件。目标条件可根据具体需要灵活设置。
[0091]
在基于目标关键词,确定关键词组时,可以先确定目标关键词是否满足目标条件,如果目标关键词满足目标条件,则将目标关键词的组合确定为关键词组,基于该关键词组可以进行目标信息的查询。比如,目标条件为需至少包含地域类别和职位类别的关键词,如果第一消息包含的目标关键词有多个,其中,一个目标关键词属于地域类别,一个目标关键词属于职位类别,则可以确定目标关键词满足目标条件,如果缺少属于地域类别或职位类别的目标关键词,则可以确定目标关键词不满足目标条件。或者,目标条件为需至少包含价格区间类别和车辆类别,如果第一消息包含的目标关键词有多个,其中,一个目标关键词属于价格区间类别,一个目标关键词属于车辆类别,则可以确定目标关键词满足目标条件,如果缺少属于价格区间类别或者车辆类别的目标关键词,则确定目标关键词不满足目标条件。再如,目标条件为需至少包含地域类别和价格类别,如果第一消息包含的目标关键词包含归属于地域类别和价格类别的关键词,则可确定目标关键词满足目标条件,如果第一消息不包含归属于地域类别或价格类别的目标关键词,则确定目标关键词不满足目标条件。
[0092]
在目标关键词满足目标条件的情况下,将目标关键词的组合确定为关键词组,可
以使得确定出的关键词组包含的关键词足以用于进行目标信息的查询,更容易符合用户终端的信息获取需求。
[0093]
在本技术的一些实施例中,在目标关键词不满足目标条件的情况下,该方法还可以包括以下步骤:
[0094]
第一个步骤:确定数据库中是否存在用户终端对应的缓存关键词;
[0095]
第二个步骤:如果数据库中存在用户终端对应的缓存关键词,则确定目标关键词和缓存关键词是否满足目标条件;
[0096]
第三个步骤:如果目标关键词和缓存关键词满足目标条件,则基于目标关键词和缓存关键词确定关键词组。
[0097]
为方便描述,将上述三个步骤结合起来进行说明。
[0098]
在本技术实施例中,获得来自用户终端的第一消息,并确定出第一消息包含的目标关键词后,如果确定目标关键词不满足目标条件,则认为目标关键词的组合不足以构成关键词组,可以确定数据库中是否存在用户终端对应的缓存关键词。数据库中用户终端对应的缓存关键词可以是用户终端在前发送的消息包含的关键词,可以认为缓存关键词与用户终端的信息获取需求具有较强的相关性。
[0099]
如果数据库中存在用户终端对应的缓存关键词,则进一步可以确定目标关键词和缓存关键词是否满足目标条件。即确定目标关键词和缓存关键词的组合是否满足进行目标信息查询所需关键词的条件。如果数据库中不存在用户终端对应的缓存关键词,则可以在数据库中缓存目标关键词,缓存后,目标关键词称为缓存关键词,可以在后续再获得来自用户终端的消息时使用。
[0100]
如果目标关键词和缓存关键词满足目标条件,则可以基于目标关键词和缓存关键词确定关键词组。如果目标关键词和缓存关键词不满足目标条件,且缓存关键词与目标关键词不同,则可以在数据库中缓存目标关键词,缓存后,目标关键词也成为缓存关键词,数据库中包括目标关键词和之前存在的缓存关键词。
[0101]
可选地,在数据库中缓存目标关键词时,可以使用目标关键词替换数据库中与目标关键词同类别的缓存关键词。对于同类别的缓存关键词和目标关键词,目标关键词更容易符合用户终端近期的信息获取需求。
[0102]
在目标关键词和缓存关键词满足目标条件的情况下,基于目标关键词和缓存关键词确定关键词组,可以使得确定出的关键词组包含的关键词足以用于进行目标信息的查询,更容易符合用户终端的信息获取需求。
[0103]
在本技术的一些实施例中,基于目标关键词和缓存关键词确定关键词组,可以包括以下步骤:
[0104]
将目标关键词和缓存关键词进行组合,确定一个或多个关键词组,同一关键词组中的不同关键词的类别不同。
[0105]
在本技术实施例中,在第一消息包含的目标关键词不满足目标条件,但目标关键词和数据库中存在的缓存关键词满足目标条件的情况下,可以将目标关键词和缓存关键词进行组合,确定一个或多个关键词组,每个关键词组中可以包含多个关键词,同一关键词组中的不同关键词的类别不同。这样可以基于不同关键词组查询得到多个目标信息,更容易满足用户终端的信息获取需求。
[0106]
在本技术的一些实施例中,在确定第一消息包含的目标关键词之后,该方法还可以包括以下步骤:
[0107]
在数据库中缓存目标关键词。
[0108]
在本技术实施例中,获得来自用户终端的第一消息,确定出第一消息包含的目标关键词后,可以将目标关键词缓存到数据库中。
[0109]
可选地,如果目标关键词不满足目标条件,则可以认为仅基于目标关键词无法确定关键词组,在这种情况下,可以在数据库中缓存目标关键词。
[0110]
可选地,如果目标关键词不满足目标条件,且数据库中不存在目标关键词,则可以在数据库中缓存目标关键词。
[0111]
在数据库中缓存目标关键词后,目标关键词称为缓存关键词。如果数据库中之前存在缓存关键词,则在数据库中缓存目标关键词后,当前数据库中包括目标关键词和之前存在的缓存关键词。如果数据库中之前不存在缓存关键词,则在数据库中缓存目标关键词后,当前数据库中包括目标关键词。
[0112]
可选地,如果数据库中之前存在的缓存关键词与目标关键词相同,则可以使用目标关键词覆盖该缓存关键词。
[0113]
可选地,如果数据库中之前存在的缓存关键词与目标关键词所属类别相同,则可以使用目标关键词覆盖该缓存关键词。
[0114]
在数据库中缓存目标关键词,有助于后续有针对性地进行关键词组的确定。
[0115]
举例而言,在职位推荐应用场景中,目标条件为需至少包含地域类别和职位类别的关键词,可以有以下几种情况:
[0116]
1)第一消息为“找x市普工职位”,第一消息包含的目标关键词为“x市”和“普工”,“x市”属于地域类别,“普工”属于职位类别,目标关键词满足目标条件,将目标关键词的组合确定为关键词组,即[x市;普工];
[0117]
2)第一消息为“找普工职位”,第一消息包含的目标关键词为“普工”,“普工”属于职位类别,缺少地域类别的目标关键词,所以目标关键词不满足目标条件,如果数据库中存在用户终端对应的缓存关键词“y市”,“y市”属于地域类别,则目标关键词和缓存关键词满足目标条件,可以将目标关键词和缓存关键词的组合确定为关键词组,即[y市;普工];
[0118]
3)第一消息为“找普工职位”,第一消息包含的目标关键词为“普工”,“普工”属于职位类别,缺少地域类别的目标关键词,所以目标关键词不满足目标条件,如果数据库中存在用户终端对应的缓存关键词“x市”和“y市”,“x市”和“y市”属于地域类别,则目标关键词和缓存关键词满足目标条件,可以将目标关键词和缓存关键词进行组合,确定出两个关键词组,即[x市;普工]和[y市;普工];
[0119]
4)第一消息为“找普工职位”,第一消息包含的目标关键词为“普工”,“普工”属于职位类别,缺少地域类别的目标关键词,所以目标关键词不满足目标条件,如果数据库中不存在用户终端对应的缓存关键词,或者缓存关键词与目标关键词不同,则可以在数据库中缓存目标关键词。
[0120]
在本技术的一些实施例中,在数据库中缓存目标关键词后,可以确定数据库中当前的缓存关键词是否满足目标条件,如果满足目标条件,则可以基于数据库中当前的缓存关键词确定关键词组。这样可以及时为用户终端进行消息推送。
[0121]
在本技术的一些实施例中,可以为数据库中的每个缓存关键词设定有效时长。
[0122]
对于任意一个缓存关键词而言,当该缓存关键词在数据库中的时长达到有效时长时,在数据库中删除该缓存关键词,或者将该缓存关键词设置为无效词。这样可以有效保证在确定关键词组时使用的数据库中的缓存关键词与用户终端近期的信息获取需求具有较强的相关性。有效时长可以根据实际情况进行设定或调整,如设定为x1天或x2周。
[0123]
在本技术的一些实施例中,可以为数据库设定重置时间,到达重置时间时,数据库中的缓存关键词均无效。比如,重置时间为每天零点,则数据库中的缓存关键词只在当天有效,到达零点时即删除数据库中的缓存关键词,或者将数据库中的缓存关键词设置为无效词。这样可以有效保证在确定关键词组时使用的数据库中的缓存关键词与用户终端近期的信息获取需求具有较强的相关性。
[0124]
在本技术的一些实施例中,基于第一消息,确定关键词组,可以包括以下步骤:
[0125]
在第一时间段内针对用户终端的消息推送次数小于或等于第一阈值的情况下,基于第一消息,确定关键词组;
[0126]
和/或,在第二时间段内针对用户终端所在群的消息推送次数小于或等于第二阈值的情况下,基于第一消息,确定关键词组。
[0127]
在本技术实施例中,可以设定第一阈值,用于限定对于用户终端的消息推送次数,或者设定第二阈值,用于限定对于用户终端所在群的消息推送次数。
[0128]
获得来自用户终端的第一消息后,可以先判断在第一时间段内针对用户终端的消息推送次数与第一阈值的大小关系。如果在第一时间段内针对用户终端的消息推送次数大于第一阈值,则可以认为对用户终端推送的消息较多,可能会导致无法及时为其他用户终端进行消息推送,或者触发社交软件的防护功能,在这种情况下,可以丢弃或忽略该第一消息。如果在第一时间段内针对用户终端的消息推送次数小于或等于第一阈值,则可以基于第一消息,确定关键词组,进而在信息库中查询与关键词组匹配的目标信息,生成第二消息,推送给用户终端。
[0129]
或者,获得来自用户终端的第一消息后,可以先判断在第二时间段内针对用户终端所在群的消息推送次数与第二阈值的大小关系。如果在第二时间段内针对用户终端所在群的消息推送次数大于第二阈值,则可以认为对用户终端所在群推送的消息较多,可能会打扰到用户终端所在群的用户,或者触发社交软件的防护功能,在这种情况下,可以丢弃或忽略该第一消息。如果在第二时间段内针对用户终端所在群的消息推送次数小于或等于第二阈值,则可以基于第一消息,确定关键词组,进而在信息库中查询与关键词组匹配的目标信息,生成第二消息,推送给用户终端。
[0130]
或者,可以将上述两种方案结合起来,即在第一时间段内针对用户终端的消息推送次数小于或等于第一阈值,且在第二时间段内针对用户终端所在群的消息推送次数小于或等于第二阈值的情况下,基于第一消息,确定关键词组。
[0131]
第一时间段、第二时间段、第一阈值和第二阈值可以根据实际情况进行设定和调整,比如,设定第一时间段、第二时间段为一天的零点到二十四点,设定第一阈值为x3,设定第二阈值为x4。
[0132]
在获得来自用户终端的第一消息后,根据在第一时间段内针对用户终端的消息推送次数与第一阈值的大小关系,确定是否继续进行关键词组的确定,以及目标信息的查询
等操作,可以有效控制在第一时间段内针对每个用户终端的消息推送次数,避免某个用户终端频繁发送第一消息导致消息拥塞,无法为其他用户终端进行消息推送,同时有效避免触发社交软件的防护功能。
[0133]
另外,在获得来自用户终端的第一消息后,根据在第二时间段内针对用户终端所在群的消息推送次数与第二阈值的大小关系,确定是否继续进行关键词组的确定,以及目标信息的查询等操作,可以有效控制在第二时间段内针对用户终端所在群的消息推送次数,避免过多的消息推送打扰到用户,同时有效避免触发社交软件的防护功能。
[0134]
需要说明的是,可以通过用户终端的标识识别用户终端,还可以结合用户终端的标识与运营人员的标识识别用户终端,还可以结合用户终端的标识与群标识识别用户终端。
[0135]
在本技术的一些实施例中,在信息库中查询与关键词组匹配的目标信息之前,该方法还可以包括以下步骤:
[0136]
剔除关键词组中与第三时间段内使用过的历史关键词组相同的关键词组。
[0137]
在本技术实施例中,在获得来自用户终端的第一消息,并基于第一消息,确定关键词组后,可以分别确定每个关键词组与第三时间段内使用过的历史关键词组是否相同。针对每个关键词组,如果该关键词组与第三时间段内使用过的历史关键词组相同,则可以剔除该关键词组,如果该关键词组与第三时间段内使用过的历史关键词组不相同,则可以继续执行在信息库中查询与关键词组匹配的目标信息的步骤。
[0138]
如果基于第一信息确定的关键词组与第三时间段内使用过的历史关键词组相同,那么基于关键词组查询到的目标信息也是相同的,在第三时间段内没有必要为用户终端推送相同消息,所以在确定关键词组与第三时间段内使用过的历史关键词组不相同的情况下,再在信息库中查询与关键词组匹配的目标信息,进而进行消息推送,可以有效避免在第三时间段内为用户终端重复推送相同消息。
[0139]
第三时间段可以根据实际情况进行设定和调整,如设定为每天的零点到二十四点,或者设定为每周的周一到周日。
[0140]
在本技术的一些实施例中,在信息库中查询与关键词组匹配的目标信息,可以包括以下步骤:
[0141]
在达到第一消息对应的反馈时间的情况下,在信息库中查询与关键词组匹配的目标信息。
[0142]
在本技术实施例中,每条消息可以具有各自对应的反馈时间,对于任意一条消息而言,该消息的反馈时间可以是该消息的发送时间+该消息对应的延迟时长。不同类型的消息可以对应不同的延迟时长,比如,私聊类型的消息对应的延迟时长为x5分钟,群聊类型的消息对应的延迟时长为x6分钟。
[0143]
获得来自用户终端的第一消息,并基于第一消息,确定关键词组后,可以将第一消息对应的数据,如关键词组、会话标识等存入延迟队列,在达到第一消息对应的反馈时间后,再将其从延迟队列转至可消费队列中,在信息库中查询与关键词组匹配的目标信息。
[0144]
对于每条消息设定反馈时间,模拟运营人员的反应时间,这样可以使得用户有与运营人员交流的感受,可以提升用户体验。
[0145]
为方便理解,下面以职位推荐应用场景为例,对本技术实施例所提供的技术方案
再次进行说明。
[0146]
用户可通过相应的用户终端在社交软件上发送消息,平台通过社交软件的接口可以获得用户终端发送的消息。如图2所示,针对获得的用户终端的第一消息,可以先对该第一消息进行前置消息处理。用户终端为任意一个用户终端,第一消息是用户终端发送的任意一条消息。
[0147]
前置消息处理可以包括确定该第一消息是否为以下任意一种消息,如果是以下任意一种消息,则将该消息丢弃,同时可以向平台发送失败消息:
[0148]
1)属于非自动回复类型的消息;
[0149]
2)属于非客户类型的消息;
[0150]
3)空消息;
[0151]
4)加好友的请求消息。
[0152]
如果该第一消息不是上述任意一种消息,则进一步可以调用图谱接口对该第一消息进行解析,确定是否解析到目标关键词。如果未解析到目标关键词,则认为该第一消息无效,可以在日志系统(elasticsearch,es)中插入一条消息记录。如果解析到目标关键词,则可以对该第一消息进行消息校验。如果消息校验未通过,则可以在日志系统中插入一条消息记录。如果消息校验通过,则可以在远程字典服务(remote dictionary server,redis)数据库中缓存目标关键词,并在redis数据库中将目标关键词设置为最新数据,当天有效。
[0153]
如果redis数据库中存在用户终端对应的缓存关键词,则在redis数据库中缓存目标关键词时,可以将目标关键词替换同类别的缓存关键词,如果redis数据库中不存在用户终端对应的缓存关键词,则在redis数据库中插入用户终端对应的目标关键词等新数据。
[0154]
在redis数据库中插入新数据或者有更新关键词的情况下,进一步确定用户终端是否至少拥有职位类别和地域类别的关键词。如果至少拥有职位类别和地域类别的关键词,则将第一消息对应的数据存入延迟队列,延迟队列中第一消息对应的数据对应有分数(score)和值(value),其中分数为发送时间+延迟时长,值为会话标识(sessionid),通过会话标识可以识别到用户终端、运营人员、用户终端所在群、消息、关键词组等。如果存入延时队列失败,则可以向平台发送失败消息。
[0155]
如果在redis数据库中没有插入新数据且没有更新关键词,则可以忽略该第一消息,另外,如果用户终端没有至少拥有职位类别和地域类别的关键词,则可以忽略该第一消息。
[0156]
redis的复杂操作均基于lua脚本实现在分布式环境下的数据安全,防止并发修改的安全问题。
[0157]
如图3所示,可以按照定时器(timer)轮询拉取延迟队列中的数据,一次最多拉取十个到期数据。可以根据数据对应的score确定数据是否到期。确定是否能够拉取到到期数据,如果拉取到,则将数据转至可消费队列。如果未拉取到,则拉取最近到期的数据,获取到期时间。
[0158]
确定是否需要阻塞。如果本次拉取到到期数据并转移到可消费队列,则不需要阻塞,将会立即向redis发起下次拉取请求。如果本次未拉取到到期数据,则拉取最近到期的数据,返回到期时间,该到期时间即为阻塞时间,然后按照阻塞时间阻塞轮询线程,之后再次向redis发起下次拉取请求。如果没有拉取到最近到期的数据,则确定阻塞时间为一个固
定时长,如3分钟,阻塞轮询线程3分钟,之后再次向redis发起下次拉取请求。如此轮询往复。
[0159]
如图4所示,对于可消费队列中的数据,可以按照定时器阻塞式轮询拉取,比如拉取到第一消息对应的数据,第一消息对应的数据可以包括基于第一消息确定的关键词组,可以在信息库中查询与关键词组匹配的目标信息。在进行目标信息的查询时,可以进行最少条件优化,即如果基于关键词组无法查询到目标信息,则可以减少关键词组中的关键词后,再进行查询,直至关键词组中只包含职位类别和地域类别的关键词。确定是否查询到目标信息。如果未查询到,则可以在mysql数据库中插入一条未查询到职位的记录,同时可以向平台发送失败消息,在日志系统中更新消息记录。如果查询到,则进一步可以进行消息校验。如果消息校验未通过,则向平台发送失败消息,在日志系统中更新消息记录。如果消息校验通过,则可以增加消息计数,当天有效,判断推送消息类型,如小程序卡片类型或者链接类型(当天前n1条消息可以是小程序卡片类型的消息,后续的消息可以是链接类型的消息),基于目标信息和预设的消息结构,可以生成第二消息,并通过平台将第二消息推送给用户终端,然后在mysql数据库中插入一条消息发送记录。如果生成第二消息失败,则可以向平台发送失败消息,在日志系统中更新消息记录。
[0160]
对于平台而言,如果第二消息为小程序卡片类型的消息,则可以在mysql数据库中更新小程序主站推送状态,并在第二消息推送成功后,在日志系统中更新消息记录。另外,还可以在mysql数据库中更新小程序的平台推送状态,在日志系统中更新小程序的平台推送状态。
[0161]
另外,图2和图4中都有提到消息校验操作,对于消息校验过程,可以如图5所示。以第一消息为例,可以先确定第一消息是否为群消息。
[0162]
如果第一消息是群消息,则可以查询针对该群的消息推送次数num1,当天有效。如果针对该群的消息推送次数num1大于或等于x7,则确定校验不通过。如果针对该群的消息推送次数num1小于x7,则可以查询针对该群中用户终端的消息推送次数num2,当天有效。如果针对该群中用户终端的消息推送次数num2大于或等于x8,则确定校验不通过。如果针对该群中用户终端的消息推送次数num2小于x8,则确定校验通过。
[0163]
如果第一消息不是群消息,则可以查询针对用户终端的消息推送次数num3是否大于或等于x9。如果针对用户终端的消息推送次数num3大于或等于x9,则确定校验不通过。如果针对用户终端的消息推送次数num3小于x9,则确定校验通过。
[0164]
上述图2-5是对本技术实施例的示例描述,其中的关键词类型、具体数值等可以根据实际情况进行调整,本技术实施例对此不做限制。
[0165]
需要说明的是,本技术实施例中的将消息丢弃或忽略,是指对该消息不执行本技术实施例所提供的技术方案,可以对该消息进行人工回复或者通过其他技术方案进行处理。
[0166]
本技术实施例所提供的技术方案可以对用户终端发送的消息实现自动识别关键词,并且自动进行消息推荐,可以有效解决运营人员手动匹配效率低的问题,可以实现一人管多城管多群的能力,提升运营效率,实现自动运营。
[0167]
相应于上面的方法实施例,本技术实施例还提供了一种消息推送装置,下文描述的消息推送装置与上文描述的消息推送方法可相互对应参照。
[0168]
参见图6所示,消息推送装置600可以包括以下单元:
[0169]
获得单元610,用于获得来自用户终端的第一消息;
[0170]
确定单元620,用于基于第一消息,确定关键词组;
[0171]
查询单元630,用于在信息库中查询与关键词组匹配的目标信息;
[0172]
生成单元640,用于根据目标信息和预设的消息结构,生成第二消息;
[0173]
推送单元650,用于将第二消息推送给用户终端。
[0174]
应用本技术实施例所提供的装置,获得来自用户终端的第一消息后,先基于第一消息,确定关键词组,然后在信息库中查询与关键词组匹配的目标信息,再根据目标信息和预设的消息结构,生成第二消息,推送给用户终端。也就是说,推送给用户终端的第二消息是基于用户终端的第一消息生成的,使得推送给用户终端的第二消息更有针对性,更容易符合用户终端的信息获取需求,提高了消息推送的准确性,可以达到较好的运营效果。
[0175]
在本技术的一些实施例中,确定单元620,用于:
[0176]
确定第一消息包含的目标关键词;
[0177]
基于目标关键词,确定关键词组。
[0178]
在本技术的一些实施例中,确定单元620,用于:
[0179]
针对第一消息包含的每个目标词,确定目标词的类别;
[0180]
如果目标词的类别为目标类别,则将目标词确定为目标关键词。
[0181]
在本技术的一些实施例中,确定单元620,用于:
[0182]
确定目标关键词是否满足目标条件,目标条件为进行目标信息查询所需关键词的条件;
[0183]
如果目标关键词满足目标条件,则将目标关键词的组合确定为关键词组。
[0184]
在本技术的一些实施例中,确定单元620,还用于:
[0185]
在目标关键词不满足目标条件的情况下,确定数据库中是否存在用户终端对应的缓存关键词;
[0186]
如果数据库中存在用户终端对应的缓存关键词,则确定目标关键词和缓存关键词是否满足目标条件;
[0187]
如果目标关键词和缓存关键词满足目标条件,则基于目标关键词和缓存关键词确定关键词组。
[0188]
在本技术的一些实施例中,确定单元620,用于:
[0189]
将目标关键词和缓存关键词进行组合,确定一个或多个关键词组,同一关键词组中的不同关键词的类别不同。
[0190]
在本技术的一些实施例中,消息推送装置600还包括缓存单元,用于:
[0191]
在数据库中缓存目标关键词。
[0192]
在本技术的一些实施例中,确定单元620,用于:
[0193]
在第一时间段内针对用户终端的消息推送次数小于或等于第一阈值的情况下,基于第一消息,确定关键词组;
[0194]
和/或,在第二时间段内针对用户终端所在群的消息推送次数小于或等于第二阈值的情况下,基于第一消息,确定关键词组。
[0195]
在本技术的一些实施例中,消息推送装置600还包括剔除单元,用于:
[0196]
在在信息库中查询与关键词组匹配的目标信息之前,剔除关键词组中与第三时间段内使用过的历史关键词组相同的关键词组。
[0197]
在本技术的一些实施例中,查询单元,用于:
[0198]
在达到第一消息对应的反馈时间的情况下,在信息库中查询与关键词组匹配的目标信息。
[0199]
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0200]
相应于上面的方法实施例,本技术实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述消息推送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0201]
如图7所示,为电子设备的一种结构示意图,电子设备可以包括:处理器710、存储器711、通信接口712和通信总线713。处理器710、存储器711、通信接口712均通过通信总线713完成相互间的通信。
[0202]
在本技术实施例中,处理器710可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
[0203]
处理器710可以调用存储器711中存储的计算机程序,具体的,处理器710可以执行消息推送方法实施例中的操作。
[0204]
存储器711中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器711中至少存储有用于实现以下功能的程序:
[0205]
获得来自用户终端的第一消息;
[0206]
基于第一消息,确定关键词组;
[0207]
在信息库中查询与关键词组匹配的目标信息;
[0208]
根据目标信息和预设的消息结构,生成第二消息;
[0209]
将第二消息推送给用户终端。
[0210]
在一种可能的实现方式中,存储器711可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
[0211]
此外,存储器711可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
[0212]
通信接口712可以为通信模块的接口,用于与其他设备或者系统连接。
[0213]
当然,需要说明的是,图7所示的结构并不构成对本技术实施例中电子设备的限定,在实际应用中电子设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
[0214]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述消息推送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁
碟或者光盘等。
[0215]
此外,本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该电子设备执行前文所对应实施例中消息推送方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本技术方法实施例的描述。
[0216]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0217]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0218]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
[0219]
本领域普通技术人员可以意识到,结合本技术实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0220]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0221]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0222]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0223]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0224]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0225]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。

技术特征:
1.一种消息推送方法,其特征在于,包括:获得来自用户终端的第一消息;基于所述第一消息,确定关键词组;在信息库中查询与所述关键词组匹配的目标信息;根据所述目标信息和预设的消息结构,生成第二消息;将所述第二消息推送给所述用户终端。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息,确定关键词组,包括:确定所述第一消息包含的目标关键词;基于所述目标关键词,确定关键词组。3.根据权利要求2所述的方法,其特征在于,所述确定所述第一消息包含的目标关键词,包括:针对所述第一消息包含的每个目标词,确定所述目标词的类别;如果所述目标词的类别为目标类别,则将所述目标词确定为目标关键词。4.根据权利要求2所述的方法,其特征在于,所述基于所述目标关键词,确定关键词组,包括:确定所述目标关键词是否满足目标条件,所述目标条件为进行所述目标信息查询所需关键词的条件;如果所述目标关键词满足所述目标条件,则将所述目标关键词的组合确定为关键词组。5.根据权利要求4所述的方法,其特征在于,在所述目标关键词不满足所述目标条件的情况下,所述方法还包括:确定数据库中是否存在所述用户终端对应的缓存关键词;如果所述数据库中存在所述用户终端对应的缓存关键词,则确定所述目标关键词和所述缓存关键词是否满足所述目标条件;如果所述目标关键词和所述缓存关键词满足所述目标条件,则基于所述目标关键词和所述缓存关键词确定关键词组。6.根据权利要求5所述的方法,其特征在于,所述基于所述目标关键词和所述缓存关键词确定关键词组,包括:将所述目标关键词和所述缓存关键词进行组合,确定一个或多个关键词组,同一关键词组中的不同关键词的类别不同。7.根据权利要求2所述的方法,其特征在于,所述方法还包括:在数据库中缓存所述目标关键词。8.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息,确定关键词组,包括:在第一时间段内针对所述用户终端的消息推送次数小于或等于第一阈值的情况下,基于所述第一消息,确定关键词组;和/或,在第二时间段内针对所述用户终端所在群的消息推送次数小于或等于第二阈值的情况下,基于所述第一消息,确定关键词组。
9.根据权利要求1所述的方法,其特征在于,在所述在信息库中查询与所述关键词组匹配的目标信息之前,所述方法还包括:剔除所述关键词组中与第三时间段内使用过的历史关键词组相同的关键词组。10.根据权利要求1至9之中任一项所述的方法,其特征在于,所述在信息库中查询与所述关键词组匹配的目标信息,包括:在达到所述第一消息对应的反馈时间的情况下,在信息库中查询与所述关键词组匹配的目标信息。11.一种消息推送装置,其特征在于,包括:获得单元,用于获得来自用户终端的第一消息;确定单元,用于基于所述第一消息,确定关键词组;查询单元,用于在信息库中查询与所述关键词组匹配的目标信息;生成单元,用于根据所述目标信息和预设的消息结构,生成第二消息;推送单元,用于将所述第二消息推送给所述用户终端。12.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至10之中任一项所述的消息推送方法的步骤。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10之中任一项所述的消息推送方法的步骤。

技术总结
本申请公开了一种消息推送方法、装置、电子设备及存储介质,包括以下步骤:获得来自用户终端的第一消息;基于第一消息,确定关键词组;在信息库中查询与关键词组匹配的目标信息;根据目标信息和预设的消息结构,生成第二消息;将第二消息推送给用户终端。应用本申请实施例所提供的技术方案,推送给用户终端的第二消息是基于用户终端的第一消息生成的,使得推送给用户终端的第二消息更有针对性,更容易符合用户终端对应用户的信息获取需求,提高了消息推送的准确性,可以达到较好的运营效果。可以达到较好的运营效果。可以达到较好的运营效果。


技术研发人员:刘鑫
受保护的技术使用者:北京五八赶集信息技术有限公司
技术研发日:2023.03.17
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐