多条件提取中优化提取性能的方法及装置与流程

文档序号:11678118阅读:499来源:国知局
多条件提取中优化提取性能的方法及装置与流程

本申请涉及计算机领域,尤其涉及一种多条件提取中优化提取性能的方法及装置。



背景技术:

多条件提取是从全量数据中提取出同时满足多个条件的目标提取过程。在很多场景中都存在多条件提取的过程,例如,以多个条件进行数据库查询场景、以多个条件进行可疑数据过滤场景、以多个条件调用/提取数据场景等等。目前,利用多个条件进行目标提取时,该多个条件之间的关系是固定不变的,利用该多个条件之间的固定关系以及固定的执行顺序来进行目标提取。然而,由于每个条件的执行时间均不相同,有长有短,多个条件不同的执行顺序会直接影响目标提取性能。为提高目标提取性能,目前大多采用人工干预的方式。即,人工调整各条件的执行顺序,令计算量大、较耗时的条件最后执行,以减少执行次数,提高目标提取性能。

该人工干预的方式在条件较多的场景下很难快速得到最优的调整结果,且无法批量自动执行。因此,有必要提供一种多条件提取中自动确定多条件执行顺序,以达到最优的提取性能的方法。



技术实现要素:

本申请解决的技术问题之一是,提供一种多条件提取中优化提取性能的方法及系统,实现自动确定多条件提取时的多条件执行顺序,自动提升目标提取性能。

根据本申请一方面的一个实施例,提供了一种多条件提取中优化提取性能的方法,所述方法用于利用多个条件进行目标提取场景下,自动 确定所述多个条件的执行顺序,以提高提取性能,所述方法包括:

穷举所述多个条件进行目标提取时的不同执行顺序;

计算每种执行顺序对应的性能参数值;

选择性能参数值最大的执行顺序作为确定的所述目标提取的所述多个条件的执行顺序;

以所述确定的所述多个条件的执行顺序进行所述目标提取。

根据本申请另一方面的一个实施例,提供了一种多条件提取中优化提取性能的方法,所述方法用于利用多个条件进行目标提取场景,自动确定所述多个条件的执行顺序,以提高提取性能,所述方法包括:

判断当前条件组成的表达式中是否只包含一个条件;

若当前条件组成的表达式中不只包含一个条件,则确定当前条件组成的表达式中连续全与部分和/或连续全或部分的最优执行顺序;

将所述最优执行顺序的连续全与部分和/或最优执行顺序的连续全或部分分别作为一个整体条件并分别使用一个变量代替,组成包含所述变量的新的表达式;

针对所述新的表达式返回执行上述判断当前条件组成的表达式中是否只包含一个条件的步骤;

若当前条件组成的表达式中只包含一个条件,则使用原表达式替换回所述变量,得到所述多个条件的最优执行顺序表达式;

以所述多个条件的最优执行顺序进行所述目标提取。

根据本申请另一方面的一个实施例,提供了一种多条件提取中优化提取性能的装置,所述装置用于利用多个条件进行目标提取场景下,自动确定所述多个条件的执行顺序,以提高提取性能,所述装置包括:

穷举单元,用于穷举所述多个条件进行目标提取时的不同执行顺序;

性能参数值计算单元,用于计算每种执行顺序对应的性能参数值;

选择单元,用于选择性能参数值最大的执行顺序作为确定的所述目标提取的所述多个条件的执行顺序;

目标提取单元,用于以所述选择单元确定的所述多个条件的执行顺序进行所述目标提取。

根据本申请另一方面的一个实施例,提供了一种多条件提取中优化提取性能的装置,所述装置用于利用多个条件进行目标提取场景,自动确定所述多个条件的执行顺序,以提高提取性能,所述装置包括:

判断单元,用于判断当前条件组成的表达式中是否只包含一个条件;

最优执行顺序确定单元,用于在当前条件组成的表达式中不只包含一个条件情况下,确定当前条件组成的表达式中连续全与部分和/或连续全或部分的最优执行顺序;

替换单元,用于将所述最优执行顺序的连续全与部分和/或最优执行顺序的连续全或部分分别作为一个整体条件并分别使用一个变量代替,组成包含所述变量的新的表达式,将所述新的表达式传送给所述判断单元执行上述判断操作;

