CN113641708B - 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 - Google Patents
规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN113641708B CN113641708B CN202110918672.0A CN202110918672A CN113641708B CN 113641708 B CN113641708 B CN 113641708B CN 202110918672 A CN202110918672 A CN 202110918672A CN 113641708 B CN113641708 B CN 113641708B
- Authority
- CN
- China
- Prior art keywords
- rule
- matching
- statements
- priority
- attribute information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
一种规则引擎的优化方法、数据匹配方法及装置、存储介质、终端,所述优化方法包括:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合。通过本发明中的方案,可以优化规则引擎中的规则集合,提高后续数据匹配的效率。
Description
技术领域
本发明涉及计算机软件系统技术领域,尤其涉及一种规则引擎的优化方法、数据匹配方法及装置、存储介质、终端。
背景技术
规则引擎是基于规则集合对输入的数据进行数据匹配的装置,是一种嵌入在应用程序中的组件。现有技术中,采用规则引擎对输入数据进行数据匹配时,对于输入规则引擎的事件数据,需要分别判断数据与规则集合中各个规则是否匹配,才能得到输入数据的匹配结果。例如,配置有规则引擎的应用程序可以用于贷款审批,在该应用程序使用过程中,将包含被审批信息的事件数据输入至规则引擎,由规则引擎判断事件数据与各个规则的匹配结果,然后该应用程序的其他模块可以根据匹配结果执行相应的操作,例如审批通过的操作,以及审批不通过的操作等。
目前,规则引擎的规则集合通常包含大量的规则,使用现有的规则引擎进行数据匹配的效率还有待提高,因此,亟需一种规则引擎的优化方法,以提高规则引擎的数据匹配的效率。
发明内容
本发明解决的技术问题如何对规则引擎进行优化,提高规则引擎的数据匹配的效率。
为解决上述技术问题,本发明实施例提供一种规则引擎的优化方法,所述方法包括:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合。
可选的,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的。
可选的,所述更新后的规则集合为树结构,所述树结构的节点与所述规则语句一一对应,所述节点的深度越小,该节点对应的规则语句的优先级越大。
可选的,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级包括:获取所述样本输入数据,所述样本输入数据包括多个测试事件的属性信息;对于每条规则语句,根据所述多个测试事件的属性信息,确定该规则语句对应的匹配规则针对所述样本输入数据的命中次数,该匹配规则的命中概率为所述命中次数与所述测试事件的数量的比值;根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
可选的,根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级包括:对所述匹配规则的命中概率进行归一化处理,以得到归一化处理后的命中概率;将所述归一化处理后的命中概率乘以预设的放大倍数,以得到所述规则语句的优先级。
可选的,根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整之前,所述方法还包括:如果任一规则语句的优先级小于等于预设的最小阈值,则剔除该规则语句。
本发明实施例还提供一种规则引擎的数据匹配方法,所述方法包括:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;获取待匹配事件的属性信息;根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果。
可选的,获取待匹配事件的属性信息之前,所述方法还包括:根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的。
可选的,所述更新后的规则集合为树结构,所述树结构的节点与所述规则语句一一对应,根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整包括:确定该父节点的最大字节点,其中,所述最大子节点为该父节点的子节点中对应的规则语句的优先级最大的子节点;判断该父节点对应的规则语句的优先级是否大于所述最大子节点对应的规则语句的优先级,如果否,则调换所述最大子节点和该父节点与规则语句的对应关系,以使得所述树结构满足:所述节点的深度越小,该节点对应的规则语句的优先级越大。
可选的,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级包括:获取所述样本输入数据,所述样本输入数据包括多个测试事件的属性信息;对于每条规则语句,根据所述多个测试事件的属性信息,确定该规则语句对应的匹配规则针对所述样本输入数据的命中次数,该匹配规则的命中概率为所述命中次数与所述测试事件的数量的比值;根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
可选的,根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与多条规则语句对应的匹配规则是否匹配包括:按照所述规则语句的优先级从大到小的顺序,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配;其中,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配包括:对于每条规则语句,如果判断所述属性信息与该规则语句对应的匹配规则匹配,则判断所述属性信息是否与下一条规则语句对应的匹配规则匹配,否则,确定所述匹配结果为不匹配。
可选的,判断所述属性信息是否与下一条规则语句对应的匹配规则匹配之前,所述方法还包括:判断所述下一条规则语句的优先级是否小于等于预设的最小阈值,如果是,则确定所述匹配结果为匹配。
本发明实施例还提供一种规则引擎的优化装置,所述装置包括:规则获取模块,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;判断模块,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;更新模块,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合。
本发明实施例还提供一种规则引擎的数据匹配装置,所述装置包括:规则获取模块,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;判断模块,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;更新模块,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;事件获取模块,用于获取待匹配事件的属性信息;匹配模块,用于根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果。
本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的规则引擎的优化方法或上述的规则引擎的数据匹配方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的规则引擎的优化方法或上述的规则引擎的数据匹配方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例的方案中,规则集合中包括多条规则语句,由于规则语句与匹配规则是一一对应的,且规则语句用于描述对应的匹配规则,因此可以根据每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系,如果是,则在规则集合中剔除被包含的匹配规则对应的规则语句,由此可以得到更新后的规则集合。采用这种方案,可以对规则集合中的规则语句根据对应的匹配规则的逻辑包含关系进行归并,以使得更新后的规则集合中各条规则语句对应的匹配规则之间是互相独立的,不存在逻辑包含关系,由此可以在不影响匹配结果的同时减少规则集合中规则语句的数量,避免规则集合中规则语句的冗余,因此优化了规则引擎中的规则集合,可以提高规则引擎的性能。采用这样的规则引擎进行数据匹配时,可以避免规则语句冗余造成的重复匹配的情况,因此可以提高数据匹配的效率。
进一步,本发明实施例的方案中,由于更新后的规则集合中规则语句是按照优先级的顺序排列的,依次判断待匹配事件的属性信息与多条规则语句对应的匹配规则是否匹配时,如果属性信息与任一规则语句对应的匹配规则不匹配时,则不再进行下一条规则语句的判断,由此可以大大减少匹配次数,进一步提高数据匹配的效率。
进一步,本发明实施例的方案中,判断所述下一条规则语句的优先级是否小于等于预设的最小阈值,如果是,则确定所述匹配结果为匹配,也即,当匹配语句的优先级小于等于预设的最小阈值时,不再继续匹配,而是直接确定匹配结果,因此可以进一步减少匹配次数,有利于提高数据匹配的效率。
附图说明
图1是本发明实施例中一种规则引擎的优化方法的流程示意图;
图2是本发明实施例中另一种规则引擎的优化方法的流程示意图;
图3是图2中步骤S204的一种具体实施方式的流程示意图;
图4是本发明实施例中一种规则引擎的规则集合的结构示意图;
图5是本发明实施例中一种规则引擎的数据匹配方法的流程示意图;
图6是本发明实施例中一种规则引擎的优化装置的结构示意图;
图7是本发明实施例中一种规则引擎的数据匹配装置的结构示意图。
具体实施方式
如背景技术所述,亟需一种规则引擎的优化方法,能够提高规则引擎的数据匹配的效率。
本发明的发明人经过研究发现,现有技术中,采用规则引擎对输入数据进行数据匹配时,对于输入规则引擎的事件数据,需要分别判断数据与规则集合中各个规则是否匹配,才能得到输入数据的匹配结果。但目前各种规则引擎的规则集合中的规则存在大量的冗余,因此规则引擎的性能较差,在进行数据匹配时的效率较低。
为了解决上述技术问题,本发明实施例提供一种规则引擎的优化方法以及一种规则引擎的数据匹配方法。在发明实施例的方案中,规则集合中包括多条规则语句,由于规则语句与匹配规则是一一对应的,且规则语句用于描述对应的匹配规则,因此可以根据每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系,如果是,则在规则集合中剔除被包含的匹配规则对应的规则语句,由此可以得到更新后的规则集合。采用这种方案,可以对规则集合中的规则语句根据对应的匹配规则的逻辑包含关系进行归并,以使得更新后的规则集合中各条规则语句对应的匹配规则之间是互相独立的,不存在逻辑包含关系,由此可以在不影响匹配结果的同时减少规则集合中的规则语句的数量,避免规则集合中规则语句的冗余,因此优化了规则引擎中的规则集合,可以提高规则引擎的性能。采用这样的规则引擎进行数据匹配时,可以避免规则语句冗余造成的重复匹配的情况,因此可以提高数据匹配的效率。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图1,图1是本发明实施例中一种规则引擎的优化方法,所述方法可以由终端执行,所述终端可以是各种具有数据接收、存储和处理能力的终端,例如,手机、电脑、物联网设备、服务器等,但并不限于此。该终端上安装有配置规则引擎的应用程序,该应用程序还配置有其他执行模块,其中,所述规则引擎用于根据规则集合对输入的待匹配事件进行匹配,以得到匹配结果,所述其他执行模块用于根据匹配结果执行相应的操作。所述方法通过对规则引擎的规则集合进行处理和更新来优化规则引擎,以提高该规则引擎的数据匹配效率等性能。图1示出的规则引擎的优化方法可以包括以下步骤:
步骤S101:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
步骤S102:对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
步骤S103:如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合。
可以理解的是,在具体实施中,所述方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中;或者,该方法可以采用硬件或者软硬结合的方式来实现。
在步骤S101的具体实施中,可以从外部接收规则引擎的规则集合,也可以从本地的存储器中读取规则引擎的规则集合,本发明实施例对于规则集合的获取方式并不进行限制。
进一步地,获取到的规则集合可以包括多条规则语句,规则语句与匹配规则一一对应,每条规则语句用于描述对应的匹配规则。具体而言,规则语句可以通过自然语言描述对应的匹配规则,也即,规则语句可以为自然语言的文本;规则语句也可以通过机器语言描述对应的匹配规则,也即,规则语句可以为机器语言的文本,但并不限于此。其中,匹配规则可以是预先设置的。
在一个具体的例子中,规则引擎可以包括多个规则集合,可以根据数据匹配的应用场景,从所述多个规则集合中选择与所述应用场景对应的规则集合,也即,选择所述应用场景适用的规则集合。
例如,表1示出了应用场景为贷款审批,规则集合可以包括以下规则语句:
表1
序号 | 规则语句 |
1 | 借贷人信誉良好 |
2 | 借贷人年收入高于20万 |
3 | 借贷人有房产 |
4 | 借贷人无犯罪记录 |
5 | 借贷人无重大疾病 |
6 | 借贷人与其他机构不存在借贷关系 |
7 | 借贷人年龄大于18周岁 |
8 | 借贷人已婚 |
9 | 借贷人有子女 |
10 | 借贷人有资产 |
具体而言,当待审批的借贷人信息输入至规则引擎时,规则引擎判断输入的借贷人信息与表1示出的各个规则语句描述的匹配规则是否匹配,以得到匹配结果。进一步地,规则引擎将得到的匹配结果发送至其他执行模块,以使得其他执行模块根据匹配结果执行相应的操作。例如,如果匹配结果为匹配,则执行审批通过的操作(或者是,同意借贷的操作),否则,执行审批不通过的操作(或者是,拒绝借贷的操作)。
在步骤S102的具体实施中,对于规则集合中的每两条规则语句,可以判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系。
具体而言,规则集合包括规则语句A和规则语句B,规则语句A用于描述匹配规则a,规则语句B用于描述匹配规则b,对于输入规则引擎的任一事件的属性信息,当属性信息与匹配规则a匹配时,必然与匹配规则b匹配,则可以判断匹配规则a逻辑上被包含于匹配规则b,也即,匹配规则b逻辑上包含匹配规则a。换言之,本发明实施例的方案中,如果第一匹配规则界定的集合范围小于第二匹配规则界定的集合范围,则判断第一匹配规则逻辑上被包含于第二匹配规则,第二匹配规则逻辑上包含第一匹配规则。
在一个具体的例子中,规则语句为java字节码的形式,对于任意两条规则语句,可以采用自然语言技术对该两条规则语句进行特征识别,以识别出规则语句中的元数据,其中,所述元数据可以是预先定义的,元数据可以是逻辑运算符、括号、字段等,例如,“and”、“or”等。进一步地,可以对每两条规则语句中的元数据进行处理,以得到该两条规则语句的逻辑包含关系。
在步骤S103的具体实施中,对于每两条规则语句,如果该两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则在规则集合中剔除被包含的匹配规则对应的规则语句。
进一步地,当规则集合中任意两条规则语句对应的匹配规则之间均不存在逻辑包含关系,则得到更新后的规则集合,也即,更新后的规则集合中任意两条规则语句对应的匹配规则之间均不存在逻辑上的包含关系,换言之,更新后的规则集合中各条规则语句对应的匹配规则之间互相独立。由此,本发明实施例的方案中,通过剔除被包含的匹配规则对应的规则语句,减少了规则集合中匹配规则的冗余,从而可以提高规则引擎的性能。
参照图2,图2是本发明实施例中另一种规则引擎的优化方法的流程示意图。图2示出的规则引擎的优化方法还可以包括:
步骤S201:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
步骤S202:对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
步骤S203:如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
步骤S204:根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;
步骤S205:根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的。
关于步骤S201至步骤S203的具体内容可以参照图1中关于步骤S101至步骤S103的相关描述,在此不再赘述。
在步骤S204的具体实施中,可以根据样本输入数据确定更新后的规则集合中的各条规则语句的优先级,所述优先级可以用于指示匹配规则的命中概率。具体而言,规则语句的优先级与该规则语句对应的匹配规则针对样本输入数据的命中概率正相关,匹配规则针对样本输入数据的命中概率越高,该匹配规则对应的规则语句在规则集合中的优先级也越大。需要说明的是,优先级越大的规则语句,在数据匹配的过程中,越先被判断是否与事件的属性信息匹配。
参照图3,图3是图2中步骤S204的一种具体实施方式。图3示出的步骤S204可以包括以下步骤:
步骤S301:获取所述样本输入数据,所述样本输入数据包括多个测试事件的属性信息;
步骤S302:对于每条规则语句,根据所述多个测试事件的属性信息,确定该规则语句对应的匹配规则针对所述样本输入数据的命中次数,该匹配规则的命中概率为所述命中次数与所述测试事件的数量的比值;
步骤S303:根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
在步骤S301的具体实施中,可以从外部接收样本输入数据,也可以从本地的存储器中读取样本输入数据,本发明实施例对此并不进行限制。
具体而言,样本输入数据包括多个测试事件的属性信息,其中,多个测试事件为该规则引擎的应用场景中的事件,换言之,多个测试事件与使用规则引擎进行数据匹配的待匹配事件属于同一个应用场景。
进一步地,测试事件的属性信息是用于对测试事件的状态进行描述的信息。更具体地,每个测试事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应。具有对应关系的属性信息和规则语句针对的是事件的同一类型的状态。需要说明的是,由于规则语句与匹配规则是一一对应的,属性信息和规则语句是一一对应的,因此属性信息与匹配规则也是一一对应的。
例如,更新后的规则集合中包含规则语句B和规则语句C,其中,规则语句B描述的匹配规则为“借贷人年龄大于18周岁”,规则语句C描述的匹配规则为“借贷人已婚”,则每个测试事件具有第一属性信息和第二属性信息,其中,第一属性信息用于描述借贷人年龄,第二属性信息用于描述借贷人的婚姻状态。
进一步地,样本输入数据还可以包括每个测试事件的匹配结果,所述匹配结果为“是”或“否”,换言之,所述匹配结果为“匹配”或者“不匹配”。如果测试事件的匹配结果为匹配,则该测试事件的每条属性信息分别与该条属性信息对应的匹配规则是匹配的。如果测试事件的匹配结果为不匹配,则该测试事件存在至少一条属性信息与对应的匹配规则不匹配。
在步骤S302的具体实施中,可以根据多个测试事件的属性信息,确定规则语句对应的匹配规则针对样本输入数据的命中次数。
具体而言,对于更新后的规则集合中每个规则语句对应的匹配规则,分别判断每个测试事件中与该匹配规则对应的属性信息是否与该匹配规则匹配,将属性信息与该匹配规则匹配的测试事件的数量作为所述命中次数。也即,对于每个匹配规则,多个测试事件中属性信息与该匹配规则匹配的测试事件的数量即为所述命中次数,该命中次数为该匹配规则针对样本输入数据的命中次数。进一步地,对于每个匹配规则,可以将该匹配规则的命中次数与样本输入数据中的测试事件的数量的比值作为该匹配规则的命中概率。
在步骤S303的具体实施中,可以对匹配规则的命中概率进行归一化处理,以得到归一化处理后的命中概率。具体而言,可以对更新后的规则集合中的规则语句对应的匹配规则的命中概率进行归一化处理。
更具体地,可以采用下列公式进行归一化处理:
其中,Pk是更新后的规则集合中第k条规则语句对应的匹配规则的命中概率,vk是第k条规则语句对应的匹配规则的归一化处理后的命中概率,n为更新后的规则集合中规则语句的数量,k、n为正整数,且k≤n。
进一步地,还可以将各个匹配规则归一化处理后的命中概率乘以预设的放大倍数,以得到所述规则语句的优先级,从而可以放大规则语句的优先级之间的差异性,本发明实施例对于放大倍数的具体取值并不进行限制。
在另一个非限制性的例子中,还可以将样本输入数据作为训练数据对预设的规则模型进行训练,以得到训练后的规则模型,训练后的规则模型可以用于确定各个匹配规则的命中概率,由此可以进一步地根据各个匹配规则的命中概率确定对应的匹配语句的优先级。
继续参考图2,在步骤S205的具体实施中,可以根据优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的。
在一个非限制性的例子中,在根据优先级对更新后的规则集合中各条规则语句的位置进行调整之前,也即,在执行步骤S205之前,还可以对规则语句进行进一步的剔除。具体而言,如果任一规则语句的优先级小于等于预设的最小阈值,则剔除该规则语句,由此可以进一步减少规则集合中规则语句的数量,降低规则集合的冗余。
参照图4,图4是本发明实施例中一种规则集合的结构示意图。具体而言,图4示出的更新后的规则集合是树结构的,也即,更新后的规则集合是树结构的,更具体地,更新后的规则集合是完全二叉树的树状结构。
如图4所示,图4示出的树结构包括多个节点,节点和更新后的规则集合中的规则语句是一一对应的,每个节点可以存储该节点的内容信息,所述节点的内容信息包括该节点对应的规则语句和该规则语句的优先级。具体而言,更新后的规则集合包括n条规则语句,则节点i(也即,编号为i的节点)对应于第i+1条规则语句,因此,节点i的内容信息为第i+1条规则语句和第i+1条规则语句的优先级。其中,i为整数,i≤n-1。
进一步地,节点还可以存储有该节点的层级信息,所述层级信息用于指示节点在树结构中的位置。更具体地,父节点的层级信息可以包括该节点的孩子节点的信息。例如,当树结构为二叉树结构时,层级信息可以为左孩子节点和右孩子节点的信息。叶子节点的层级信息可以为空。但并不限于此。
进一步地,可以根据优先级对更新后的规则集合中的规则语句进行调整。具体而言,对于树结构中的每个父节点,确定该父节点的最大字节点,判断父节点对应的规则语句的优先级是否大于该父节点的最大子节点对应的规则语句的优先级,如果否,则调换最大字节点和父节点在树结构中的位置,以使树结构满足,节点的深度越小,该节点对应的规则语句的优先级越大。
具体而言,对于节点数量为n的树结构,编号最大的父节点为编号为的节点。对于节点j,其左孩子节点为节点2×j+1(也即,编号为2×j+1的节点),右孩子节点为节点2×j+2(也即,编号为2×j+2的节点)。确定该父节点的子节点中对应的规则语句的优先级最大的子节点,作为最大字节点。也即,可以从节点2×j+1和节点2×j+2中确定节点j的最大子节点。其中,j为整数,且
进一步地,可以判断节点j对应的规则语句的优先级是否大于该节点的最大字节点对应的规则语句的优先级,如果是,则可以确定节点j-1的最大子节点,并判断节点j-1的最大字节点和节点j-1对应的规则语句的优先级大小。如果节点j对应的规则语句的优先级不大于该节点的最大字节点对应的规则语句的优先级,则调换节点j和节点j的最大子节点与规则语句的对应关系。更具体地,调换节点j和节点j的最大子节点与规则语句的对应关系可以是:将节点j和节点j的最大子节点的节点内容信息进行调换。
进一步地,通过上述方法,对树结构中的父节点进行至少一次的遍历,直至树结构满足:节点的深度越小,该节点对应的规则语句的优先级越大为止,此时更新后的规则集合中的规则语句是按照优先级的顺序排列的。
在一个非限制性的例子中,还可以比较节点i和节点i+1对应的规则语句的优先级的大小,如果节点i对应的规则语句的优先级大于节点i+1对应的规则语句的优先级,则继续比较节点i+1和节点i+2对应的规则语句的优先级,否则,调换节点i和节点i+1与规则语句的对应关系,并继续比较节点i+1和节点i+2对应的规则语句的优先级。通过上述方法,对树结构中的节点进行至少一次的遍历,直至树结构满足:节点的编号越小,该节点对应的规则语句的优先级越大。
需要说明的是,更新后的规则集合也可以是其他的数据结构的形式,例如,可以是列表等,本发明实施例对此并不进行限制。
由此,可以得到按照规则语句的优先级大小排列的更新后的规则集合,采用这样的规则集合进行规则引擎的数据匹配时,规则引擎的性能更好。
参照图5,图5是本发明实施例中一种规则引擎的数据匹配方法。所述方法可以由终端执行,所述终端可以是各种具有数据接收、存储和处理能力的终端,例如,手机、电脑、物联网设备、服务器等,但并不限于此。所述方法用于根据规则引擎的规则集合对输入规则引擎的数据进行数据匹配,如果匹配结果为匹配,则可以触发相应的操作等,但并不限于此。图5示出的规则引擎的数据匹配方法可以包括以下步骤:
步骤S501:获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
步骤S502:对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
步骤S503:如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
步骤S504:获取待匹配事件的属性信息;
步骤S505:根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果。
需要说明的是,关于步骤S501至步骤S503的具体内容可以参照上文关于图1中关于步骤S103至步骤S104的相关描述,在此不再赘述。
进一步地,执行步骤S505之前,还可以确定更新后的规则集合中规则语句的优先级,并根据优先级对更新后的规则集合中的规则语句的位置进行调整。具体可以参照图2和图3中关于步骤S204和步骤S205的相关描述,在此不再赘述。
需要说明的是,本发明实施例对于步骤S504的执行顺序和步骤S503的执行顺序并不进行限制。换言之,可以先获取待匹配事件的属性信息,也可以对规则集合进行优化和更新,也可以先对规则集合进行优化和更新,再获取待匹配事件的属性信息。
在步骤S504的具体实施中,可以从外部接收待匹配事件的属性信息,也可以从本地的存储器中读取待匹配事件的属性信息。待匹配事件的属性信息是用于对待匹配事件的状态进行描述的信息。
更具体地,每个待匹配事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应。也即,具有对应关系的属性信息和规则语句,针对的是事件的同一类型的状态。例如,规则语句描述的是针对年龄的匹配规则,对应的属性信息为待测试事件关于年龄的信息。
在步骤S505的具体实施中,根据待匹配事件的属性信息和更新后的规则集合中的多条规则语句,确定待匹配事件的匹配结果。
在第一个具体的例子中,可以依次判断待匹配事件的每条属性信息与对应的规则语句描述的匹配规则是否匹配,如果各条属性信息均与对应的规则语句描述的匹配规则匹配,则该待匹配事件的匹配结果为匹配。如果任意一条属性信息与对应的规则语句描述的匹配规则不匹配,则该待匹配事件的匹配结果为不匹配。
在第二个具体的例子中,更新后的规则集合中各条规则语句是按照优先级的顺序排列的,则按照优先级从大到小的顺序依次判断属性信息与多条规则语句对应的匹配规则是否匹配;其中,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配包括:对于每条规则语句,如果判断所述属性信息与该规则语句对应的匹配规则匹配,也即,判断与该条规则语句对应的属性信息与该规则语句对应的匹配规则匹配,则继续判断属性信息是否与下一条规则语句对应的匹配规则匹配,否则,确定所述匹配结果为不匹配。
在第三个具体的例子中,更新后的规则集合是树结构(参照图4),所述树结构满足:节点的深度越小,节点对应的优先级越大。或者,所述树结构满足:节点的编号越小,节点对应的优先级越大。进一步地,可以按照节点的编号顺序依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配。其中,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配的更多内容可以参照上文关于第二个具体的例子的相关描述,在此不再赘述。
在第四个具体的例子中,判断属性信息是否与下一条规则语句对应的匹配规则匹配之前,还可以判断下一条规则语句的优先级是否小于等于预设的最小阈值,如果是,则确定所述匹配结果为匹配。也即,当匹配语句的优先级小于等于预设的最小阈值时,不再继续匹配,而是直接确定匹配结果,因此可以进一步减少匹配次数,有利于提高数据匹配的效率。
需要说明的是,关于图5示出的规则引擎的数据匹配方法的工作过程、工作原理和有益效果等更多内容可以参照图1至图4的相关描述,在此不再赘述。
参照图6,图6是本发明实施例中一种规则引擎的优化装置,图6示出的规则引擎的优化装置可以包括:
规则获取模块61,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
判断模块62,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
更新模块63,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合。
在具体实施中,上述规则引擎的优化装置可以对应于终端内具有规则引擎的优化功能的芯片;或者对应于终端中具有规则引擎的优化功能的芯片模组,或者对应于终端。
关于图6示出的规则引擎的优化装置的工作原理、工作方式和有益效果等更多内容,可以参照上文关于图1至图5的相关描述,在此不再赘述。
参考图7,图7是本发明实施例中一种规则引擎的数据匹配装置的结构示意图。图7示出的规则引擎的数据匹配装置可以包括:
规则获取模块71,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
判断模块72,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
更新模块73,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
事件获取模块74,用于获取待匹配事件的属性信息;
匹配模块75,用于根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果。
在具体实施中,上述规则引擎的数据匹配装置可以对应于终端内具有规则引擎的数据匹配功能的芯片;或者对应于终端中具有规则引擎的数据匹配功能的芯片模组,或者对应于终端。
关于图7示出的规则引擎的数据匹配装置的工作原理、工作方式和有益效果等更多内容,可以参照上文关于图1至图5的相关描述,在此不再赘述。
本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的规则引擎的优化方法或规则引擎的数据匹配方法的步骤。所述存储介质可以包括ROM、RAM、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的规则引擎的优化方法或规则引擎的数据匹配方法的步骤。所述计算设备包括但不限于手机、计算机、平板电脑等终端设备。
应理解,本申请实施例中,所述处理器可以为中央处理单元(central processingunit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(application specific integrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种规则引擎的优化方法,其特征在于,所述方法包括:
获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
其中,所述方法还包括:
根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;
根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的;
其中,所述更新后的规则集合中各条规则语句对应的匹配规则之间互相独立,所述样本输入数据包括多个测试事件的属性信息,每个测试事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应,具有对应关系的属性信息和规则语句针对的是事件的同一类型的状态,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级包括:对于更新后的规则集合中每个规则语句对应的匹配规则,分别判断每个测试事件中与该匹配规则对应的属性信息是否与该匹配规则匹配,将所述属性信息与该匹配规则匹配的测试事件的数量作为命中次数;
对于每个匹配规则,将该匹配规则的命中次数与所述样本输入数据中的测试事件的数量的比值作为该匹配规则的命中概率;
根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
2.根据权利要求1所述的规则引擎的优化方法,其特征在于,所述更新后的规则集合为树结构,所述树结构的节点与所述规则语句一一对应,所述节点的深度越小,该节点对应的规则语句的优先级越大。
根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
3.根据权利要求1所述的规则引擎的优化方法,其特征在于,根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级包括:对所述匹配规则的命中概率进行归一化处理,以得到归一化处理后的命中概率;
将所述归一化处理后的命中概率乘以预设的放大倍数,以得到所述规则语句的优先级。
4.根据权利要求1所述的规则引擎的优化方法,其特征在于,根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整之前,所述方法还包括:
如果任一规则语句的优先级小于等于预设的最小阈值,则剔除该规则语句。
5.一种规则引擎的数据匹配方法,其特征在于,所述方法包括:
获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
如果是,则在所述规则集合中剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
获取待匹配事件的属性信息;
根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果;
其中,获取待匹配事件的属性信息之前,所述方法还包括:
根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;
根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的,
其中,所述更新后的规则集合中各条规则语句对应的匹配规则之间互相独立,所述样本输入数据包括多个测试事件的属性信息,每个测试事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应,具有对应关系的属性信息和规则语句针对的是事件的同一类型的状态,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级包括:对于更新后的规则集合中每个规则语句对应的匹配规则,分别判断每个测试事件中与该匹配规则对应的属性信息是否与该匹配规则匹配,将所述属性信息与该匹配规则匹配的测试事件的数量作为命中次数;
对于每个匹配规则,将该匹配规则的命中次数与所述样本输入数据中的测试事件的数量的比值作为该匹配规则的命中概率;
根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
6.根据权利要求5所述的规则引擎的数据匹配方法,其特征在于,所述更新后的规则集合为树结构,所述树结构的节点与所述规则语句一一对应,根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整包括:
对于所述树结构中的每个父节点,确定该父节点的最大子 节点,其中,所述最大子节点为该父节点的子节点中对应的规则语句的优先级最大的子节点;
判断该父节点对应的规则语句的优先级是否大于所述最大子节点对应的规则语句的优先级,如果否,则调换所述最大子节点和该父节点与规则语句的对应关系,以使得所述树结构满足:所述节点的深度越小,该节点对应的规则语句的优先级越大。
7.根据权利要求5所述的规则引擎的数据匹配方法,其特征在于,根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与多条规则语句对应的匹配规则是否匹配包括:
按照所述规则语句的优先级从大到小的顺序,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配;
其中,依次判断所述属性信息与多条规则语句对应的匹配规则是否匹配包括:
对于每条规则语句,如果判断所述属性信息与该规则语句对应的匹配规则匹配,则判断所述属性信息是否与下一条规则语句对应的匹配规则匹配,否则,确定所述匹配结果为不匹配。
8.根据权利要求5所述规则引擎的数据匹配方法,其特征在于,判断所述属性信息是否与下一条规则语句对应的匹配规则匹配之前,所述方法还包括:判断所述下一条规则语句的优先级是否小于等于预设的最小阈值,如果是,则确定所述匹配结果为匹配。
9.一种规则引擎的优化装置,其特征在于,所述装置包括:
规则获取模块,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
判断模块,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
更新模块,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
其中,还包括:
优先级确定模块,用于获取待匹配事件的属性信息之前,根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;
调整模块,用于根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的;
其中,所述更新后的规则集合中各条规则语句对应的匹配规则之间互相独立,所述样本输入数据包括多个测试事件的属性信息,每个测试事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应,具有对应关系的属性信息和规则语句针对的是事件的同一类型的状态,所述优先级确定模块包括:
第一子模块,用于对于更新后的规则集合中每个规则语句对应的匹配规则,分别判断每个测试事件中与该匹配规则对应的属性信息是否与该匹配规则匹配,将所述属性信息与该匹配规则匹配的测试事件的数量作为命中次数;
第二子模块,用于对于每个匹配规则,将该匹配规则的命中次数与所述样本输入数据中的测试事件的数量的比值作为该匹配规则的命中概率;
第三子模块,用于根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
10.一种规则引擎的数据匹配装置,其特征在于,所述装置包括:
规则获取模块,用于获取规则引擎的规则集合,所述规则集合包括多条规则语句,所述规则语句与预设的匹配规则一一对应,所述规则语句用于描述对应的匹配规则;
判断模块,用于对于每两条规则语句,判断该两条规则语句对应的两个匹配规则之间是否存在逻辑包含关系;
更新模块,用于如果两条规则语句对应的两个匹配规则之间存在逻辑包含关系,则剔除被包含的匹配规则对应的规则语句,以得到更新后的规则集合;
事件获取模块,用于获取待匹配事件的属性信息;
匹配模块,用于根据所述待匹配事件的属性信息和所述更新后的规则集合中的多条规则语句,判断所述属性信息与所述多条规则语句对应的匹配规则是否匹配,以得到所述待匹配事件的匹配结果;
其中,还包括:
优先级确定模块,用于根据样本输入数据确定所述更新后的规则集合中各条规则语句的优先级,所述优先级与所述匹配规则针对所述样本输入数据的命中概率正相关;
调整模块,用于根据所述优先级对所述更新后的规则集合中各条规则语句的位置进行调整,以使得所述更新后的规则集合中各条规则语句是按照所述优先级的顺序排列的;
其中,所述更新后的规则集合中各条规则语句对应的匹配规则之间互相独立,所述样本输入数据包括多个测试事件的属性信息,每个测试事件具有多条属性信息,属性信息与更新后的规则集合中的规则语句一一对应,具有对应关系的属性信息和规则语句针对的是事件的同一类型的状态,所述优先级确定模块包括:
第一子模块,用于对于更新后的规则集合中每个规则语句对应的匹配规则,分别判断每个测试事件中与该匹配规则对应的属性信息是否与该匹配规则匹配,将所述属性信息与该匹配规则匹配的测试事件的数量作为命中次数;
第二子模块,用于对于每个匹配规则,将该匹配规则的命中次数与所述样本输入数据中的测试事件的数量的比值作为该匹配规则的命中概率;
第三子模块,用于根据所述多条规则语句对应的匹配规则的命中概率,确定各条规则语句的优先级。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时,执行权利要求1至4中任一项所述的规则引擎的优化方法或权利要求5至8中任一项所述的规则引擎的数据匹配方法的步骤。
12.一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至4中任一项所述的规则引擎的优化方法或权利要求5至8中任一项所述的规则引擎的数据匹配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110918672.0A CN113641708B (zh) | 2021-08-11 | 2021-08-11 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110918672.0A CN113641708B (zh) | 2021-08-11 | 2021-08-11 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641708A CN113641708A (zh) | 2021-11-12 |
CN113641708B true CN113641708B (zh) | 2022-07-26 |
Family
ID=78420800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110918672.0A Active CN113641708B (zh) | 2021-08-11 | 2021-08-11 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641708B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129324B (zh) * | 2022-07-28 | 2023-03-24 | 北京天融信网络安全技术有限公司 | 规则匹配方法、装置、电子设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739248A (zh) * | 2008-11-13 | 2010-06-16 | 国际商业机器公司 | 执行规则集的方法和系统 |
CN102184234A (zh) * | 2011-05-13 | 2011-09-14 | 百度在线网络技术(北京)有限公司 | 用于查询、增加、更新或删除信息处理规则的方法和设备 |
WO2012093746A1 (ko) * | 2011-01-07 | 2012-07-12 | 주식회사 아이싸이랩 | 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법 |
CN106101090A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 用于规则引擎的操作方法以及规则引擎系统 |
CN110945538A (zh) * | 2017-04-03 | 2020-03-31 | 维择科技公司 | 自动规则推荐引擎 |
CN111125230A (zh) * | 2019-12-30 | 2020-05-08 | 中电工业互联网有限公司 | 一种基于规则引擎的物联网平台的数据处理方法及系统 |
CN112804221A (zh) * | 2020-12-30 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 防火墙规则处理方法、装置、网络设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573737A (zh) * | 2014-10-30 | 2016-05-11 | 中国科学院声学研究所 | 一种提高规则引擎运行效率的方法 |
CN107798239B (zh) * | 2017-07-27 | 2020-06-26 | 深圳壹账通智能科技有限公司 | 操作风险处理方法、装置、计算机设备和存储介质 |
US20190057427A1 (en) * | 2017-08-20 | 2019-02-21 | Mosami Dhaval Shah | Anonymous Match Engine and Trimodal Negotiation System |
CN109815389A (zh) * | 2019-02-02 | 2019-05-28 | 北京三快在线科技有限公司 | 应用规则引擎的节点匹配方法、装置以及计算机设备 |
-
2021
- 2021-08-11 CN CN202110918672.0A patent/CN113641708B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739248A (zh) * | 2008-11-13 | 2010-06-16 | 国际商业机器公司 | 执行规则集的方法和系统 |
WO2012093746A1 (ko) * | 2011-01-07 | 2012-07-12 | 주식회사 아이싸이랩 | 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법 |
CN102184234A (zh) * | 2011-05-13 | 2011-09-14 | 百度在线网络技术(北京)有限公司 | 用于查询、增加、更新或删除信息处理规则的方法和设备 |
CN106101090A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 用于规则引擎的操作方法以及规则引擎系统 |
CN110945538A (zh) * | 2017-04-03 | 2020-03-31 | 维择科技公司 | 自动规则推荐引擎 |
CN111125230A (zh) * | 2019-12-30 | 2020-05-08 | 中电工业互联网有限公司 | 一种基于规则引擎的物联网平台的数据处理方法及系统 |
CN112804221A (zh) * | 2020-12-30 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 防火墙规则处理方法、装置、网络设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113641708A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227118B2 (en) | Methods, devices, and systems for constructing intelligent knowledge base | |
US20200364216A1 (en) | Method, apparatus and storage medium for updating model parameter | |
CN113641708B (zh) | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 | |
CN112528703B (zh) | 一种识别表格结构的方法、装置及电子设备 | |
TWI749349B (zh) | 文本還原方法、裝置及電子設備與電腦可讀儲存媒體 | |
CN108550019B (zh) | 一种简历筛选方法及装置 | |
CN112101024B (zh) | 基于app信息的目标对象识别系统 | |
CN116340365B (zh) | 一种缓存数据的匹配方法、匹配装置及终端设备 | |
CN113177405A (zh) | 基于bert的数据纠错方法、装置、设备及存储介质 | |
US11308130B1 (en) | Constructing ground truth when classifying data | |
CN116189215A (zh) | 自动审核方法、装置、电子设备及存储介质 | |
CN116303968A (zh) | 基于技术关键词抽取的语义搜索方法、装置、设备及介质 | |
CN108959237B (zh) | 一种文本分类方法、装置、介质及设备 | |
CN113010550B (zh) | 结构化数据的批处理对象生成、批处理方法和装置 | |
CN111858899B (zh) | 语句处理方法、装置、系统和介质 | |
CN111461892B (zh) | 用于风险识别模型的衍生变量选择方法和装置 | |
CN110018844B (zh) | 决策触发方案的管理方法、装置和电子设备 | |
CN110046180B (zh) | 一种用于定位相似实例的方法、装置和电子设备 | |
CN112232417A (zh) | 分类方法及装置、存储介质、终端 | |
CN111625579B (zh) | 一种信息处理方法、装置及系统 | |
CN109389157B (zh) | 一种用户群识别方法和装置及对象群识别方法和装置 | |
CN112906386B (zh) | 一种确定文本特征的方法及装置 | |
KR102326972B1 (ko) | 언론 매체의 신뢰성을 반영한 기사 판별 시스템 및 명제의 진위 판별 방법 | |
CN116304000A (zh) | 摘要获取的方法、装置、电子设备及存储介质 | |
CN113821533B (zh) | 数据查询的方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |