CN110147289A - 异常消息筛选方法和装置以及计算机可读存储介质 - Google Patents
异常消息筛选方法和装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110147289A CN110147289A CN201810147696.9A CN201810147696A CN110147289A CN 110147289 A CN110147289 A CN 110147289A CN 201810147696 A CN201810147696 A CN 201810147696A CN 110147289 A CN110147289 A CN 110147289A
- Authority
- CN
- China
- Prior art keywords
- value
- statistic behavior
- state
- variable
- bit
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012216 screening Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 230000006399 behavior Effects 0.000 claims description 165
- 238000011065 in-situ storage Methods 0.000 claims description 25
- 238000001914 filtration Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims description 5
- 230000008901 benefit Effects 0.000 claims description 4
- 235000013399 edible fruits Nutrition 0.000 claims description 4
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 238000010276 construction Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种异常消息筛选方法和装置以及计算机可读存储介质,涉及消息处理领域。异常消息筛选方法包括:获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号的出现次数为第二数值;依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定异常消息。从而,能够在空间复杂度为O(1)的情况下筛选异常消息,提高了异常消息的筛选效率。
Description
技术领域
本发明涉及消息处理领域,特别涉及一种异常消息筛选方法和装置以及计算机可读存储介质。
背景技术
在大型的消息处理系统中,每种消息都有固定数量的一系列处理流程,并且具有编号,消息例如可以为指令、数据包等等。当一系列处理流程完成时,系统需要向汇总管道发送经过每个处理流程的消息的编号。例如,每条消息出现3条、消息的种类数为m,在正常情况下,汇总的消息总数应当为m*3。
当部分流程发生异常时,会出现某个编号的消息数量不正常、其他编号的消息数量正常的情况。例如,只有一个编号的消息出现1次,其他消息均出现了3次。为了找出异常消息,相关技术中主要采用哈希表的方式进行查找。即,用哈希表(HashMap)统计每个编号的统计次数,统计完毕后再遍历一次哈希表,查找出现次数异常的消息。
然而,采用哈希表统计和查找的方式在确定异常消息时效率较低,尤其是在消息量较大的情况下。
发明内容
发明人经过分析后发现,哈希表的空间复杂度为O(n),即空间复杂度与消息量大小n成线性关系。因此,随着消息量的增大,查找异常消息时所占用的存储空间和计算资源也会急剧增长,因而导致了效率低下。
本发明实施例所要解决的一个技术问题是:如何提高异常消息的筛选效率。
根据本发明一些实施例的第一个方面,提供一种异常消息筛选方法,包括:获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值;依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定出现次数为第一数值的编号对应的异常消息。
在一些实施例中,统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,状态集合中的值为二进制数。
在一些实施例中,状态转移规则包括:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值;位的输入值为0时,位统计状态的值不变。
在一些实施例中,异常消息筛选方法还包括:建立真值表,真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值;根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
在一些实施例中,根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则包括:对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算;对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得同一个比特的状态更新规则。
在一些实施例中,根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号包括:根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式;将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
在一些实施例中,采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。
根据本发明实施例的第二个方面,提供一种异常消息筛选装置,包括:编号获取模块,被配置为获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值;统计状态更新模块,被配置为依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;异常消息确定模块,被配置为根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定出现次数为第一数值的编号对应的异常消息。
在一些实施例中,统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,状态集合中的值为二进制数。
在一些实施例中,状态转移规则包括:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值;位的输入值为0时,位统计状态的值不变。
在一些实施例中,异常消息筛选装置还包括:真值表建立模块,被配置为建立真值表,真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值;状态更新规则建立模块,被配置为根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
在一些实施例中,状态更新规则建立模块进一步被配置为对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算;对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得同一个比特的状态更新规则。
在一些实施例中,异常消息确定模块进一步被配置为根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式;将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
在一些实施例中,异常消息确定模块进一步被配置为采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。
根据本发明一些实施例的第三个方面,提供一种异常消息筛选装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种异常消息筛选方法。
根据本发明一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种异常消息筛选方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例可以通过依次输入消息集合中每条消息的编号并更新统计状态来确定出现次数异常的编号,进而可以确定异常消息,从而,能够在空间复杂度为O(1)的情况下对异常消息进行筛选,无需占用过多的存储空间,提高了异常消息的查找效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一些实施例的异常消息筛选方法的示例性流程图。
图2为根据本发明一些实施例的状态更新规则构建方法的示例性流程图。
图3为根据本发明一些实施例的确定异常消息编号方法的示例性流程图。
图4为根据本发明一些实施例的异常消息筛选装置的示例性结构图。
图5为根据本发明另一些实施例的异常消息筛选装置的示例性结构图。
图6为根据本发明又一些实施例的异常消息筛选装置的示例性结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的异常消息筛选方法的示例性流程图。如图1所示,该实施例的异常消息筛选方法包括步骤S102~S106。
在步骤S102中,获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值。
本发明实施例中的消息可以是任意形式的,例如可以为指令、数据包等等。消息的编号例如可以为消息的标识、序列号等等。例如,在电子商务网站的订单处理过程中,视同一个订单所关联的消息为同一种消息,此时订单号可以视为消息的编号。每个订单需要经过生成、风险控制、订单分单、将订单下发给物流等处理过程,每个处理过程完成后都会生成订单号所对应的消息。从而,在正常情况下,每个订单号对应的消息数量是固定的,而如果某个流程发生异常,则该订单号对应的消息数量则少于其他订单号的消息数量。
第二数值是正常情况下每种编号的出现次数,第一数值则可以根据第二数值和消息总数确定。设第一数值为a1,第二数值为a2,消息总数为n,编号种类数为m,则第一数值可以通过公式(1)计算。
a1=n-a2*(m-1) (1)
在计算出了异常消息的出现次数之后,还不能确定是哪一个消息出现了异常,即在消息集合中的出现次数为第一数值的编号是未知的。因此需要进行后续过程。
在步骤S104中,依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值。
发明人经过分析后发现,消息集合中的大部分种类的消息均出现了相同的次数,只有异常消息的出现次数不同。因此,可以采用“消除”的思想,令出现第二数值次的消息在计算的过程中“消失”,从而将消息集中的所有消息都进行计算后,所有正常消息所留下的信息都“消失”了,只有异常消息的编号信息留存在统计状态中,因此得到的计算结果即可以表示出现次数为第一数值的异常消息。
基于上述分析,发明人提出采用统计状态来记录同一编号的消息的出现次数。在其他条件相同的情况下,同一编号出现次数为第二数值时与同一编号出现次数为0时具有相同的统计状态,即,某个编号出现次数为第二数值时,即消除其对统计状态的影响。
发明人经过进一步分析后发现,在进行逻辑运算时,由于是按位运算,因此某个位的运算结果并不会对其他位的值造成影响。从而,发明人想到可以将编号以及统计状态按位进行分割计算,将每个位的计算结果进行组合、得到的仍然是整个统计状态的更新结果。
在一些实施例中,统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,所述状态集合中的值为二进制数。位统计状态的最大值的下一个状态为位统计状态的最小值。从而,可以将编号采用二进制表示,逐个二进制位地进行分析。
例如,位统计状态的最小值可以是采用二进制表示的0,最大值可以是采用二进制表示的第二数值减1所得数值。状态更新规则可以是:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值,例如可以在原位统计状态的值不是状态集合中的最大值时将位统计状态的值加1,在原位统计状态的值是状态集合中的最大值时将位统计状态更新为状态集合中的最小值;位的输入值为0时,位统计状态的值不变。设第二数值为3,则状态集合中位统计状态的值包括00、01、10三种。即对于编号的某个二进制位,其初始的位统计状态为00,当有累计有一个1输入时状态切换为01,累计有两个1输入时状态切换为10,当累计有三个1输入时状态切换回00。而当有0输入时,由于0代表没有输入值,因此位统计状态不发生改变。将每个位统计状态组合起来,会得到整体的统计状态。
本领域技术人员应当清楚,上述实施方式仅为示例性的,根据需要,本领域技术人员例如还可以采用其他的进制来表示统计状态,也可以采用非二进制的方法来对编号进行分解,或者采用其他状态更新规则,这里不再赘述。
在步骤S106中,根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定所述出现次数为第一数值的编号对应的异常消息。
经过步骤S104的处理后,最后一次更新后获得的统计状态的值只包含异常消息的信息,因此可以根据最后的统计状态计算异常消息的编号。在一些实施例中,统计状态值与第一数值有关,因为异常消息出现不同次数会产生不同的统计状态值。从而,可以根据最后一次更新后获得的统计状态以及第一数值确定消息集合中出现次数为第一数值的编号。
通过上述实施例的方法,可以通过依次输入消息集合中每条消息的编号并更新统计状态来确定出现次数异常的编号,进而可以确定异常消息,从而,能够在空间复杂度为O(1)的情况下对异常消息进行筛选,无需占用过多的存储空间,提高了异常消息的查找效率。
在一些实施例中,可以通过建立真值表来分析状态更新规则。下面参考图2描述本发明状态更新规则的构建方法。
图2为根据本发明一些实施例的状态更新规则构建方法的示例性流程图。如图2所示,该实施例的状态更新规则构建方法包括步骤S202~S204。
在步骤S202中,建立真值表,所述真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据所述原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值。原位统计状态变量、更新后的位统计状态变量的取值均来自于状态集合。
在步骤S204中,根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
设在一次更新中,更新前的位统计状态采用O表示,其中,O=[Obit1,Obit2,…,ObitN],Obit1、Obit2、…、ObitN为位统计状态的N个比特;输入状态为IN;更新后的位统计状态采用U表示,其中,U=[Ubit1,Ubit2,…,UbitN],Ubit1、Ubit2、…、UbitN为位统计状态的N个比特。表1为真值表的一个示例。
表1
Obit1 | Obit2 | … | ObitN | IN | Ubit1 | Ubit2 | … | UbitN |
0 | 0 | … | 0 | 0 | 0 | 0 | … | 0 |
0 | 0 | … | 0 | 1 | 0 | 0 | … | 1 |
0 | 0 | … | 1 | 0 | 0 | 0 | … | 1 |
… | … | … | … | … | … | … | … | … |
0 | 0 | … | 0 | 1 | 0 | 1 | … | 0 |
… | … | … | … | … | … | … | … | … |
通过查表,可以直观地获得更新前的位统计状态、输入值和更新后的位统计状态之间的关系。而为了实现统计状态的自动更新,还可以根据真值表得出位统计状态中的每个比特的更新规则。
在一些实施例中,对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算,进行与运算的包括这些变量中取反的变量和未取反的变量;然后,对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得该同一个比特的状态更新规则。
例如,求解目标是想要获得位更新状态中第I个比特的更新规律,即求解UbitI的表达式,则可以首先锁定UbitI的值为1的行,然后对于锁定的每一行,将值为0的Obit1、Obit2、…、ObitN、IN变量取反后,将这些变量进行与运算,获得形如~Obit1&Obit2&…&~Obit1&IN的与运算结果,然后将各个行的与运算结果进行或运算,获得形如UbitI=(~Obit1&Obit2&…&~Obit1&IN)|(~Obit1&~Obit2&…&~Obit1&IN)|(Obit1&Obit2&…&Obit1&~IN)…的运算结果。
上述计算过程中,“&”表示与运算,“~”表示非运算、即取反运算,“|”表示或运算。本领域技术人员应当清楚,上述公式仅为示例性地说明更新规则的形式,其中的各个比特变量之间的逻辑关系并不对本发明起任何限制性作用。
下面以第一数值为1、第二数值为3为例,示例性地介绍一种状态更新规则的确定方法。第二数值为3时,说明在正常情况下,根据同一个编号的出现次数可以确定三种状态,分别为00、01和10,10的下一个状态是00。构建的真值表如表2所示。
表2
Obit1 | Obit2 | IN | Ubit1 | Ubit2 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
在表2的最后一行中,由于Obit1=1、Obit2=0是状态集合中的最后一个值,因此其更新后的下一个状态为初始值,即Obit1=0、Obit2=0。
从而,Ubit1和Ubit2的逻辑表达式分别如公式(2)和公式(3)所示。
Ubit1=(~Obit1&Obit2&IN)|(Obitl&~Obit2&~IN) (2)
Ubit2=(~Obit1&~Obit2&IN)|(~Obit1&Obit2&~IN)
=~Obit1&(Obit2^IN) (3)
在公式(3)中,“^”表示异或运算。通过上述公式,可以获得更新后的为统计状态的每个比特的值。然后,在下一次更新时,将上一次计算获得的Ubit1、Ubit2、...、UbitN再作为Obit1、Obit2、...、ObitN,以进行迭代更新。
下面再以第一数值为4、第二数值为6为例,示例性地介绍一种状态更新规则的确定方法。第二数值为6时,说明在正常情况下,根据同一个编号的出现次数可以确定六种状态,分别为000、001、010、011、100和101,101的下一个状态是000。构建的真值表如表3所示。
表3
Obit1 | Obit2 | Obit3 | IN | Ubit1 | Ubit2 | Ubit3 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 | 0 | 0 |
从而,Ubit1、Ubit2和Ubit3的逻辑表达式分别如公式(4)~(6)所示。
Ubit1=(~Obit1&Obit2&Obit3&IN)|
(Obit1&~Obit2&(~Obit3+Obit3&~IN)) (4)
Ubit2=~Obit1&(~Obit2&Obit3&IN+Obit2&~Obit3
+Obit2&Obit3&~IN) (5)
Ubit3=(~Obit1+Obit1&~Obit2)&
(~Obit3&1N+Obit3&~IN) (6)
上述公式是根据一个位统计状态来确定的。然而,由于在进行逻辑运算时采用的是位运算,即某一位的逻辑运算结果不会对其他位造成影响,因此,上述方法得出的更新规则可以应用于整个统计状态,而不限于一个位统计状态。例如,上表中的输入变量IN为一个比特位的0或1,在实际运算中,可以将编号的二进制表示直接作为IN,然后按照上述方法进行状态更新。此时,更新的对象不是位统计状态的某个比特,而是整个统计状态的某个比特。
下面参考图3描述本发明在获得最后的统计状态后确定异常消息的编号的方法。
图3为根据本发明一些实施例的确定异常消息编号方法的示例性流程图。如图3所示,该实施例的状态更新规则构建方法包括步骤S302~S304。
在步骤S302中,根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式。
在一些实施例中,可以采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。第一数值的二进制形式由0、1构成。将第一数值的二进制各个位与统计状态包括的各个位统计状态对应。例如,设位统计状态C包括Bit1、Bit2和Bit3。如果第一数值为001,则将Bit1、Bit2取反,获得消息筛选表达式如公式(7)所示,其中,OUT表示输出值,即出现次数为第一数值的编号。
OUT=~Bit1&~Bit2&Bit3 (7)
在步骤S304中,将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
从而,仅需要对消息集合进行一次遍历即可筛选出异常数据,提高了异常消息筛选的效率。
图2和图3的实施例可以进行结合。下面简单地介绍一个示例性的应用例。为了便于说明计算过程,该实施例的消息集合中仅有4个消息。而在实际应用中,消息集合的消息量很可能远远大于以下应用例。
设消息集合中的编号为[5,5,4,5],此时第一数值为1,第二数值为3。由于3采用两位二进制数可以表示,因此每个位统计状态包括两个比特,设为Bit1、Bit2。更新过程可以参考表4。
表4
由表3可知,最后一次更新后统计状态的第一个比特Bit1的值为000,第二个比特Bit2的值为100。由于第一数值为1,采用两个比特位表示为01,其中0对应Bit1、1对应Bit2。因此,消息筛选表达式如公式(8)所示。
OUT=~Bit1&Bit2 (8)
从而,消息集合中出现次数为第一数值的编号为~(000)&100的值,即100,转换为十进制为4。即,编号为4的消息是异常消息。
下面参考图4描述本发明异常消息筛选装置的实施例。
图4为根据本发明一些实施例的异常消息筛选装置的示例性结构图。如图4所示,该实施例的异常消息筛选装置40包括:编号获取模块410,被配置为获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值;统计状态更新模块420,被配置为依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;异常消息确定模块430,被配置为根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定出现次数为第一数值的编号对应的异常消息。
在一些实施例中,统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,状态集合中的值为二进制数。
在一些实施例中,状态转移规则包括:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值;位的输入值为0时,位统计状态的值不变。
在一些实施例中,异常消息筛选装置40还可以包括:真值表建立模块440,被配置为建立真值表,真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值;状态更新规则建立模块450,被配置为根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
在一些实施例中,状态更新规则建立模块450可以进一步被配置为对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算;对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得同一个比特的状态更新规则。
在一些实施例中,异常消息确定模块430可以进一步被配置为根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式;将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
在一些实施例中,异常消息确定模块430可以进一步被配置为采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。
图5为根据本发明另一些实施例的异常消息筛选装置的示例性结构图。如图5所示,该实施例的异常消息筛选装置500包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行前述任意一个实施例中的异常消息筛选方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图6为根据本发明又一些实施例的异常消息筛选装置的示例性结构图。如图6所示,该实施例的异常消息筛选装置600包括:存储器610以及处理器620,还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种异常消息筛选方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程消息处理设备的处理器以产生一个机器,使得通过计算机或其他可编程消息处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程消息处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程消息处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种异常消息筛选方法,包括:
获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值;
依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;
根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定所述出现次数为第一数值的编号对应的异常消息。
2.根据权利要求1所述的异常消息筛选方法,其中,所述统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,所述状态集合中的值为二进制数。
3.根据权利要求2所述的异常消息筛选方法,其中,
所述状态转移规则包括:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值;位的输入值为0时,位统计状态的值不变。
4.根据权利要求3所述的异常消息筛选方法,还包括:
建立真值表,所述真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据所述原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值;
根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
5.根据权利要求4所述的异常消息筛选方法,其中,所述根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则包括:
对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算;
对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得所述同一个比特的状态更新规则。
6.根据权利要求2所述的异常消息筛选方法,其中,根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号包括:
根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式;
将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
7.根据权利要求6所述的异常消息筛选方法,其中,采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。
8.一种异常消息筛选装置,包括:
编号获取模块,被配置为获取消息集合中每条消息的编号,其中,一种编号在消息集合中的出现次数为第一数值,其余的每种编号在消息集合中的出现次数为第二数值;
统计状态更新模块,被配置为依次输入消息集合中每条消息的编号,根据状态更新规则更新统计状态的值,其中,统计状态的值包括一个或多个状态集合中的值,状态集合中包括第二数值个有序的值,状态集合中的最后一个值更新后的下一个值为状态集合中的第一个值;
异常消息确定模块,被配置为根据最后一次更新后获得的统计状态确定消息集合中出现次数为第一数值的编号,以确定所述出现次数为第一数值的编号对应的异常消息。
9.根据权利要求8所述的异常消息筛选装置,其中,所述统计状态包括编号的各个二进制位上的位统计状态,每个位统计状态包括一个或多个比特、并且值为状态集合中的值,所述状态集合中的值为二进制数。
10.根据权利要求9所述的异常消息筛选装置,其中,所述状态转移规则包括:位的输入值为1时,令位统计状态的值转移到状态集合中的下一个值;位的输入值为0时,位统计状态的值不变。
11.根据权利要求10所述的异常消息筛选装置,还包括:
真值表建立模块,被配置为建立真值表,所述真值表中的每一行包括原位统计状态变量的值、输入变量的值以及根据所述原位统计状态变量的值和输入变量的值确定的更新后的位统计状态变量的值;
状态更新规则建立模块,被配置为根据真值表,采用位原统计状态变量、输入变量的各个比特之间的逻辑关系表示更新后的位统计状态变量,建立状态更新规则。
12.根据权利要求11所述的异常消息筛选装置,其中,所述状态更新规则建立模块进一步被配置为对于真值表中位统计状态变量的值为1的各个行,在将行中的原位统计状态变量的每个比特和位输入变量中值为0的变量取反后,将行中的原位统计状态变量的每个比特以及位输入变量进行与运算;对于真值表中更新后的位统计状态的同一个比特,将每个比特值为1的行的与运算结果进行或运算,获得所述同一个比特的状态更新规则。
13.根据权利要求9所述的异常消息筛选装置,其中,所述异常消息确定模块进一步被配置为根据第一数值所对应的统计状态的值,采用位统计状态的各个比特之间的逻辑运算结果确定消息筛选表达式;将最后一次更新后获得的统计状态的每个位的每个比特的值输入到消息筛选表达式,输出消息集合中出现次数为第一数值的编号。
14.根据权利要求13所述的异常消息筛选装置,其中,所述异常消息确定模块进一步被配置为采用二进制表示第一数值,将位统计状态变量中0对应的比特取反后,将各个比特进行与运算,获得消息筛选表达式。
15.一种异常消息筛选装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~7中任一项所述的异常消息筛选方法。
16.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~7中任一项所述的异常消息筛选方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810147696.9A CN110147289B (zh) | 2018-02-13 | 2018-02-13 | 异常消息筛选方法和装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810147696.9A CN110147289B (zh) | 2018-02-13 | 2018-02-13 | 异常消息筛选方法和装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147289A true CN110147289A (zh) | 2019-08-20 |
CN110147289B CN110147289B (zh) | 2023-11-03 |
Family
ID=67589178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810147696.9A Active CN110147289B (zh) | 2018-02-13 | 2018-02-13 | 异常消息筛选方法和装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147289B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947858A (zh) * | 2021-02-25 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN114757145A (zh) * | 2022-03-21 | 2022-07-15 | 慧之安信息技术股份有限公司 | 一种判断消息字符集编码的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006276924A (ja) * | 2005-03-28 | 2006-10-12 | Hitachi Ltd | 設備機器診断装置及び設備機器診断プログラム |
CN104050289A (zh) * | 2014-06-30 | 2014-09-17 | 中国工商银行股份有限公司 | 一种异常事件检测方法及系统 |
WO2014154061A1 (zh) * | 2013-08-27 | 2014-10-02 | 中兴通讯股份有限公司 | 终端及其升级方法、服务器、系统及计算机存储介质 |
CN107066519A (zh) * | 2017-02-13 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 一种任务检测方法及装置 |
CN107506253A (zh) * | 2017-08-11 | 2017-12-22 | 北京东土科技股份有限公司 | 一种操作系统异常信息保存方法及装置 |
-
2018
- 2018-02-13 CN CN201810147696.9A patent/CN110147289B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006276924A (ja) * | 2005-03-28 | 2006-10-12 | Hitachi Ltd | 設備機器診断装置及び設備機器診断プログラム |
WO2014154061A1 (zh) * | 2013-08-27 | 2014-10-02 | 中兴通讯股份有限公司 | 终端及其升级方法、服务器、系统及计算机存储介质 |
CN104050289A (zh) * | 2014-06-30 | 2014-09-17 | 中国工商银行股份有限公司 | 一种异常事件检测方法及系统 |
CN107066519A (zh) * | 2017-02-13 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 一种任务检测方法及装置 |
CN107506253A (zh) * | 2017-08-11 | 2017-12-22 | 北京东土科技股份有限公司 | 一种操作系统异常信息保存方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947858A (zh) * | 2021-02-25 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN112947858B (zh) * | 2021-02-25 | 2023-04-25 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN114757145A (zh) * | 2022-03-21 | 2022-07-15 | 慧之安信息技术股份有限公司 | 一种判断消息字符集编码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110147289B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160253366A1 (en) | Analyzing a parallel data stream using a sliding frequent pattern tree | |
CN109426484A (zh) | 一种数据排序装置、方法及芯片 | |
CN112035857B (zh) | 数据保护方法、装置、设备及介质 | |
CN110147289A (zh) | 异常消息筛选方法和装置以及计算机可读存储介质 | |
CN106372977B (zh) | 一种虚拟账户的处理方法和设备 | |
CN105022961A (zh) | 一种计算机数据的保护方法及装置 | |
CN109062867A (zh) | 对象和属性同时增加的矩阵动态属性约简方法 | |
CN107977504A (zh) | 一种非对称堆芯燃料管理计算方法、装置及终端设备 | |
CN108376070A (zh) | 一种编译源代码对象的方法、装置及计算机 | |
CN109977373A (zh) | 标识号分配方法、标识号回收方法及装置 | |
CN104182208A (zh) | 利用破解规则破解密码的方法及系统 | |
CN111176992A (zh) | 流程引擎的测试方法、装置、计算机设备及存储介质 | |
CN107247906B (zh) | 一种用于数据的加密方法及装置 | |
CN113111614B (zh) | 类总线分组的确定方法、装置、设备及介质 | |
CN115146485A (zh) | 基于gpu加速的射频链路仿真方法 | |
CN114996503A (zh) | 一种节点定位方法和装置 | |
Arya | Fastbit-radix sort: Optimized version of radix sort | |
CN110399354A (zh) | 数据库的分区交换方法及装置 | |
JP6555259B2 (ja) | 情報処理装置、データ格納方法、及び、プログラム | |
Ingole et al. | Instruction set design for elementary set in tensilica xtensa | |
CN110276203B (zh) | 电力系统控制保护程序的加密方法、装置和存储介质 | |
WO2021250750A1 (ja) | パターン抽出装置、パターン抽出方法及びプログラム | |
Puhan et al. | Decrypted data detection algorithm based on dynamic dataflow analysis | |
CN106933657A (zh) | 数据库死锁处理方法及装置 | |
WO2021210100A1 (ja) | パターン抽出装置、パターン抽出方法及びプログラム |
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 |