反替换单元,用于在当前条件组成的表达式中只包含一个条件情况下,使用原表达式替换回所述变量,得到所述多个条件的最优执行顺序表达式;

目标提取单元,用于以所述多个条件的最优执行顺序进行所述目标提取。

本申请实施例通过穷举多个条件的不同执行顺序,并确定不同执行顺序时的性能参数值,从而可以选择性能参数值最大的执行顺序作为目标提取的该多个条件的执行顺序;或者通过递归的方式确定多个条件的最优执行顺序,从而实现了自动确定多条件提取时的多条件执行顺序,自动提升目标提取性能。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请一个实施例的多条件提取中优化提取性能的方法 的流程图。

图2是根据本申请一个实施例的条件提取示意图。

图3是根据本申请另一个实施例的多条件提取中优化提取性能的方法的流程图。

图4是根据本申请一个实施例的多条件提取中优化提取性能的装置的结构示意图。

图5是根据本申请另一个实施例的多条件提取中优化提取性能的装置的结构示意图。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他 现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以 按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

下面结合附图对本申请的技术方案作进一步详细描述。

图1是根据本申请一个实施例的多条件提取中优化提取性能的方法的流程图,所述方法用于利用多个条件进行目标提取场景下,自动确定所述多个条件的执行顺序,以提高提取性能,所述方法包括:

s110、穷举所述多个条件进行目标提取时的不同执行顺序;

s120、计算每种执行顺序对应的性能参数值;

s130、选择性能参数值最大的执行顺序作为确定的所述目标提取的所述多个条件的执行顺序;

s140、以所述确定的所述多个条件的执行顺序进行所述目标提取。

为进一步理解本方案,下面对上述各步骤做进一步详细介绍。

由于在利用多个条件进行目标提取时,所述多个条件之间的关系是固定的,步骤s110所述的穷举所述多个条件进行目标提取时的不同执行顺序是在保持该多个条件之间固定关系不变情况下改变该多个条件的不同执行顺序。也就是,本申请实施例穷举所述多个条件进行目标提取时的不同执行顺序包括:获取所述多个条件之间的关系,在保证所述多个条件之间的关系不变的情况下穷举所述多个条件进行目标提取时的不同执行顺序。在确定利用所述多个条件进行目标提取时,即确定了该多个条件之间的关系,因此,本实施例可实现获取该多个条件之间的关系。所述多个条件之间的关系即为多个条件之间的逻辑关系,包括但不限于:“与”、“或”、“非”等等。其中,所述穷举所述多个条件进行目标提取时的不同执行顺序的一种实施例为:

将每个条件使用变量代替,根据每个条件之间的关系组成表达式;则所述在保证所述多个条件之间的关系不变的情况下穷举所述多个条件进行目标提取时的不同执行顺序包括:

首先,利用德摩根定律及结合律去掉所述表达式中的括号;其中,利用德摩根律去掉表达式中“!”对应的括号。例如,表达式!(a1&a2), 在去掉“!”对应的括号后变为!a1|!a2。利用结合律可去掉表达式中所有无用的括号,例如,表达式a1&(a2&a3)&a4去掉括号后转换成a1&a2&a3&a4。

之后,利用交换律交换所述表达式中各变量的位置,实现穷举所述多个条件的不同执行顺序。例如,表达式(a1&a2)|a3,两两交换位置后,得到的结果包括:(a1&a2)|a3、(a2&a1)|a3、a3|(a1&a2)、a3|(a2&a1)共四种。

以图2中所示场景为例,该场景中是以三个条件进行目标提取,所述三个条件分别为:身份证号在名单a123中、每天上网时间小于2小时以及使用pc或无线注册。将每个条件使用变量代替,例如,a1代替身份证号在名单a123中;a2代替每天上网时间小于2小时;a3代替使用pc或无线注册。则根据三个条件之间的关系组成表达式条件为:(a1&a2)|a3。在保证三个条件关系不变情况下穷举三个条件的不同执行顺序即为上面所列举的四种。

