相似度的计算方法和装置与流程

文档序号:12887149阅读:233来源:国知局
相似度的计算方法和装置与流程
本发明涉及计算机技术应用领域,具体而言,涉及一种相似度的计算方法和装置。
背景技术
:风控系统中规则由三部分组成:事件、条件表达式和执行动作。事件作为规则的数据输入部分由数据字典构成,每个数据字典表示一个元数据信息,通常可以将事件表示为数据字典的集合。条件表达式是规则的逻辑判断部分,由左变量、操作符、右变量构成。左、右变量为数据字典或文本常量,操作符用于对左右表达式进行计算。执行动作为当规则的表达式都满足时采取的行动。用e表示事件,v表示条件表达式,a表示执行动作列表,则规则s可以表示为s=<e,v,a>。一条规则可以设置多个事件、条件表达式和执行动作。现有技术中,在计算规则的相似度的过程中主要包括以下步骤:步骤1,将需要进行计算的规则进行分词并去掉停用词;步骤2,将步骤1得到的分词表示成词向量的形式,每条规则以词向量的形式进行表示;步骤3,采用余弦距离的计算方法计算步骤2得到的词向量的距离,从而得到规则的相似度。两个向量的余弦距离等于两个向量的内积除以两个向量的长度乘积。由上可知,将规则表示成词向量并通过计算词向量的余弦距离来计算规则相似度的方法在将规则转变成词向量时只考虑了规则本身的文本信息,忽略了规则使用的业务场景和业务意义。不同业务场景下的规则用于防控不同的业务需求,但有些业务场景由于防控策略类似,在进行规则配置时使用了相同或相似的防控策略,这样导致规则的文本信息几乎相同,当规则表示成词向量并计算余弦距离后发现这些规则具有很高的相似度,而实际业务场景中这些规则因使用场景不同而应该具有很小的相似度。此外,将规则用词向量表示时规则的事件部分、条件表达式部分和动作部分采用统一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度。针对上述由于现有技术中对规则的事件部分、条件表达式部分和动作部分采用统 一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种相似度的计算方法和装置,以至少解决由于现有技术中对规则的事件部分、条件表达式部分和动作部分采用统一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度的技术问题。根据本发明实施例的一个方面,提供了一种相似度的计算方法,包括:从各个规则中提取参数组;分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;分别计算第一参数列表的相似度和第二参数列表的相似度;根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度。根据本发明实施例的另一方面,还提供了一种相似度的计算装置,包括:提取模块,用于从各个规则中提取参数组,其中,参数组包括:事件、条件表达式和动作;集成模块,用于分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;第一计算模块,用于分别计算第一参数列表的相似度和第二参数列表的相似度;第二计算模块,用于根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度。在本发明实施例中,通过从各个规则中提取参数组;分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;分别计算第一参数列表的相似度和第二参数列表的相似度;根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度,达到了分别计算时间、条件表达式和动作的相似度的目的,从而实现了提升规则之间的相似度的计算精度的技术效果,进而解决了由于现有技术中对规则的事件部分、条件表达式部分和动作部分采用统一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图 中:图1是本发明实施例的一种相似度的计算方法的计算机终端的硬件结构框图;图2是根据本发明实施例一的相似度的计算方法的流程图;图3是根据本发明实施例一的一种相似度的计算方法的流程图;图4是根据本发明实施例一的一种相似度的计算方法中计算条件表达式列表的相似度的流程图;图5是根据本发明实施例二的相似度的计算装置的结构示意图;图6是根据本发明实施例二的一种相似度的计算装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请实施例涉及的技术名词:规则:风控系统中风险防控逻辑的具体描述和可视化实现,由事件、条件表达式和动作构成。事件:规则的数据输入部分,数据对象形式化描述的集合,由一系列数据字典构成。条件表达式:由左变量、右边量和操作符构成的逻辑运算,当左、右变量满足操 作符的运算逻辑时返回true,否则返回false。数据字典:元数据信息的具体表现形式。动作:规则的表达式满足时采取的行动,行动的执行由函数来具体实现。余弦距离:也称为余弦相似度,用向量空间中两个向量夹角的余弦值来度量两个向量的差异。两个n维向量a(x1,x2,...,xn)与b(y1,y2,...,yn)间的余弦距离欧式距离:n维空间中两个点之间的真实距离或向量的自然长度。两个n维向量a(x1,x2,...,xn)与b(y1,y2,...,yn)间的欧氏距离曼哈顿距离:通常称为l1-距离,表示在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。两个n维向量a(x1,x2,...,xn)与b(y1,y2,...,yn)间的曼哈顿距离实施例1根据本发明实施例,还提供了一种相似度的计算方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种相似度的计算方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的相似度的计算方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞 检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。在上述运行环境下,本申请提供了如图2所示的相似度的计算方法。图2是根据本发明实施例一的相似度的计算方法的流程图。步骤s202,从各个规则中提取参数组。本申请上述步骤s202中,从多个规则中提取参数组,其中,每个规则中可以包括:多个事件和多个条件表达式。此外,各个规则中还可以包括:多个动作。具体的,本申请实施例提供的相似度的计算方法可以适用于风险防控逻辑系统,特别可以适用于不同业务场景不同业务的规则相似度计算,用于抓取检测每个事件源发生的事件是否存在风险。在本申请实施例中用e表示事件和v表示条件表达式;在规则还包括动作的情况下,a表示执行动作列表,则规则s可以表示为s=<e,v,a>。一条规则可以设置多个事件、条件表达式和执行动作。步骤s204,分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;基于步骤s202中提取的事件、条件表达式和动作,本申请上述步骤s204中,将每个规则的全部事件进行整理得到事件列表,同理,可以得到条件表达式列表和动作列表。具体的,该事件列表可以如表1所示,表1是事件列表事件规则s1规则s2……规则snee1,e2e2,e4……ex,en其中,表1中的e表示为事件列表,该表1中分别包含了规则s1至规则sn的事件,即,规则s1中包括事件e1和e2,规则s2中包括事件e2和e4,规则sn中包括事件ex和en,x<n。同理可以得到条件表达式列表和动作列表,区别在于,条件表达式列表以v表示,动作列表以a表示。步骤s206,分别计算第一参数列表的相似度和第二参数列表的相似度;基于步骤s204得到的事件列表、条件表达式列表和动作列表,本申请上述步骤s206中,依据得到的事件列表、条件表达式列表和动作列表,分别计算事件列表的相似度、条件表达式列表的相似度和动作列表的相似度,即,通过分别计算事件列表的相似度、条件表达式列表的相似度和动作列表的相似度,可以得到事件列表的相似度sim(e1,e2),条件表达式列表的相似度sim(v1,v2)和动作列表的相似度sim(a1,a2)。具体的,本申请实施例提供的相似度的计算方法中,将事件的相似度作为规则相似度的一部分进行计算,可以使得不同业务的规则具有很低的相似度,从而满足在不同业务场景,不同业务下,不会由于计算方式的原因影响对规则之间的相似度判断。步骤s208,根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度。基于步骤s206得到的事件列表的相似度和条件表达式列表的相似度和动作列表的相似度,本申请上述步骤s208中,本申请实施例可以通过对事件列表的相似度和条件表达式列表的相似度进行求平均值得到规则之间的相似度,即,本申请实施例中的规则之间的相似度可以为sim(s1,s2)=[sim(e1,e2)+sim(v1,v2)]/2。本申请实施例提供的相似度的计算方法仅以规则s1和s2为例进行举例,本申请实施例提供的相似度的计算方法可以适用于多个规则之间的相似度计算,以实现本申请实施例提供的相似度的计算方法为准,具体不做限定。此外,当规则还包括动作时,本申请实施例可以通过对事件列表的相似度、条件表达式列表的相似度和动作列表的相似度进行求平均值得到规则之间的相似度,即,本申请实施例中的规则之间的相似度可以为sim(s1,s2) =[sim(e1,e2)+sim(v1,v2)+sim(a1,a2)]/3。具体的,结合步骤s202至步骤s208,图3是根据本发明实施例一的一种相似度的计算方法的流程图,如图3所示,在本申请实施例提供的相似度的计算方法中,一条规则由事件列表、条件表达式列表、执行动作列表构成,将规则表示为s=<e,v,a>,其中e为规则事件构成的事件列表,v为规则的条件表达式构成的条件表达式列表,a为规则执行动作构成的动作列表。第一步:数据准备。从规则中提取出规则的事件、条件表达式、动作三部分,由于规则可以具有多个事件、条件表达式和动作,从而得到规则的事件列表、条件表达式列表和动作列表;第二步:分别计算事件列表的相似度、条件表达式列表的相似度和动作列表的相似度;第三步:计算规则的相似度。规则的相似度为事件列表相似度、条件表达式列表相似度、动作列表相似度的平均值。由上可知,本申请上述实施例一所提供的方案,通过从各个规则中提取参数组;分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;分别计算第一参数列表的相似度和第二参数列表的相似度;根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度,达到了分别计算时间、条件表达式和动作的相似度的目的,从而实现了提升规则之间的相似度的计算精度的技术效果,进而解决了由于现有技术中对规则的事件部分、条件表达式部分和动作部分采用统一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度的技术问题。可选的,参数组包括:第一参数、第二参数和第三参数,其中,第一参数为事件,第二参数为条件表达式,第三参数为动作。可选的,步骤s204中分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表包括:step1,将各个规则中的多个事件进行归类,得到事件列表;本申请上述步骤s204中的step1中,提取每个规则中的事件,依据各个规则对所辖事件进行分类,进而得到以各个规则为单位的事件列表,其中,该事件列表形式可以如表1所示。step2,将各个规则中的多个条件表达式进行归类,得到条件表达式列表;本申请上述step2中,基于步骤step1,与生成事件列表同理,通过提取各个规则中的条件表达式,以各个规则为单位对条件表达式进行分类,进而得到以各个规则为单位的条件表达式列表。进一步地,可选的,本申请实施例提供的相似度的计算方法还包括:step3,在第三参数为动作的情况下,将各个规则中的多个动作进行归类,得到动作列表。本申请上述step3中,基于步骤step1,与生成事件列表同理,通过提取各个规则中的动作,以各个规则为单位对动作进行分类,进而得到以各个规则为单位的动作列表。可选的,步骤s206中分别计算第一参数列表的相似度和第二参数列表的相似度包括:step1,解析事件列表中的事件,得到每个事件中的数字字典;基于步骤s204中的step1中得到的事件列表,本申请上述步骤s206中的step1中,由于每个规则中的事件是由一系列数据字典组成,因此通过解析事件列表中的事件,可以得到每个事件中的数字字典。step2,依据数字字典和第一预设条件计算得到事件列表的相似度;基于步骤step1中得到的每个事件中的数字字典,本申请上述step2中,在得到每个事件中的数字字典后,可以通过以事件为单位,得到各个事件的公有数字字典(将公有数字字典作为参数一),和所有事件的数字字典(将所有数字字典作为参数二),最后依据第一预设条件计算上述参数一和参数二,得到事件列表的相似度sim(ei,……,en)。step3,在条件表达式包括左变量、右变量和操作符的情况下,通过判断操作符是否相同,并分别计算左变量的相似度和右变量的相似度,得到条件表达式列表的相似度;基于步骤s204中的step2中得到的条件表达式列表,本申请上述step3中,提取各个条件表达式中的左变量、右变量和操作符,首先判断各个条件表达式中的操作符是否相同,在判断结果为否的情况下,各个条件表达式之间的相似度为0,即,条件表达式列表的相似度为0;在判断结果为是的情况下,分别计算左变量的相似度和右变量的相似度,最后依据左变量的相似度和右变量的相似度计算条件表达式列表的相似度。具体的,条件表达式列表由规则的条件表达式构成,假设规则s1的条件表达式列表为v1={v1,v2,v3,...,,vm},规则s2的条件表表达式列表为v2={v1,v2,v3,...,,vn},则条件表达式列表的相似度定义为:其中,sim(vi,vj)表示条件表达式vi和vj的相似度,|v1|和|v2|分别表示规则s1和s2的条件表达式个数。进一步地,可选的,本申请实施例提供的相似度的计算方法还包括:step4,在第三参数为动作的情况下,将动作列表中的动作标记对应的函数;基于步骤s204中的step3中得到的动作列表,本申请上述step4中,由于每个规则中的动作是由对应的函数实现,因此将每个规则中的动作标记对应的函数。step5,依据函数和第二预设条件计算得到动作列表的相似度。基于步骤step4中标记的函数,本申请上述step5中,在将每个动作标记为对应的函数后,将各个规则中动作列表中的公有函数和每个动作列表中的所有函数通过第二预设条件进行计算,得到动作列表的相似度。进一步地,可选的,步骤s206中的step2中依据数字字典和第一预设条件计算得到事件列表的相似度包括:步骤a,依据第一预设条件将每个事件的公共数据字典的个数与每个事件的全部数字字典的个数做比,得到事件列表的相似度,第一预设条件为:其中,|e1∩e2|为事件e1集和e2的公共数据字典的个数,|e1∪e2|为事件e1集和e2的所有数据字典的个数。基于步骤s206中的step2,本申请上述步骤a中,依据第一预设条件将每个事件的公共数字字典的个数与每个事件的全部数字字典的个数作商(即,以作比的形式求相似度),得到事件列表的相似度。具体的,假设事件列表表示为e={d1,d2,d3,...,dn},其中di(i=1,2,3,...,n)表示构成事件的数据字典,第一预设条件为其中,|e1∩e2|为事件e1集和e2的公共数据字典的个数,|e1∪e2|为事件e1集和e2的所有数据字典的个数。例如,事件e1由数据字典d1,d2,d3构成,事件e2由数据字典d1,d3,d4构成,事件e3由数据字典d2,d3,d4构成;规则s1的事件列表有e1和e2,规则s2的事件列表有e3,则 e1={d1,d2,d3,d4},e2={d2,d3,d4},则可选的,步骤s206中的step3中通过判断操作符是否相同,并分别计算左变量的相似度和右变量的相似度,得到条件表达式列表的相似度包括:步骤a,从条件表达式中提取左变量、右变量和操作符;本申请上述步骤s206中的step3中的步骤a中,提取条件表达式中的左变量、右变量和操作符。步骤b,判断每个操作符是否相等;基于步骤a中提取的操作符,本申请上述步骤b中,判断每个条件表达式中的操作符是否相等,在判断结果为否的情况下执行步骤c,在判断结果为是的情况下执行步骤d。步骤c,在判断结果为否的情况下,条件表达式列表的相似度为0;基于步骤b的判断,本申请上述步骤c中,由于操作符用于指示条件表达式中左变量和右变量的运算逻辑,因此若两个表达式中的操作符不相同,则说明条件表达式之间的运算逻辑是完全不同的,由此可以得到条件列表的相似度为0。步骤d,在判断结果为是的情况下,分别判断左变量和右变量是否为数字字典;基于步骤b的判断,本申请上述步骤d中,在操作符相同的情况下,在计算条件表达式列表的相似度之前,首先分别判断左变量和右变量是否为数字字典,即,同时判断左变量和右变量是否为数据字典,在判断结果为是的情况下,执行步骤e;在判断结果为否的情况下,执行步骤f。步骤e,在左变量和右变量分别为数字字典的情况下,执行第一预设操作,输出条件表达式列表的第一相似度;基于步骤d对左变量和右变量是否为数字字典的判断,本申请上述步骤e中,在左变量和右变量分别为数字字典的情况下,执行第一预设操作,其中,该第一预设操作为对左变量和右变量的进一步的判断操作,进而依据不同的判断结果输出条件表达式列表的第一相似度。步骤f,在左变量和右变量均不是数字字典的情况下,执行第二预设操作,输出条件表达式列表的第二相似度。基于步骤d对左变量和右变量是否为数字字典的判断,本申请上述步骤f中,在 左变量和右变量均不是数字字典的情况下,执行第二预设操作,其中,该第二预设操作为在判断左变量和右变量不是数字字典后,通过转变左变量和右变量的类型,计算转变类型后的左变量的相似度和转变类型后的右变量的相似度,最后得到条件表达式列表的第二相似度。进一步地,可选的,步骤e中在左变量和右变量分别为数字字典的情况下,执行第一预设操作,输出条件表达式列表的第一相似度包括:步骤1,在左变量和右变量分别为数字字典的情况下,分别判断每个左变量对应的数字字典是否相同,以及每个右变量对应的数字字典是否相同;本申请上述步骤e中的步骤1中,在左变量和右变量分别为数字字典的情况下,分别同时判断每个左变量对应的数字字典是否相同,以及每个右变量对应的数字字典是否相同,若相同,则执行步骤2;若不同,则执行步骤3。步骤2,在每个左变量对应的数字字典相同,以及每个右变量对应的数字字典相同的情况下,左变量的相似度和右变量的相似度为1,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度;基于步骤1的判断,本申请上述步骤2中,在每个左变量对应的数字字典相同,以及每个右变量对应的数字字典相同的情况下,左变量的相似度和右变量的相似度为1,即,表明条件表达式列表中的条件表达式之间左变量的相似度与右变量相似度吻合,在得到左变量的相似度和右变量的相似度之后,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度。具体的,如果数据字典相同则左变量的相似度s_l=1,同样,右变量的相似度s_r=1。结合左变量的相似度s_l=1和右变量的相似度s_r=1,通过求取左变量的相似度和右变量的相似度的平均值得到条件表达式列表的第一相似度,即,s_v=(s_l+s_r)/2,由上可知,在左变量的相似度s_l=1和右变量的相似度s_r=1的情况下,条件表达式列表的第一相似度:sv=(1+1)/2=1。步骤3,在每个左变量对应的数字字典不同,以及每个右变量对应的数字字典不同的情况下,左变量的相似度和右变量的相似度为0,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度。基于步骤1的判断,本申请上述步骤3中,在每个左变量对应的数字字典不同,以及每个右变量对应的数字字典不同的情况下,左变量的相似度和右变量的相似度为0,即,表明条件表达式列表中的条件表达式之间左变量的相似度与右变量相似度不吻 合,在得到左变量的相似度和右变量的相似度之后,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度。具体的,如果数据字典不同则左变量的相似度s_l=0,同样,右变量的相似度s_r=0。结合左变量的相似度s_l=0和右变量的相似度s_r=0,通过求取左变量的相似度和右变量的相似度的平均值得到条件表达式列表的第一相似度,即,s_v=(s_l+s_r)/2,由上可知,在左变量的相似度s_l=0和右变量的相似度s_r=0的情况下,条件表达式列表的第一相似度:sv=(0+0)/2=0。可选的,步骤f,在左变量和右变量均不是数字字典的情况下,执行第二预设操作,输出条件表达式列表的第二相似度包括:步骤1,在左变量和右变量均不是数字字典的情况下,分别将左变量和右变量确定为文本常量,并分别将左变量对应的文本和右变量对应的文本分解为第一数集和第二数集;本申请上述步骤f中的步骤1中,在左变量和右变量均不是数字字典的情况下,左变量为文本常量,分别将左变量和右变量对应的文本常量分解为2-shingles集,即,第一数集和第二数集为2-shingles集。其中,本申请实施例中将左变量和右变量对应的文本常量分解为2-shingles集还可以为k-shingles集(k=1,2,3,...,n),本申请实施例提供的相似度的计算方法仅以2-shingles集为例进行说明,以实现本申请实施例提供的相似度的计算方法为准,具体不做限定。步骤2,依据第二预设操作分别对第一数集和第二数集进行计算,得到左变量的相似度和右变量的相似度,第二预设操作为:其中,m1和m2为第一数集或第二数集,sim(m1,m2)为左变量的相似度或右变量的相似度;基于步骤1中分别将左变量对应的文本和右变量对应的文本分解为第一数集和第二数集,本申请上述步骤2中,在得到第一数集和第二数集后,分别依据第二预设操作计算第一数集对应的左变量的相似度,以及计算第二数集对应的右变量的相似度。具体的,以窗口大小为2个字的滑动窗口为例,从左表达式文本的开始端向后滑动,每次向后滑动一个字,每次落在窗口两个字构成左表达式文本的2-shingles集。 例如,左表达式文本为w1w2w3w4w5,则左表达式文本的2-shingles集为{w1w2,w2w3,w3w4,w4w5}。左变量的相似度为2-shingles集的相似度,设m1和m2为两个2-shingles集,则m1和m2的相似度定义为:将左变量分解为2-shingles集,并计算其相似度s_l;同理,得到右变量的相似度s_r。步骤3,将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第二相似度。基于步骤2中得到的左变量的相似度和右变量的相似度,本申请上述步骤3中,条件表达式相似度为左、右变量相似度的平均值,即,s_v=(s_l+s_r)/2,得到条件表达式列表的第二相似度。综上,图4是根据本发明实施例一的一种相似度的计算方法中计算条件表达式列表的相似度的流程图,如图4所示,计算条件表达式列表的相似度具体如下:第(1)步:从条件表达式中提取出左、右变量和操作符;第(2)步:判断条件表达式的操作符是否相等,如果相等则执行第(3)步,否则执行第(8)步;第(3)步:判断左变量是否为数据字典。如果是数据字典则执行第(4)步,否则执行第(5)步;第(4)步:判断数据字典是否相同。如果数据字典相同则左变量相似度s_l=1,否则s_l=0,执行第(6)步;如果数据字典不相同,则执行第(5)步;第(5)步:此时左变量为文本常量,将左变量文本分解为2-shingles集。以窗口大小为2个字的滑动窗口,从左表达式文本的开始端向后滑动,每次向后滑动一个字,每次落在窗口两个字构成左表达式文本的2-shingles集。例如,左表达式文本为w1w2w3w4w5,则左表达式文本的2-shingles集为{w1w2,w2w3,w3w4,w4w5}。左变量的相似度为2-shingles集的相似度,设m1和m2为两个2-shingles集,则m1和m2的相似度定义为:将左变量分解为2-shingles集,并计算其相似度s_l;第(6)步:按照第(3)步至第(5)步的过程,同理计算得到右变量相似度s_r;第(7)步:条件表达式相似度为左、右变量相似度的平均值,即s_v=(s_l+s_r)/2,执行第(9)步;第(8)步:条件表达式相似度s_v=0;第(9)步:输出条件表达式的相似度,结束。可选的,步骤s206中的step5中依据函数和第二预设条件计算得到动作列表的相似度包括:步骤a,依据第二预设条件将每个动作列表中每个动作对应的函数的公共个数与每个事件的全部动作对应的函数的全部个数做比,得到动作列表的相似度,第二预设条件为:其中,|a1∩a2|为动作列表a1和动作列表a2中每个动作对应的函数的公共个数,|a1∪a2|为动作列表a1和动作列表a2的全部动作对应的函数的全部个数。本申请上述步骤s206中的step5中的步骤a中,依据第二预设条件将每个动作列表中每个动作对应的函数的公共个数与每个事件的全部动作对应的函数的全部个数做比,得到动作列表的相似度。具体的,规则执行的动作由相关的函数实现,将动作列表表示为a={a1,a2,...,an},其中ai(i=1,2,...,n)表示为函数。规则s1和s2的动作列表相似度定义为:即规则s1和s2公共函数的个数除以其所有函数的个数。可选的,步骤s208中根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度包括:step1,对事件列表的相似度和条件表达式列表的相似度计算平均值,得到各个规则之间的相似度。本申请上述步骤s208中的step1中,在得到事件列表的相似度和条件表达式列表的相似度之后,首先对事件列表的相似度和条件表达式列表的相似度求和,第二,对得到的和值除以2,得到各个规则之间的相似度。进一步地,可选的,本申请实施例提供的相似度的计算方法还包括:step2,对事件列表的相似度、条件表达式列表的相似度和动作列表的相似度计算平均值,得到各个规则之间的相似度。本申请上述步骤s208中的step1中,在得到事件列表的相似度、条件表达式列表的相似度和动作列表的相似度之后,首先对事件列表的相似度、条件表达式列表的相似度和动作列表的相似度求和,第二,对得到的和值除以3,得到各个规则之间的相似度。具体的,规则之间的的相似度为事件列表的相似度、条件表达式列表的相似度、动作列表的相似度的平均值。即,规则s1和规则s2的相似度为其中sim(e1,e2)表示规则s1和s2的事件列表的相似度,sim(v1,v2)表示规则s1和s2的条件表达式列表的相似度,sim(a1,a2)表示规则s1和s2的动作列表的相似度。结合步骤s202至步骤s208,本申请实施例提供的相似度的计算方法除了通过将各个规则中的事件、条件表达式和动作分别求相似度,进而依据事件、条件表达式和动作对应的相似度求平均值得到各个规则之间的相似度之外,同理,还可以通过将规则表示成词向量的欧式距离计算方法计算得到规则之间的相似度;或,还可以通过将规则表示成词向量的的曼哈顿距离计算方法得到规则之间的相似度;以实现本申请实施例提供的相似度的计算方法为准,具体不做限定。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的相似度的计算方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。实施例2根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。图5是根据本发明实施例二的相似度的计算装置的结构示意图。如图5所示,该相似度的计算装置包括:提取模块52、集成模块54、第一计算模块56和第二计算模块58。其中,提取模块52,用于从各个规则中提取参数组,其中,参数组包括:事件、条件表达式和动作;集成模块54,用于分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;第一计算模块56,用于分别计算第一参数列表的相似度和第二参数列表的相似度;第二计算模块58,用于根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度。由上可知,本申请上述实施例二所提供的方案,通过从各个规则中提取参数组;分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;分别计算第一参数列表的相似度和第二参数列表的相似度;根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度,达到了分别计算时间、条件表达式和动作的相似度的目的,从而实现了提升规则之间的相似度的计算精度的技术效果,进而解决了由于现有技术中对规则的事件部分、条件表达式部分和动作部分采用统一表示方式和计算方法,导致计算出的相似度值不能准确刻画规则之间的实际相似度的技术问题。此处需要说明的是,上述提取模块52、集成模块54、第一计算模块56和第二计算模块58对应于实施例一中的步骤s202至步骤s208,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,集成模块54包括:第一集成单元和第二集成单元。其中,第一集成单元,用于将各个规则中的多个事件进行归类,得到事件列表;第二集成单元,用于将各个规则中的多个条件表达式进行归类,得到条件表达式列表。此处需要说明的是,上述第一集成单元和第二集成单元对应于实施例一中的步骤s204中的step1和step2,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。进一步地,可选的,集成模块54还包括:第三集成单元。其中,第三集成单元,用于在第三参数为动作的情况下,将各个规则中的多个动作进行归类,得到动作列表。此处需要说明的是,上述第三集成单元对应于实施例一中的步骤s204中的step3,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,图6是根据本发明实施例二的一种相似度的计算装置的结构示意图。如图6所示,第一计算模块56包括:解析单元561、第一计算单元562、第二计算单元563、标记单元564和第三计算单元565。其中,解析单元561,用于解析事件列表中的事件,得到每个事件中的数字字典;第一计算单元562,用于依据数字字典和第一预设条件计算得到事件列表的相似度;第二计算单元563,用于在条件表达式包括左变量、右变量和操作符的情况下,通过判断操作符是否相同,并分别计算左变量的相似度和右变量的相似度,得到条件表达式列表的相似度。进一步地,可选的,标记单元564,用于在第三参数为动作的情况下,将动作列表中的动作标记对应的函数;第三计算单元565,用于依据函数和第二预设条件计算得到动作列表的相似度。此处需要说明的是,上述解析单元561、第一计算单元562、第二计算单元563、标记单元564和第三计算单元565对应于实施例一中的步骤s206中的step1至step5,五个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。进一步地,可选的,第一计算单元562包括:第一计算子单元。其中,第一计算子单元,用于依据第一预设条件将每个事件的公共数据字典的个数与每个事件的全部数字字典的个数做比,得到事件列表的相似度,第一预设条件为:其中,|e1∩e2|为事件e1集和e2的公共数据字典的个数,|e1∪e2|为事件e1集和e2的所有数据字典的个数。此处需要说明的是,上述第一计算子单元对应于实施例一中的步骤s206中的step2中的步骤a,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述 实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,第二计算单元563包括:提取子单元、判断子单元、第一判断子单元、第二判断子单元、第一数据计算子单元和第二数据计算子单元。其中,提取子单元,用于从条件表达式中取左变量、右变量和操作符;判断子单元,用于判断每个操作符是否相等;第一判断子单元,用于在判断结果为否的情况下,条件表达式列表的相似度为0;第二判断子单元,用于在判断结果为是的情况下,分别判断左变量和右变量是否为数字字典;第一数据计算子单元,用于在左变量和右变量分别为数字字典的情况下,执行第一预设操作,输出条件表达式列表的第一相似度;第二数据计算子单元,用于在左变量和右变量均不是数字字典的情况下,执行第二预设操作,输出条件表达式列表的第二相似度。此处需要说明的是,上述提取子单元、判断子单元、第一判断子单元、第二判断子单元、第一数据计算子单元和第二数据计算子单元对应于实施例一中的步骤s206中的step3中的步骤a至步骤f,六个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。进一步地,可选的,第一数据计算子单元,用于在左变量和右变量分别为数字字典的情况下,分别判断每个左变量对应的数字字典是否相同,以及每个右变量对应的数字字典是否相同;在每个左变量对应的数字字典相同,以及每个右变量对应的数字字典相同的情况下,左变量的相似度和右变量的相似度为1,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度;在每个左变量对应的数字字典不同,以及每个右变量对应的数字字典不同的情况下,左变量的相似度和右变量的相似度为0,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度。此处需要说明的是,上述第一数据计算子单元对应于实施例一中的步骤e中的步骤1至步骤3,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,第二数据计算子单元,用于在左变量和右变量均不是数字字典的情况下,分别将左变量和右变量确定为文本常量,并分别将左变量对应的文本和右变量对应的 文本分解为第一数集和第二数集;依据第二预设操作分别对第一数集和第二数集进行计算,得到左变量的相似度和右变量的相似度,第二预设操作为:其中,m1和m2为第一数集或第二数集,sim(m1,m2)为左变量的相似度或右变量的相似度;将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第二相似度。此处需要说明的是,上述第二数据计算子单元对应于实施例一中的步骤f中的步骤1至步骤3,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,第三计算单元565包括:第三计算子单元。其中,第三计算子单元,用于依据第二预设条件将每个动作列表中每个动作对应的函数的公共个数与每个事件的全部动作对应的函数的全部个数做比,得到动作列表的相似度,第二预设条件为:其中,|a1∩a2|为动作列表a1和动作列表a2中每个动作对应的函数的公共个数,|a1∪a2|为动作列表a1和动作列表a2的全部动作对应的函数的全部个数。此处需要说明的是,上述第二数据计算子单元对应于实施例一中的步骤s206中的step5中的步骤a,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,第二计算模块58包括:数据计算单元。其中,数据计算单元,用于对事件列表的相似度和条件表达式列表的相似度计算平均值,得到各个规则之间的相似度。此处需要说明的是,上述数据计算单元对应于实施例一中的步骤s208中的step1,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。可选的,第二计算模块58还包括:数据运算单元。其中,数据运算单元,用于对事件列表的相似度、条件表达式列表的相似度和动作列表的相似度计算平均值,得到各个规则之间的相似度。此处需要说明的是,上述数据运算单元对应于实施例一中的步骤s208中的step2,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。实施例3本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的相似度的计算方法所执行的程序代码。可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从各个规则中提取参数组;分别将参数组的第一参数和第二参数进行归类,得到对应第一参数的第一参数列表和对应第二参数的第二参数列表;分别计算第一参数列表的相似度和第二参数列表的相似度;根据第一参数列表的相似度和第二参数列表的相似度计算各个规则之间的相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将各个规则中的多个事件进行归类,得到事件列表;将各个规则中的多个条件表达式进行归类,得到条件表达式列表;在第三参数为动作的情况下,将各个规则中的多个动作进行归类,得到动作列表。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:解析事件列表中的事件,得到每个事件中的数字字典;依据数字字典和第一预设条件计算得到事件列表的相似度;在条件表达式包括左变量、右变量和操作符的情况下,通过判断操作符是否相同,并分别计算左变量的相似度和右变量的相似度,得到条件表达式列表的相似度;将动作列表中的动作标记对应的函数;依据函数和第二预设条件计算得到动作列表的相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据第一预设条件将每个事件的公共数据字典的个数与每个事件的全部数字字典的个数做比,得到事件列表的相似度,第一预设条件为:其中,|e1∩e2|为事件e1集和e2的公共数据字典的个数,|e1∪e2|为事件e1集和e2的所有数据字典的个数。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从条件表达式中取左变量、右变量和操作符;判断每个操作符是否相等;在判断结果为否的情况下,条件表达式列表的相似度为0;在判断结果为是的情况下,分别判断左变量和右变量是否为数字字典;在左变量和右变量分别为数字字典的情况下,执行第一预设操作,输出条件表达式列表的第一相似度;在左变量和右变量均不是数字字典的情况下,执行第二预设操作,输出条件表达式列表的第二相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在左变量和右变量分别为数字字典的情况下,分别判断每个左变量对应的数字字典是否相同,以及每个右变量对应的数字字典是否相同;在每个左变量对应的数字字典相同,以及每个右变量对应的数字字典相同的情况下,左变量的相似度和右变量的相似度为1,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度;在每个左变量对应的数字字典不同,以及每个右变量对应的数字字典不同的情况下,左变量的相似度和右变量的相似度为0,并将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第一相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在左变量和右变量均不是数字字典的情况下,分别将左变量和右变量确定为文本常量,并分别将左变量对应的文本和右变量对应的文本分解为第一数集和第二数集;依据第二预设操作分别对第一数集和第二数集进行计算,得到左变量的相似度和右变量的相似度,第二预设操作为:其中,m1和m2为第一数集或第二数集,sim(m1,m2)为左变量的相似度或右变量的相似度;将左变量的相似度和右变量的相似度的平均值确定为条件表达式列表的第二相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对事件列表的相似度和条件表达式列表的相似度计算平均值,得到各个规则之间的相似度。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对事件列表的相似度、条件表达式列表的相似度和动作列表的相似度计算平均值,得到各个规则之间的相似度。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1