策略处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种策略处理方法、装置、设备及存储介质。
背景技术
策略是企业以顾客需求为出发点,根据获得的顾客需求量、购买力、商业界的期望值等信息制定的一种方案,策略的精确实施能够提高业务转化、促进交易,进而实现、提高企业知名度等。因而,如何实现策略是关键。
目前,策略的实现主要是策略提出人提出一个策略规划后,与专业的策略制定人进行线下沟通,在策略制定人理解策略提出人意图的基础上,利用开发工具通过编码得到策略,进而由策略运营工具完成策略的运营实施,从而达到目的。
然而,在实现本发明过程中,发明人发现:上述方案中,策略的实现需要策略提出人和专业的策略制定人进行沟通,进而再通过编码实现,从策略提出到策略实现周期长,人工成本高,效率低,无法保证策略的及时实施。
发明内容
本申请提供一种策略处理方法、装置、设备及存储介质,用以解决现有策略实现方案中存在的策略实现周期长,人工成本高,效率低,无法保证策略的及时实施的问题。
第一方面,本申请实施例提供一种策略处理方法,包括:
获取用户信息;
根据所述用户信息和预先配置的策略信息,确定第一策略表达式,所述策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足所述策略条件时的操作;所述用户信息对应的用户满足所述第一策略表达式中的策略条件;
执行所述第一策略表达式所表示的操作。
在第一方面的一种可能设计中,所述根据所述用户信息和预先配置的策略信息,确定第一策略表达式,包括:
根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果;
基于每个策略表达式的条件判断结果,从所述多个策略表达式中,确定出所述第一策略表达式。
可选的,所述根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果,包括:
对于所述策略信息中的每个策略表达式,对所述策略表达式进行处理,确定所述策略表达式表示的策略条件;
根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果。
可选的,所述根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果,包括:
对所述策略表达式表示的策略条件进行解析,确定所述策略条件包括的至少两个用户行为标识和至少一个运算符,每个用户行为标识用于表示业务条件,每个运算符用于连接相邻的两个用户行为标识;
根据每个用户行为标识表示的业务条件和所述用户信息,确定每个用户行为标识对应的业务匹配结果;
根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果。
可选的,所述根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,包括:
基于每个运算符具有的优先级和运算符类型,对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行运算,得到所述策略表达式的条件判断结果。
可选的,所述根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,包括:
利用用户行为栈和运算符栈,依次对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行处理,得到所述策略表达式的条件判断结果。
在第一方面的另一种可能设计中,每个策略表达式包括策略条件、满足所述策略条件时的操作和至少一个运算符。
第二方面,本申请实施例提供一种策略处理装置,包括:获取模块、处理模块和执行模块;
所述获取模块,用于获取用户信息;
所述处理模块,用于根据所述用户信息和预先配置的策略信息,确定第一策略表达式,所述策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足所述策略条件时的操作;所述用户信息对应的用户满足所述第一策略表达式中的策略条件;
所述执行模块,用于执行所述第一策略表达式所表示的操作。
在第二方面的一种可能设计中,所述处理模块,具体用于根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果,基于每个策略表达式的条件判断结果,从所述多个策略表达式中,确定出所述第一策略表达式。
可选的,所述处理模块,用于根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果,具体为:
所述处理模块,具体用于对于所述策略信息中的每个策略表达式,对所述策略表达式进行处理,确定所述策略表达式表示的策略条件,以及根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果。
可选的,所述处理模块,用于根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果,具体为:
所述处理模块,具体用于:
对所述策略表达式表示的策略条件进行解析,确定所述策略条件包括的至少两个用户行为标识和至少一个运算符,每个用户行为标识用于表示业务条件,每个运算符用于连接相邻的两个用户行为标识;
根据每个用户行为标识表示的业务条件和所述用户信息,确定每个用户行为标识对应的业务匹配结果;
根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果。
可选的,所述处理模块,用于根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,具体为:
所述处理模块,具体用于基于每个运算符具有的优先级和运算符类型,对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行运算,得到所述策略表达式的条件判断结果。
可选的,所述处理模块,用于根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,具体为:
所述处理模块,具体用于利用用户行为栈和运算符栈,依次对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行处理,得到所述策略表达式的条件判断结果。
在第二方面的另一种可能设计中,每个策略表达式包括策略条件、满足所述策略条件时的操作和至少一个运算符。
第三方面,本申请实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面以及各可能设计所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面以及各可能设计所述的方法。
本申请实施例提供的策略处理方法、装置、设备及存储介质,通过获取用户信息,根据该用户信息和预先配置的策略信息,确定第一策略表达式,其中,策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足该策略条件时的操作,即该用户信息对应的用户满足第一策略表达式中的策略条件,电子设备可以执行该第一策略表达式所表示的操作。该技术方案中,电子设备可以基于预设的策略信息和获取的用户信息,确定用户满足的策略条件对应的第一策略表达式,并执行该第一策略表达式所表示的操作,实现方案简单,易于实现,不需要专业的策略制定人编程或编写SQL解析器,降低了人工成本,提高了策略实施的及时性,实施效率高。
附图说明
图1为本申请实施例提供的策略处理方法适用的网络架构的示意图;
图2为本申请实施例提供的策略处理方法实施例一的流程示意图;
图3为本申请实施例提供的策略处理方法实施例二的流程示意图;
图4为本申请实施例提供的策略处理方法实施例三的流程示意图;
图5为本申请实施例提供的策略处理方法实施例四的流程示意图;
图6为本申请实施例提供的策略处理装置实施例的结构示意图;
图7为本申请实施例提供的用于执行策略处理方法的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本申请实施例所涉及的名词进行解释:
栈(stack):又名堆栈,它是一种运算受限的线性表,其限定只能在表尾进行插入和删除操作,进行操作的这一端被称为栈顶,相对地,线性表的另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
策略信息:通常也称为是策略,通常指实现某个目标的方案的集合。具体的,策略信息可以包括多个策略表达式,其是策略的具体体现形式。每个策略表达式包括策略条件和满足该策略条件时执行的操作。对于每个策略表达式,其包括的策略条件和满足的策略条件时执行的操作之间通过运算符连接。可选的,每个策略条件可以包括至少一个用户行为标识,在某个策略条件包括至少两个用户行为标识时,相邻的用户行为标识之间通过运算符连接。
本申请具体的应用场景如下:策略就是为了实现某一个目标,首先可以根据可能出现的问题或想要达到的目标制定若干对应的方案,并且,在实现目标的过程中,根据形势的发展和变化来制定出新的方案,或者根据形势的发展和变化来选择相应的方案,最终实现目标。
具体的,在企业中,为了提高企业或某个电商网站的竞争力,可以以顾客需求为出发点,根据获得的顾客需求量、购买力、商业界的期望值等信息制定一种策略,通过对其精确实施,能够提高业务转化率以及促进交易率。
目前,策略的制定和实现主要是通过策略提出人和专业的策略制定人进行沟通,在策略制定人理解策略提出人意图的基础上,通过编码实现策略,该方案从策略提出到策略实现周期长,有很多重复编码工作,投入人工成本高,沟通成本高,而且效率低。
为了解决上述问题,策略的实现还可以通过如下方式实现:策略提出人提出一个策略规划后,与专业的策略制定人进行线下沟通,策略制定人在理解策略提出人意图的基础上,不用编码,只需编写一个符合策略要求的结构化查询语言(structured querylanguage,SQL)解析器,进而由SQL解析器执行相应的步骤,即可实现对应策略。该方案同样需要策略提出人和专业的策略制定人进行,同样存在人工成本高,效率低,无法保证策略及时实施的问题。
针对上述问题,本申请的发明构思如下:策略提出人提出一个策略后,可以将策略通过策略表达式的形式表示出来,进而将其存储在电子设备上,这样电子设备在获取到用户信息时,可以根据用户信息和预先配置的策略信息,确定第一策略表达式,该策略信息包括多个策略表达式,每个策略表达式用于表示策略条件(即,策略的执行条件)和满足该策略条件时的操作,且该用户信息对应的用户满足第一策略表达式中的策略条件,最后执行该第一策略表达式所表示的操作。该技术方案中,在策略实现的过程中,策略提出人可以根据需要,将该策略信息配置到一个电子设备中,从而使得电子设备自动实现策略,降低了策略实现过程中的重复编码工作,能够保证策略的及时实施,降低了人工成本,提高了处理效率。
示例性的,本申请实施例提供的策略处理方法可以应用于图1所示的网络结构图中。图1为本申请实施例提供的策略处理方法适用的网络架构的示意图。如图1所示,该网络结构可以包括电子设备11和与该电子设备连接的至少一个数据平台12。
在本申请的实施例中,每个数据平台中可以存储或产生数据的数据源。示例性的,数据平台可以是ES(elasticsearch),也可以是分布式文件系统(hadoop distributedfile system,HDFS),还可以是其他的数据平台,对于数据平台的类型,本申请实施例并不对其进行限定。
示例性,参照图1所示,在实际应用中,策略提出人10基于实际需求提出一个策略时,可以将该策略以策略表达式的形式存储到电子设备中,生成策略信息,以便后续在获取到用户13对应的用户信息时,电子设备11可以自动执行本申请实施例提供的策略处理方法,从而在用户13满足策略的执行条件时执行相应的操作,以达到策略实施的目的,例如,将策略表达式中包括的优惠信息推送给用户13等。
可以理解的是,本申请实施例的执行主体可以是终端设备,例如,计算机、平板电脑等,也可以是服务器,例如,后台的处理平台等。因而,本实施例以终端设备和服务器统称为电子设备进行解释说明,关于该电子设备具体为终端设备,还是服务器,其可以实际情况确定。
示例性的,参照图1所示,在本申请的实施例中,电子设备11可以包括数据接收模块111、策略生成模块112、策略处理模块113、业务处理模块114和触达模块115。
其中,数据接收模块111可以用于接收数据,例如,从上述至少一个数据平台接收数据。该数据可以是数据平台(例如,其他系统)产生的用户实时行为数据,也可以是按一定规则导出的离线标签数据。在本申请的实施例中,该数据通常包含了用户信息。
策略生成模块112可以是为运营人员、产品服务人员等策略制定人提供的策略管理平台,策略制定人将提出的策略规划输入到该策略生成模块中可以生成策略信息,具体的,策略信息可以包括多个策略表达式,每个策略表达式包括策略条件以及满足该策略条件时的操作等。
策略处理模块113用于解析策略信息包括的多个策略表达式,并基于业务处理模块114对获取到的用户信息和多个策略表达式进行业务处理,判断用户信息对应的用户是否满足策略表达式中的策略条件,进而决定是否触达用户。
业务处理模块114用于调用业务接口或是本地采集到的数据集,并判断用户信息对应的用户是否满足第一策略表达式中的策略条件。
触达模块115用于将第一策略表达式中该策略条件对应操作的具体内容推送给用户。可选的,电子设备通过调用终端设备自带的用于推送厂商消息的应用,公共消息组件,运营商短信等将操作对应的内容推送给用户。
下面以具体实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的策略处理方法实施例一的流程示意图。如图2所示,该方法可以包括如下步骤:
S201、获取用户信息。
在本申请的实施例中,电子设备可以与至少一个数据平台连接,当从某个数据平台获取到数据后,可以对获取到的数据进行处理,解析出其中的用户信息。电子设备还可以是自身存储数据的设备,因而,其可以获取到自身存储的数据,进而对其进行分析,也可以获取到用户信息。
具体的,用户信息可以携带在电子设备从外部接收到的数据中。其中,该数据可以是一个实时的消息队列(message queue,MQ)消息,也可以是通过解析一个人群标签得到的数据。本申请实施例不对数据的具体表现形式进行限定,其可以根据实际需求确定。
示例性的,用户信息可以是用户id,用户行为数据等形式,也可以是其他的形式,此处不对其进行限定。在本申请的实施例中,用户信息主要用于表示策略是否可执行的处理对象。
S202、根据用户信息和预先配置的策略信息,确定第一策略表达式。
其中,该策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足该策略条件时的操作;因而,在本实施例中,该用户信息对应的用户满足第一策略表达式中的策略条件。
具体的,在本申请的实施例中,策略提出人可以根据业务需求,在电子设备的策略生成模块中输出自己创建的策略信息,最终以“策略表达式”的方式保存到电子设备中。示例性的,策略信息通常保存在电子设备的数据库(如Mysql)中。
示例性的,每个策略表达式可以包括策略条件以及满足该策略条件时的操作,因而,电子设备在获取到用户信息后,例如可以通过查询数据库,获取该电子设备中预先配置的策略信息,进而依次对用户信息和策略信息包括的每个策略表达式进行处理,判断该用户信息对应的用户是否满足某个策略表达式中的策略条件,从而将用户信息对应的用户满足策略条件的策略表达式确定为第一策略表达式。
示例性的,假设策略表达式分别为20岁以下→A,20-50岁→B,50岁以上→C,其中,20岁以下,20-50岁,50岁以上等属于策略条件,而A、B、C属于满足策略条件时的操作,即若用户信息对应的用户年龄在20岁以下,则确定“20岁以下→A”为待确定的第一策略表达式;同理,若用户信息对应的用户年龄在20-50岁之间,则确定“20-50岁→B”为待确定的第一策略表达式;若用户信息对应的用户年龄在50岁以上,则确定“50岁以上→C”为待确定的第一策略表达式。
进一步的,策略表达式还可以通过如下形式表示,例如:C2_A1&A2,C1_A4等。对于C2_A1&A2,A1&A2表示策略条件,C2表示满足策略条件A1&A2时的操作,即若用户信息对应的用户满足A1&A2,则确定C2_A1&A2为待确定的第一策略表达式。同理,对于C1_A4,其中,A4表示策略条件,C1表示满足策略条件A4时的操作,即若用户信息对应的用户满足A4,则确定C1_A4为待确定的第一策略表达式。
S203、执行该第一策略表达式所表示的操作。
在本实施例中,由于每个策略表达式可以用于表示策略条件和满足该策略条件时的操作,即每个策略表达式包括策略条件和满足该策略条件时的操作,所以,当电子设备根据用户信息,从策略信息包括的多个策略表达式中确定出第一策略表达式时,也可以确定出该第一策略表达式中的操作,相应的,电子设备可以执行该第一策略表达式所表示的操作。
示例性的,电子设备执行该第一策略表达式所表示的操作可以是电子设备向用户的终端设备推送某个业务的优惠信息等。本申请实施例提供的策略处理方法,通过获取用户信息,根据该用户信息和预先配置的策略信息,确定第一策略表达式,其中,策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足该策略条件时的操作,也即,在本实施例中,该用户信息对应的用户满足第一策略表达式中的策略条件,所以,电子设备可以执行该第一策略表达式所表示的操作。该技术方案中,电子设备可以基于预设的策略信息和获取的用户信息,确定用户满足的策略条件对应的第一策略表达式,并执行该第一策略表达式所表示的操作,实现方案简单,易于实现,不需要专业的策略制定人编程或编写SQL解析器,降低了人工成本,提高了策略实施的及时性,实施效率高。
示例性的,在本申请的实施例中,每个策略表达式包括策略条件、满足该策略条件时的操作和至少一个运算符。
其中,策略条件和满足该策略条件时的操作可以通过运算符进行连接,而且当策略条件包括多个子条件时,相邻的两个子条件也可以通过某个运算符连接。
示例性的,下面对策略表达式的具体组成进行解释说明。
策略表达式由操作内容标识、策略条件标识和运算符组成。在本申请的实施例中,策略条件标识也可以称为用户行为标识。
具体的,操作内容标识是操作内容的唯一标识,其可以是预先定义的,全局唯一,操作内容标识的部分示例,如表1所示。
表1
操作内容标识 |
表示的操作内容 |
C1 |
一篇介绍最近A股市场的文章 |
C2 |
一张目标支付方式的支付立减券 |
C3 |
目标支付方式可提额的通知 |
C4 |
低利率贷款产品 |
C5 |
开通目标支付方式有优惠信息 |
可以理解的是,表1中仅示出了部分操作内容标识和该操作内容标识对应的操作内容。在实际应用中,操作内容标识和该操作内容标识对应的操作内容还可以有其他的表现形式,策略表达式中表示操作可以根据实际需求确定,此处不再赘述。
示例性的,在本申请的实施例中,支付方式可以有很多种,例如,存储卡支付,信用卡支付,白条支付,花呗支付等,关于支付方式的具体表现形式可以有多种,此处不再赘述。因而,上述目标支付方式可以是上述支付方式中的任意一种,此处不再赘述。
可选的,策略条件标识实际上是用户行为标识,其是基于用户的行为抽象而来的,可以认为是行为的编号,全局唯一,对每个用户来说,每个用户行为标识会返回两种结果:真(true)或假(false)。对于业务中想要关注的任何用户行为,都可以抽象为对应的用户行为标识,通过策略条件标识表示。示例性的,用户行为标识部分示例如表2所示。
表2
可以理解的是,表2中仅示出了部分用户行为标识和用户行为标识对应的结果。在实际应用中,用户行为标识和用户行为标识对应结果还可以有其他的内容和形式,其可以根据实际需求确定,此处不再赘述。
可选的,在本申请的实施例中,运算符可以是策略提出人根据实际需求自定义的一些符号或者是目前统计运算中使用的运算符号,例如,“_”,“(”,“)”,“&”,“|”,“!”等。下面对本申请中可能涉及到的部分运算符的运算规则进行解释说明,具体参见下述表3所示。
表3
上述分别介绍了操作内容标识、策略条件和运算符的基本含义,下述对由操作内容标识、策略条件和运算符组成的策略表达式表示的语义进行解释说明,具体参照表4所示。
表4
可以理解的是,上述介绍了部分策略表达式表示的语义,根据上述设定的用户行为标识和操作内容标识的具体含义,电子设备中设置的策略表达式还可以有其他的形式,因而,关于其他形式的策略表达式的具体含义可以根据实际情况确定,此处不再赘述。
在本申请的实施例中,策略信息通过策略表达式的形式体现,使得电子设备可以根据策略表达式中的策略条件和操作内容标识,自动执行策略,无需策略制定人参与,简化了实现流程,缩短了策略的实现周期,降低了成本,提高了策略执行的效率。
示例性的,在上述实施例的基础上,图3为本申请实施例提供的策略处理方法实施例二的流程示意图。如图3所示,上述S202可以通过如下步骤实现:
S301、根据策略信息中每个策略表达式表示的策略条件和用户信息,确定每个策略表达式的条件判断结果。
在本申请的实施例中,电子设备在获取到用户信息后,可以对策略信息中的每个策略表达式进行处理,首先确定出每个策略表达式表示的策略条件,进而判断该用户信息对应的用户是否满足策略表达式表示的策略条件,从而输出每个策略表达式的条件判断结果。
例如,对于上述策略表达式C2_A1&A2,电子设备通过对C2_A1&A2进行解析,可以确定出C2_A1&A2表示的策略条件A1&A2,进而调用业务处理模块,判断用户信息对应的用户是否满足A1&A2的条件,即判断该用户是否向购物车添加了商品,以及是否开通了目标支付方式,进而根据两者的判断结果得到策略表达式C2_A1&A2的条件判断结果,即如果用户添加商品到购物车,且开通了目标支付方式,则策略表达式C2_A1&A2的条件判断结果为真,否则为假。
S302、基于每个策略表达式的条件判断结果,从多个策略表达式中,确定出第一策略表达式。
在本申请的实施例中,由于用户信息对应的用户满足第一策略表达式表示的策略条件,即对于该用户信息对应的用户来说,第一策略表达式的条件判断结果为真,所以,电子设备根据用户信息和策略信息包括的多个策略表达式的策略条件确定每个策略表达式的条件判断结果后,可以将条件判断结果为真的策略表达式确定为第一策略表达式。
本申请实施例提供的策略处理方法,根据策略信息中每个策略表达式表示的策略条件和用户信息,确定每个策略表达式的条件判断结果,基于每个策略表达式的条件判断结果,从多个策略表达式中,确定出第一策略表达式。该技术方案中,基于策略表达式的策略条件和用户信息可以确定出适合该用户信息对应用户的策略表达式,其为后续操作内容的准确推送奠定了基础。
示例性的,在上述实施例的基础上,图4为本申请实施例提供的策略处理方法实施例三的流程示意图。如图4所示,上述S301可以通过如下步骤实现:
S401、对于策略信息中的每个策略表达式,对该策略表达式进行处理,确定策略表达式表示的策略条件。
示例性的,在本申请的实施例中,由于策略表达式用于表示策略条件和满足策略条件时的操作,且策略条件和满足策略条件时的操作通过运算符连接。
在实际应用中,该运算符为“_”,即策略表达式为“操作内容标识_策略条件”。因而,若想得到每个策略表达式的条件判断结果,首先将策略表达式的字符串按“_”字符拆分,将策略表达式拆分为操作内容标识和策略条件部分,从而得到了策略表达式表示的策略条件。
S402、根据用户信息对应的用户是否满足策略表达式表示的策略条件,确定策略表达式的条件判断结果。
在本申请的实施例中,对于每个策略表达式中的策略条件,可以对每个策略条件进行拆分,确定出每个策略条件包括的多个策略子表达式,进而根据用户信息,调用业务处理模块,判断用户信息对应的用户是否满足策略表达式表示的策略条件,进而确定每个策略子表达式的判断结果,结合所有策略子表达式的判断结果,得到该策略表达式的条件判断结果。
关于该步骤的具体实现可以参见下述图5所示实施例中的记载,此处不再赘述。
本申请实施例提供的策略处理方法,对于策略信息中的每个策略表达式,对该策略表达式进行处理,确定策略表达式表示的策略条件,根据用户信息对应的用户是否满足策略表达式表示的策略条件的判断结果,得到策略表达式的条件判断结果,其可以准确的确定出每个策略表达式的条件判断结果,为后续策略的准确及时实施奠定了基础。
示例性的,在上述实施例的基础上,图5为本申请实施例提供的策略处理方法实施例四的流程示意图。如图5所示,上述S402可以通过如下步骤实现:
S501、对策略表达式表示的策略条件进行解析,确定策略条件包括的至少两个用户行为标识和至少一个运算符。
其中,每个用户行为标识用于表示一个业务条件,每个运算符用于连接相邻的两个用户行为标识。
在本申请的实施例中,策略表达式表示的策略条件可以是由至少两个用户行为标识和连接相邻两个用户行为标识的运算符组成的,因而,通过对每个策略表达式的策略条件进行解析可以得到策略条件包括用户行为标识或用户行为标识和运算符。
作为一种示例,在策略条件只包含一个用户行为标识时,通过对策略表达式表示的策略条件进行解析,可以得到该策略条件包括的该用户行为标识。因而,用户信息对应的用户是否满足该用户行为标识对应的业务条件的判断结果就是该策略表达式的条件判断结果。
作为另一种示例,在策略条件包含至少两个用户行为标识时,这时相邻两个用户行为标识之间通过运算符连接,所以,通过对策略表达式表示的策略条件进行解析,可以得到该策略条件包括的至少两个用户行为标识和至少一个运算符。因而,该策略表达式的条件判断结果需要根据上述至少两个用户行为标识和至少一个运算符以及用户信息共同确定。
S502、根据每个用户行为标识表示的业务条件和用户信息,确定每个用户行为标识对应的业务匹配结果。
在本申请的实施例中,对于策略条件包括的每个用户行为标识均可以执行本步骤的操作,即判断用户信息对应的用户是否能够满足上述每个用户行为标识表示的业务条件,进而得到每个用户行为标识对应的业务匹配结果。
示例性的,对于上述策略表达式C2_A1&A2中的策略条件A1&A2,电子设备首先可以确定出A1、A2以及连接A1和A2的运算符&,再判断用户信息是否满足A1表示的业务条件,得到A1对应的业务匹配结果,判断用户信息是否满足A2表示的业务条件A2对应的业务匹配结果。
可选的,由于A1表示用户添加商品到购物车,A2表示开通了目标支付方式,则判断用户信息对应的用户是否添加商品到购物车可以得到A1的业务匹配结果,判断用户信息对应的用户是否开通了目标支付方式可以得到A2的业务匹配结果。
示例性的,在本实施例中,若用户信息对应的用户添加商品到购物车了,则A1的业务匹配结果为真,用户信息对应的用户没有添加商品到购物车,则A1的业务匹配结果为假;相应的,若用户信息对应的用户开通了目标支付方式,则A2的业务匹配结果为真,若用户信息对应的用户没有开通目标支付方式,则A2的业务匹配结果为假。
S503、根据至少两个用户行为标识对应的业务匹配结果和至少一个运算符,确定该策略表达式的条件判断结果。
示例性的,当电子设备确定出每个用户行为标识对应的业务匹配结果后,还需要根据连接用户行为标识的运算符得出策略表达式的条件判断结果。
示例性的,对于S502中的策略条件A1&A2,在得到A1对应的业务匹配结果和A2对应的业务匹配结果后,需要根据A1对应的业务匹配结果和A2对应的业务匹配结果以及连接A1和A2的运算符&,得到该策略条件A1&A2对应的条件判断结果。
示例性的,由于在一个表达式中,运算符&两边的判断结果均为真时,该表达式的取值才为真,因而,若A1的业务匹配结果为真,且A2的业务匹配结果为真,则确定该策略表达式的条件判断结果为真,若A1的业务匹配结果为假,和/或,A2的业务匹配结果为假,则确定该策略表达式的条件判断结果为假。
进一步的,由于策略条件包括的用户行为标识可以通过多个不同类型的运算符连接,且不同类型的运算符具有不同的优先级,所以,在本申请的实施例中,该步骤S503可以通过如下步骤实现:
基于每个运算符具有的优先级和运算符类型,对至少两个用户行为标识对应的业务匹配结果和至少一个运算符进行运算,得到该策略表达式的条件判断结果。
示例性的,在本申请的实施例中,在确定出每个策略表达式中至少两个用户行为标识对应的业务匹配结果后,可以根据上述至少一个运算符的类型和具有的优先级,最终确定策略表达式的条件判断结果。
例如,当计算策略条件“A1|A2”的条件判断结果时,首先确定“|”之前的A1的业务匹配结果,若该A1业务匹配结果为真,则可以不计算“|”之后的A2的业务匹配结果,直接确定该策略条件“A1|A2”的条件判断结果为真,若该A1的业务匹配结果为假,则还需要计算“|”之后的A2的业务匹配结果,进而在A2的业务匹配结果为假时,确定该策略条件“A1|A2”的条件判断结果为假,否则,策略条件“A1|A2”的条件判断结果为真。
再比如,当计算策略条件“A1&A2”的条件判断结果时,首先确定“&”之前的A1的业务匹配结果,若该A1业务匹配结果为假,则可以不计算“&”之后的A2的业务匹配结果,直接确定该策略条件“A1&A2”的条件判断结果为假;若该A1的业务匹配结果为真,则还需要计算“&”之后的A2的业务匹配结果,进而在A2的业务匹配结果也为真时,才确定该策略条件“A1&A2”的条件判断结果为真,否则“A1&A2”的条件判断结果为假。
在本实施例中,基于每个运算符具有的优先级和运算符类型,对至少两个用户行为标识对应的业务匹配结果和至少一个运算符进行运算,得到该策略表达式的条件判断结果,简化了条件判断的流程,提高了执行效率。
此外,在本申请的实施例中,为了保证策略条件判断的准确性,策略表达式中策略条件的各用户行为标识之间的运算,可以采用“栈”这种数据结构实现表达式内部的计算。因而,该步骤S503可以通过如下步骤实现:
利用用户行为栈和运算符栈,依次对至少两个用户行为标识对应的业务匹配结果和至少一个运算符进行处理,得到该策略表达式的条件判断结果。
在本申请的实施例中,根据策略条件包括的用户行为标识和运算符的性质,电子设备中可以预先定义两个栈结构:用户行为栈与运算符栈。其中,用户行为栈用于存储用户行为标识对应的业务匹配结果,运算符栈用于存储策略条件之间的某些运算符。
示例性的,对策略表达式中的策略条件按照从左到右的顺序进行解析,遇到用户行为标识时,调用业务处理模块,判断用户信息对应的用户是否满足该用户行为标识对应的业务要求,得到该用户行为标识对应的业务匹配结果,并将该业务匹配结果压入用户行为栈;若遇到运算符,且不为“)”,直接将该运算符压入运算符栈。
当遇到运算符,且为“)”,则从运算符栈中弹出一个运算符:如果该运算符为“!”,则从用户行为栈弹出一个值(业务匹配结果)与该运算符“!”做运算,并将得到的计算结果压入用户行为栈;如果该运算符为“|”或是“&”,则从用户行为栈弹出两个值与该运算符号做运算,并将运算结果压入用户行为栈,重复该步骤,直到遇到“(”符号,将该符号弹出运算符栈。重复上述操作,直到将策略条件中的所有用户行为标识遍历完,此时运算符栈中不会包含“(”和“)”。
从运算符栈弹出栈顶运算符,如果该运算符为“!”,则从用户行为栈弹出一个值与该符号做运算,并将计算结果压入用户行为栈;如果为“|”或是“&”则从用户行为栈弹出两个值与该运算符号做运算,并将运算结果压入用户行为栈,直到运算符栈所有运算符都弹出;此时,用户行为栈只会有一个元素,该元素的值即为策略条件的条件判断结果,也即,策略表达式的条件判断结果。
可选的,若策略条件的条件判断结果的取值为真,则确定可以执行上述策略表达式中操作,例如,将策略表达式中的操作内容通过电子设备中的触达模块推送给用户。若策略条件的条件判断结果的取值为假,则确定不能执行上述策略表达式中操作,结束。
本申请实施例提供的策略处理方法,通过对策略表达式表示的策略条件进行解析,确定该策略条件包括的至少两个用户行为标识和至少一个运算符,根据每个用户行为标识表示的业务条件和用户信息,确定每个用户行为标识对应的业务匹配结果,根据至少两个用户行为标识对应的业务匹配结果和至少一个运算符,确定策略表达式的条件判断结果。该技术方案中,电子设备能够自动、准确的确定出策略表达式的条件判断结果,为后续是否执行策略表达式表示的操作提供了条件。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请实施例提供的策略处理装置实施例的结构示意图。参照图6所述,该装置可以包括:获取模块601、处理模块602和执行模块603。
其中,获取模块601,用于获取用户信息;
处理模块602,用于根据所述用户信息和预先配置的策略信息,确定第一策略表达式,所述策略信息包括多个策略表达式,每个策略表达式用于表示策略条件和满足所述策略条件时的操作;所述用户信息对应的用户满足所述第一策略表达式中的策略条件;
执行模块603,用于执行所述第一策略表达式所表示的操作。
在本申请实施例的一种可能设计中,处理模块602,具体用于根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果,基于每个策略表达式的条件判断结果,从所述多个策略表达式中,确定出所述第一策略表达式。
可选的,处理模块602,用于根据所述策略信息中每个策略表达式表示的策略条件和所述用户信息,确定每个策略表达式的条件判断结果,具体为:
处理模块602,具体用于对于所述策略信息中的每个策略表达式,对所述策略表达式进行处理,确定所述策略表达式表示的策略条件,以及根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果。
可选的,处理模块602,用于根据所述用户信息对应的用户是否满足所述策略表达式表示的策略条件,确定所述策略表达式的条件判断结果,具体为:
处理模块602,具体用于:
对所述策略表达式表示的策略条件进行解析,确定所述策略条件包括的至少两个用户行为标识和至少一个运算符,每个用户行为标识用于表示业务条件,每个运算符用于连接相邻的两个用户行为标识;
根据每个用户行为标识表示的业务条件和所述用户信息,确定每个用户行为标识对应的业务匹配结果;
根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果。
可选的,处理模块602,用于根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,具体为:
处理模块602,具体用于基于每个运算符具有的优先级和运算符类型,对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行运算,得到所述策略表达式的条件判断结果。
可选的,处理模块602,用于根据所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符,确定所述策略表达式的条件判断结果,具体为:
处理模块602,具体用于利用用户行为栈和运算符栈,依次对所述至少两个用户行为标识对应的业务匹配结果和所述至少一个运算符进行处理,得到所述策略表达式的条件判断结果。
在本申请实施例的上述各可能设计中,每个策略表达式包括策略条件、满足所述策略条件时的操作和至少一个运算符。
本申请实施例提供的装置,可用于执行图2至图5所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图7为本申请实施例提供的用于执行策略处理方法的电子设备的结构示意图。如图7所示,该电子设备可以包括:处理器71、存储器72、通信接口73和系统总线74,所述存储器72和所述通信接口73通过所述系统总线74与所述处理器71连接并完成相互间的通信,所述存储器72用于存储计算机执行指令,所述通信接口73用于和其他设备进行通信,所述处理器71执行所述计算机执行指令时实现如上述图2至图5所示实施例的方案。
在该图7中,上述的处理器71可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器72可能包含随机存取存储器(random access memory,RAM),也可能包括只读存储器(read-only memory,RAM),还可能包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
通信接口73用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。
系统总线74可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如上述图2至图5所示实施例的方法。
可选的,本申请实施例还提供一种运行指令的芯片,所述芯片用于执行上述图2至图5所示实施例的方法。
本申请实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,至少一个处理器可以从所述计算机可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述图2至图5所示实施例的方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。