在多条件提取中,可以有多种方式来评估提取性能,其中都离不开条件执行次数和条件执行时间这两个基本要素。本申请实施例即为在目标提取结果不变的情况下通过改变多条件的执行顺序来缩短提取时间。假设条件ai的执行次数为ci,执行时间为ti,步骤s120所述的计算每种执行顺序对应的性能参数值可以为f(ci,ti),其中f为函数,该函数随具体应用场景的不同而不同。其中一种实施例,所述性能参数值为利用所述多个条件进行目标提取所需的总体时间的倒数,则步骤s120中所述的计算每种执行顺序对应的性能参数值的方法包括如下子步骤:

子步骤1201、根据预先确定的每个条件的短路率确定不同执行顺序时每个条件的执行次数。

所述条件的短路率为全量数据中不满足所述条件的概率。即,利用一个条件a在全量数据中进行目标提取,提取结果为false的概率,假设利用条件a在全量数据中进行目标提取时,为true的概率为30%,为false的概率为70,则条件a的短路率为70%。

其中,本申请实施例可以预先通过统计来确定各条件的短路率。针 对穷举的每一执行顺序,可根据各条件的短路率来确定该执行顺序时每个条件的执行次数。假设a1的短路率为p1,a2的短路率为p2,全量数据总条数为n。针对表达式a1&a2,a1的执行次数为n,根据a1的短路率确定该执行顺序对应的表达式中a2的执行次数为(1-p1)n;针对表达式a2&a1,a2的执行次数为n,根据a2的短路率确定该执行顺序对应的表达式中a1的执行次数为(1-p2)n。针对表达式a1|a2,a1的执行次数为n,根据a1的短路率确定该执行顺序对应的表达式中a2的执行次数为p1*n;针对表达式a2|a1,a2的执行次数为n,根据a2的短路率确定该执行顺序对应的表达式中a1的执行次数为p2*n。也就是多个条件中第一个执行的条件的执行次数为全量数据的总条数,非第一个执行的条件与之前执行的条件的短路率相关。

子步骤1202、根据每个条件的执行次数及预先确定的每个条件的执行时间确定所述多个条件在不同执行顺序时进行目标提取所需的总体时间。

在多个条件的一种执行顺序的表达式中,条件ai的执行次数为ci,执行时间为ti,该条件在该表达式中所需时间为f(ci,ti),则所述多个条件的总体时间为t=f(c1,t1)+f(c2,t2)+…f(cn,tn)。

其中,每个条件的执行时间可预先通过统计确定,每个条件的执行时间可以为常量,也可以为执行次数的函数,或者为加以改造的时间函数,例如乘以经验系数μ后的时间μt等。

假设,条件a1计算时间为常量1ms,短路率为70%;a2计算时间为常量10ms,短路率为50%;全量数据总条数为n;针对同一表达式的两种不同执行顺序a1&a2及a2&a1分别计算所需的总体时间。

其中,a1&a2所需的总体时间为:

n×1ms+(1-70%)n×10ms=4n;

a2&a1所需的总体时间为:

n×10ms+(1-50%)n×1ms=10.5n;

可见,不同的执行顺序对应的提取时间差别较大,上述实例中,条件a1先执行比条件a2先执行会节省将近一倍的时间。

子步骤1203、计算所述总体时间的倒数作为所述多个条件在不同执行顺序时的性能参数值。

由于每一执行顺序均可计算出总体时间,则对应的可计算每一执行顺序的总体时间的倒数作为该执行顺序对弈的性能参数值。

所需的总体时间越短,则对应的性能参数值越大,也就是目标提取性能越好。步骤s130即为选择性能参数值最大的执行顺序作为确定的所述目标提取的所述多个条件的执行顺序。

步骤s140是以所述确定的所述多个条件的执行顺序进行所述目标提取。

通过上述描述可以看出,本申请实施例通过穷举多个条件的不同执行顺序,并确定不同执行顺序时的性能参数值,从而可以选择性能参数值最大的执行顺序作为目标提取的该多个条件的执行顺序,从而实现了自动确定多条件提取时的多条件执行顺序,自动提升目标提取性能。本申请上述实施例适用于条件相对较少的场景,从而能够快速穷举出每一执行顺序并确定每一执行顺序的性能参数值。

如图3中所示为本申请另一个实施例的多条件提取中优化提取性能的方法的流程图,所述方法用于利用多个条件进行目标提取场景下,自动确定所述多个条件的执行顺序,以提高提取性能,所述方法主要包括如下步骤:

s310、判断当前条件组成的表达式中是否只包含一个条件;

若否,则进入步骤s320;若是,则进入步骤s340。

s320、确定当前条件组成的表达式中连续全与部分和/或连续全或部分的最优执行顺序;

s330、将所述最优执行顺序的连续全与部分和/或最优执行顺序的连续全或部分分别作为一个整体条件并分别使用一个变量代替,组成新的表达式;

之后,针对新的表达式重复执行步骤s310,直到当前条件组成的表达式中仅包含一个条件为止,在当前条件组成的表达式中仅包含一个条 件情况下,执行步骤s340。

s340、使用原表达式替换回所述变量,得到所述多个条件的最优执行顺序表达式;

s350、以所述多个条件的最优执行顺序进行所述目标提取。

下面对上述各步骤做进一步详细介绍。

可以理解的是,在执行步骤s310之前,需获得所述多个条件组成的表达式。也就是,提取所述多个条件,将每个条件分别使用不同的变量代替,根据每个条件之间的关系组成表达式。在判断当前条件组成的表达式中是否只包含一个条件前,针对该表达式可根据德摩根定律及结合律去掉所述当前表达式中的括号。其中,利用德摩根律去掉表达式中“!”对应的括号。例如,表达式!(a1&a2),在去掉“!”对应的括号后变为!a1|!a2。利用结合律可去掉表达式中所有无用的括号,例如,表达式a1&(a2&a3)&a4去掉括号后转换成a1&a2&a3&a4。

由于本申请实施例涉及的为多条件提取场景,则在初始执行步骤s310时,该当前条件组成的表达式即为所述多个条件组成的表达式,该表达式中包含的条件一定不是一个,则进入步骤s320。

步骤s320是确定当前条件组成的表达式中连续全与部分和/或连续全或部分的最优执行顺序。

所述连续全与的表达式例如a1&a2&a3;连续全或的表达式例如a1|a2|a3。在当前条件组成的表达式中可能包括一个或多个连续全与表达式,以及存在一个或多个连续全或表达式。针对每个连续全与表达式及连续全或表达式,确定其最优执行顺序。

本申请实施例提供的确定连续全与部分和/或连续全或部分的最优执行顺序的方法包括但不限于以下任一种:

其一、采用上面实施例中所述的穷举的方法确定所述连续全与或连续全或部分的最优执行顺序。以连续全与表达式a1&a2&a3为例,穷举出该表达式的每一种执行顺序包括:a1&a2&a3、a1&a3&a2、a2&a1&a3、a2&a3&a1、a3&a1&a2、a3&a2&a1,计算每一执行顺序对应的性能参数值,选择其中性能参数值最大的执行顺序作为该连续 全与表达式的最优执行顺序。由于该连续全与部分或连续全或部分包括的条件有限,因此利用该穷举的方法可以自动快速确定出最优执行顺序。

其二、包括如下子步骤:

子步骤3201、分别计算连续全与部分和/或连续全或部分当前包含的条件中,令每个条件最后执行时的性能参数值;

子步骤3202、将性能参数值最大时对应的最后执行的条件作为所述连续全与部分和/或连续全或部分当前包含的条件中最后执行的条件;

子步骤3203、将所述最后执行的条件从所述连续全与部分和/或连续全或部分当前包含的条件中去除;

返回子步骤3201,即针对去除所述最后执行的条件后的连续全与部分和/或连续全或部分当前包含的条件,重复上述操作,逐步确定出所述连续全与部分和/或连续全或部分当前包含的条件中最后执行的条件,从而确定出所述连续全与部分和/或连续全或部分包含的每个条件的执行顺序作为所述连续全与部分和/或连续全或部分的最优执行顺序。

本申请实施例是在目标提取结果不变的情况下通过改变多条件的执行顺序来减少各条件的提取次数。其中,所述性能参数值包括:执行次数的倒数,在每个条件的执行时间均为常量情况下,所述分别计算连续全与部分和/或连续全或部分当前包含的条件中,令每个条件最后执行时的性能参数值的方法可以为:根据每个条件的短路率计算令每个条件最后执行时的执行次数;计算执行次数的倒数作为该条件最后执行时对应的性能参数值。

例如,针对连续全与表达式a1&a2&…&an,假设每个条件ai的短路率为pi,如果把ai放在最后执行,那么可以计算条件ai的执行次数ci=n*(1-p1)(1-p2)…(1-pn)/(1-pi),n为数据条数,计算该执行次数ci的倒数作为该条件ai最后执行时的性能参数值。这样,无论是哪个条件放在最后执行,都可以计算出性能参数值。可以取性能参数值中的最大值对应的最后执行的条件ax作为该表达式中最后执行的条件。之后将该ax从该表达式中抽掉。假如该ax为a2,则将a2从该连续全与表达式中抽掉,得到表达式a1&a3&…&an,按照上述方法确定表达式 a1&a3&…&an中最后执行的条件,并以此类推确定该全与表达式所有条件的执行顺序即为最优执行顺序。

针对连续全或的表达式按照同样的方法确定最优执行顺序,只是针对连续全或表达式a1|a2|…|an,假如将ai放在最后执行,则ai的执行次数ci=n*p1*p2…*pn/pi,n为数据条数。

步骤s330是将所述确定了最优执行顺序的所述连续全与部分和/或连续全或部分作为一个整体条件,并使用一个新的变量代替所述最优执行顺序的连续全与部分和/或最优执行顺序的连续全或部分。且该整体条件的短路率可根据连续全与部分和/或连续全或部分包含的各条件的短路率来确定。针对连续全与的表达式a1&a2&…&an,假设每个条件ai的短路率为pi,则该连续全与表达式作为一个整体条件时的短路率为:1-(1-p1)*(1-p2)*…(1-pn)。针对连续全或表达式a1|a2|…|an,假设每个条件ai的短路率为pi,则该连续全或表达式作为一个整体条件时的短路率为:p1*p2*…pn。

假如多个条件组成的表达式为a1&a2&a3|a4|a5|a6,在确定了连续全与部分a1&a2&a3的最优执行顺序为a3&a2&a1后,将该部分作为一个整体条件并使用a1’代替,连续全或部分a4|a5|a6的最优执行顺序为a5|a4|a6后,将该部分作为一个整体条件并使用a2’代替,原有多个条件组成的表达式a1&a2&a3|a4|a5|a6即可转换为a1’|a2’。

之后返回到步骤s310,继续判断当前条件组成的表达式中是否只包含一个条件,上述转换后的当前表达式a1’|a2’包含两个条件,则继续确定当前表达式a1’|a2’连续全与部分和/或连续全或部分的最优执行顺序,在当前表达式a1’|a2’中包含连续全或表达式,则仍可按照上述方法确定该表达式的最优执行顺序,假设确定的新的表达式a1’|a2’的最优执行顺序为a2’|a1’,将该表达式a2’|a1’使用另一新变量a1”代替,返回步骤s310,经判断该表达式中只包含一个条件,则执行步骤s340。

步骤s340是使用原有表达式替换回所述变量,也就是表达式a2’|a1’替换回a1”,表达式a3&a2&a1替换回a1’|,表达式a5|a4|a6替换回a2’,则最终得到的该多个条件组成的最优执行顺序的表达式为 a5|a4|a6|a3&a2&a1。

步骤s350是以所述最优执行顺序进行所述目标提取。

通过上述描述可以看出,本申请实施例通过递归方式确定出多个条件组成的表达式的最优执行顺序,实现了自动确定多条件提取时的多条件执行顺序,自动提升目标提取性能。

本实施例适用于各种多条件提取场景,在规则错综复杂的情况下能够有效提升目标提取性能。例如,在处理海量的离线数据时,通过离线类sql的方式利用多个条件对离线数据进行分析和执行批处理等操作,可以提升系统执行性能,加快任务的产出。在线的数据库应用中,当查询的条件比较复杂,使用索引技术难以覆盖所有情况时,即可使用本申请的方法优化各查询条件的执行顺序,以获得最快的sql执行速度。

本申请实施例还提供一种与上述多条件提取中优化提取性能的方法对应的多条件提取中优化提取性能的装置,该装置结构示意图如图4中所示,所述装置与上述第一个实施例对应,用于利用多个条件进行目标提取场景下,自动确定所述多个条件的执行顺序,以提高提取性能,所述装置包括:

穷举单元410,用于穷举所述多个条件进行目标提取时的不同执行顺序;

性能参数值计算单元420,用于计算每种执行顺序对应的性能参数值;

选择单元430,用于选择性能参数值最大的执行顺序作为确定的所述目标提取的所述多个条件的执行顺序;

目标提取单元440,用于以所述选择单元确定的所述多个条件的执行顺序进行所述目标提取。

一种实施例所述性能参数值包括:利用所述多个条件进行目标提取所需的总体时间的倒数,则性能参数值计算单元420被配置为:

根据预先确定的每个条件的短路率确定不同执行顺序时每个条件的执行次数,所述条件的短路率为全量数据中不满足所述条件的概率;

根据每个条件的执行次数及预先确定的每个条件的执行时间确定所述多个条件在不同执行顺序时进行目标提取所需的总体时间;

计算所述总体时间的倒数作为所述多个条件在不同执行顺序时的性能参数值。

所述穷举单元410被配置为:

获取所述多个条件之间的关系;

在保证所述多个条件之间的关系不变的情况下穷举所述多个条件进行目标提取时的不同执行顺序。

所述装置还包括:

表达式确定单元450,用于将每个条件使用变量代替,根据每个条件之间的关系组成表达式;

所述穷举单元410被配置为:

利用德摩根定律及结合律去掉所述表达式中的括号;

利用交换律交换所述表达式中各变量的位置,实现穷举所述多个条件的不同执行顺序。

本申请实施例还提供一种与上述第二个多条件提取中优化提取性能的方法对应的多条件提取中优化提取性能的装置,该装置结构示意图如图5中所示,所述装置用于利用多个条件进行目标提取场景,自动确定所述多个条件的执行顺序,以提高提取性能,所述装置包括:

判断单元510,用于判断当前条件组成的表达式中是否只包含一个条件;

最优执行顺序确定单元520,用于在当前条件组成的表达式中不只包含一个条件情况下,确定当前条件组成的表达式中连续全与部分和/或连续全或部分的最优执行顺序;

替换单元530,用于将所述最优执行顺序的连续全与部分和/或最优执行顺序的连续全或部分分别作为一个整体条件并分别使用一个变量代替,组成包含所述变量的新的表达式,将所述新的表达式传送给所述判断单元执行上述判断操作;

反替换单元540,用于在当前条件组成的表达式中是否只包含一个条件情况下,使用原表达式替换回所述变量,得到所述多个条件的最优执行顺序表达式;

目标提取单元550,用于以所述多个条件的最优执行顺序进行所述目标提取。

所述最优执行顺序确定单元520被配置为:

分别计算连续全与部分和/或连续全或部分当前包含的条件中,令每个条件最后执行时的性能参数值;

将性能参数值最大时对应的最后执行的条件作为所述连续全与部分和/或连续全或部分当前包含的条件中最后执行的条件;

将所述最后执行的条件从所述连续全与部分和/或连续全或部分当前包含的条件中去除;

重复上述操作,逐步确定出所述连续全与部分和/或连续全或部分当前包含的条件中最后执行的条件,从而确定出所述连续全与部分和/或连续全或部分包含的每个条件的执行顺序作为所述连续全与部分和/或连续全或部分的最优执行顺序。

所述性能参数值包括:执行次数的倒数,在每个条件的执行时间为常量情况下,所述最优执行顺序确定单元520被配置为:

根据每个条件的短路率分别计算令每个条件最后执行时的执行次数;

计算所述执行次数的倒数作为对应的性能参数值。

所述装置还包括:

表达式预处理单元560,用于根据德摩根定律及结合律去掉所述表达式中的括号。

综上所述,本申请实施例通过穷举多个条件的不同执行顺序,并确定不同执行顺序时的性能参数值,从而可以选择性能参数值最大的执行顺序作为目标提取的该多个条件的执行顺序;或者通过递归的方式确定多个条件的最优执行顺序,从而实现了自动确定多条件提取时的多条件执行顺序,自动提升目标提取性能。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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