CN112069305B - 数据筛选方法、装置及电子设备 - Google Patents
数据筛选方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112069305B CN112069305B CN202011265721.7A CN202011265721A CN112069305B CN 112069305 B CN112069305 B CN 112069305B CN 202011265721 A CN202011265721 A CN 202011265721A CN 112069305 B CN112069305 B CN 112069305B
- Authority
- CN
- China
- Prior art keywords
- target
- word
- expression
- user
- node
- 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及数据挖掘技术领域,具体涉及数据筛选方法、装置及电子设备,所述方法包括获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词;对用户表达式进行语法分析,建立用户表达式对应的树形数据结构;依次提取各个树形数据结构中的用户词,并将提取出的用户词与目标文档进行匹配,确定与目标文档匹配的第一目标表达式;根据第一目标表达式中的逻辑词,确定与目标文档匹配的第二目标表达式。先提取出各个用户表达式中的用户词,在目标文档中进行筛选,确定哪些用户词出现在目标文档中,以确定第一目标表达式,以减少后续的匹配数量;再基于逻辑词对第一目标表达式进行二次筛选,确定出与目标文档匹配的第二目标表达式,提高数据筛选效率。
Description
技术领域
本发明涉及数据挖掘技术领域,具体涉及数据筛选方法、装置及电子设备。
背景技术
在数据订阅业务系统中,用户输入搜索表达式之后,往往希望系统能够自动推送出相关的数据。例如,用户输入搜索表达式为“北京 AND 天气”,这个表达式用来检索北京天气情况相关的文本。如果一个文档里面同时出现了“北京”和“天气”这两个词,则该文档匹配前述表达式。
现有技术中,一般是通过对用户输入的表达式进行分析,提取出关键词以及关键词的逻辑关系,然后再在文档中进行搜索。然而,当用户一次输入的表达式较多时,若依次针对每条表达式进行数据筛选,将会导致筛选效率较低。
发明内容
有鉴于此,本发明实施例提供了一种数据筛选方法、装置及电子设备,以解决数据筛选效率较低的问题。
根据第一方面,本发明实施例提供了一种数据筛选方法,包括:
获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词;
对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构;
依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,其中,各个所述第一目标表达式对应有唯一的标识;
根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式;
其中,所述对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构,包括:
对所述用户表达式进行语法分析,确定所述树形数据结构的根节点以及子节点;
遍历所述子节点,将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中;
基于所述用户表达式,对各个所述子节点进行属性变量的设置,以得到所述树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种。
本发明实施例提供的数据筛选方法,在用户输入至少一个用户表达式时,先提取出各个用户表达式中的用户词,在目标文档中进行筛选,确定哪些用户词出现在目标文档中,从而对用户表达式进行第一次筛选,得到第一目标表达式,以减少后续的匹配数量;再基于各个第一目标表达式中的逻辑词对第一目标表达式进行二次筛选,从而确定出与目标文档匹配的第二目标表达式;通过在目标文档的基础上针对用户词进行一次筛选可以减少数据处理量,提高数据筛选效率,从而可以满足同时对几千个用户设定的专题标签进行实时匹配处理,取得了良好的实时推送效果;进一步地,通过对用户表达式进行语法分析之后,得到用户表达式对应的树形数据结构,以便于提取出用户词,而不需要再针对用户表达式中的各个逻辑词再进行分析,提高了数据处理效率。
同时,通过将至少两个连续且相同的或(OR)子节点的节点对象存储在最上面的或子节点中,可以减小树形数据结构的数据量,降低后续遍历树形数据结构的次数,从而可以达到实时推送的目的。
可选地,所述依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与所述目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,包括:
对于各个所述用户词,在所述目标文档中进行搜索,以确定所述预设文档中是否存在所述用户词;
当所述目标文档中存在所述用户词时,确定所述用户词对应的所述第一目标表达式并建立所述目标文档与所述第一目标表达式的对应关系。
本发明实施例提供的数据筛选方法,在确定出某用户词没有出现在目标文档中,则表示该用户词对应的用户表达式与目标文档不匹配,后续就可以直接利用筛选后得到的第一目标表达式进行二次筛选,而不需针对所有的用户表达式进行,减少了数据处理量,提高了数据处理的效率。
可选地,所述根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式,包括:
遍历所述第一目标表达式对应的树形数据结构,确定所述第一目标表达式中的逻辑词;
基于所述第一目标表达式中的逻辑词,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式。
可选地,所述基于所述第一目标表达式中的逻辑词,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式,包括:
基于所述第一目标表达式中的标识符,确定所述第一目标表达式中的屏蔽词以及歧义词;
利用所述屏蔽词以及所述歧义词,对所述第一目标表达式进行筛选;
利用所述逻辑词对筛选后的所述第一目标表达式进行再次筛选,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式。
本发明实施例提供的数据筛选方法,通过对第一目标表达式中的屏蔽词以及歧义词进行确定,可以排除确定出的屏蔽词以及歧义词对应的用户表达式,提高了数据匹配筛选的准确性。
可选地,所述基于所述第一目标表达式中的标识符,确定所述第一目标表达式中的屏蔽词以及歧义词,包括:
遍历所述第一目标表达式,确定所述第一目标表达式中的预设标识符,所述预设标识符分别与所述屏蔽词以及所述歧义词对应;
利用所述预设标识符,确定所述第一目标表达式中的屏蔽词以及歧义词。
根据第二方面,本发明实施例还提供了一种数据筛选装置,包括:
获取模块,用于获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词;
分析模块,用于对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构;
匹配模块,用于依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,其中,各个所述第一目标表达式对应有唯一的标识;
确定模块,用于根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式;
其中,所述分析模块包括:
语法分析单元,用于对所述用户表达式进行语法分析,确定所述树形数据结构的根节点以及子节点;
遍历单元,用于遍历所述子节点,将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中;
设置单元,用于基于所述用户表达式,对各个所述子节点进行属性变量的设置,以得到所述树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种。
本发明实施例提供的数据筛选装置,在用户输入至少一个用户表达式时,先提取出各个用户表达式中的用户词,在目标文档中进行筛选,确定哪些用户词出现在目标文档中,从而对用户表达式进行第一次筛选,得到第一目标表达式,以减少后续的匹配数量;再基于各个第一目标表达式中的逻辑词对第一目标表达式进行二次筛选,从而确定出与目标文档匹配的第二目标表达式;通过在目标文档的基础上针对用户词进行一次筛选可以减少数据处理量,提高数据筛选效率,从而可以满足同时对几千个用户设定的专题标签进行实时匹配处理,取得了良好的实时推送效果;进一步地,通过对用户表达式进行语法分析之后,得到用户表达式对应的树形数据结构,以便于提取出用户词,而不需要再针对用户表达式中的各个逻辑词再进行分析,提高了数据处理效率。
同时,通过将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中,可以减小树形数据结构的数据量,降低后续遍历树形数据结构的次数,从而可以达到实时推送的目的。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的数据筛选方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的数据筛选方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据筛选方法的流程图;
图2是根据本发明实施例的数据筛选方法的流程图;
图3是根据本发明实施例的数据筛选装置的结构框图;
图4是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明目的在于快速判定某段文本匹配一组(几百到几万个)目标表达式中的哪一些,通常用于实时判断某个文档和那个网络事件相关。每个事件通过一些用户词以及逻辑词来标注,例如:’北京 AND 天气’这个表达式用来检索北京天气情况相关的文本。如果一个文档里面同时出现了’北京’和‘天气’两个用户词,则该文档匹配前述表达式。不同用户关心不同的事件,用户按照需要自行编写不同的逻辑词表达式输入到系统中,每个目标表达式对应一个标签ID。本发明实施例中的数据筛选方法的用途是快速判定某个文档和{ID1,ID2,...,ID-N}其中的哪一部分标签对应的表达式相匹配。通常用于数据订阅(推荐)系统:输入从互联网采集到的文档数据流,处理后会给每条数据打上不同的标签(每条数据可以打多个不同的标签),最后系统根据标签将数据推送给不同的用户。所述的数据筛选方法关键的指标是要求处理速度很快,而且当用户标签个数增加时处理速度不能有明显的降低,这样才能满足实时数据处理的要求。
根据本发明实施例,提供了一种数据筛选方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据筛选方法,可用于电子设备,如电脑、手机、平板电脑等,图1是根据本发明实施例的数据筛选的流程图,如图1所示,该流程包括如下步骤:
S11,获取至少一个用户表达式。
其中,所述用户表达式包括用户词以及逻辑词。
所述的用户词即数据筛选的关键词,例如,“天气”、“新闻”等等;所述的逻辑即关键词的连接词,例如,“AND”、“OR”等等。
为了便于理解,下面给出几个具体例子,及其详细的解释(这里为了明确起见,逻辑表达式两端加上’|’)
1)|北京 AND天气|:要求文本中同时出现’北京‘和’天气‘这两个词
2)|“-123.456” AND 天气 AND 北京| : 这里由于‘-123.456’里面出现了程序处理的保留字符’.’,‘-’,因此加上””;
3)|北京 near/10 天气| : 表示’北京‘和’天气‘出现的位置间隔<=10个字(按30字节计算);
4)|北京 near/+10 天气| : 表示’北京‘和’天气‘出现的位置间隔<=10个字(按30字节计算),’北京’出现在前面;
5)|北京 near/-10 天气| : 类似与4),但要求’北京’出现在前面;
6)|title(北京 AND 天气)| :要求‘北京’和‘天气’均出现在标题中;类似的可以写content(北京 AND 天气)。这里一条文本数据的哪部分是title,哪部分是content由用户根据自己的实际需求来确定;
7)|POS(0,100)北京 AND天气|:要求’北京’和’天气’这2个词同时出现在句子的开始0-99个字的范围内。这里的句子定义为:title文本+content文本;
8)|POS(0,100)北京 AND天气|:类似于7),同时要求‘北京’和’天气’两个词同时出现在title字段;
9)|E1 OR E2|:只要E1和E2两个子表达式之1匹配就匹配;
10)|E1 AND NOT E2|:当E1匹配,但E2不匹配时整个表达式匹配。
S12,对用户表达式进行语法分析,建立用户表达式对应的树形数据结构。
电子设备对用户表达式进行用户词分析,提取出所有目标表达式中的用户词。
例如,每个用户表达式均对应有唯一的标识,即索引编号(index_number)。
用户词A,对应的用户表达式有ID1,ID2,…,IDn;
用户词B,对应的用户表达式有ID2,ID3,…,IDm;
…
依次类推,即可确定出所有用户表达式中的用户词。
电子设备在确定出用户词之后,在目标文档中进行用户词的筛选,确定哪些用户词出现在该目标文档中。若某用户词没有出现在该目标文档中,就表示该用户词对应的用户表达式与该目标文档匹配,需要将其筛选掉。因此,利用各个用户表达式中的用户词在目标文档中进行筛选,就可以初步确定目标文档对应的目标表达式有哪些。例如,用户输入1W个用户表达式,经过该步骤处理后,筛选出的目标表达式就剩下200个。
电子设备对用户表达式进行语法分析(目前采用byacc.exe工具程序生成语法分析程序),将各个用户表达式解析成内存中的树形数据结构。目前树节点的(枚举)类型主要有:NODE_AND,NODE_OR,NODE_NEAR,NODE_NOT,NODE_WORD,NODE_WORD_LIST,NODE_POSITION,NODE_TITLE,NODE_CONTENT。
作为本实施例的一种可选实施方式,上述S12包括如下步骤:
(1)对用户表达式进行语法分析,确定树形数据结构的根节点以及子节点。
树节点的结构(struct S_Node)主要数据成员描述:
{
左右孩子接连链接指针(lch_,rch_),父节点链接指针(parent_);
节点类型(Type_);
用户词,当节点类型为NODE_WORD时本字段存储对应的用户词,NODE_WORD类型的节点是表达式树的叶子节点;
NEAR类型节点的属性变量:词距,词距的正负号;
OR节点数组(or_leafs_):为了便于处理,程序会对表达式树形结构进行预处理:将连续成片的NOR节点存入OR节点数据,保存在这一片连续的OR节点中最上面那个节点结构的or_leafs_成员变量里面;
用户词集合(word_set_):对于WORD_LIST类型的(叶子)节点,存储对应的用户词的集合,WORD_LIST节点是一种有效的优化的节点类型(显然可以快速得到这种类型的节点对应的匹配结果);
};
经过语法分析处理以后,用户逻辑词表达式被翻译成一个内存中的二叉树,节点链接指针:left_,right_,parent_。
(2)遍历子节点,将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中。
为了便于处理,程序会对二叉树结构进行处理,将连成一片的或(OR)子节点‘展平’存入这些OR子节点中最上面一个OR子节点的or_leafs_数组中。这个处理工作由一个预处理函数(函数名:OrOptm)来完成。
(3)基于用户表达式,对各个子节点进行属性变量的设置,以得到树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种。
电子设备对于树形数据结构,采用从上到下递归的方式对每个节点设置location,near_distance,near_sign等其他属性(用于NEAR,WORD,WORD_LIST等节点的的匹配判定)
下面介绍几个典型的处理情况:
1) ‘E1 AND E2’对应的表达式树结构为:根节点是AND,根节点的左子树:E1,根节点右子树:E2。
2)(E1 OR E2 OR E3 OR E4) AND (E11 OR E12 OR E13 OE E14)
语法顶端节点为AND,经过OrOptm过程处理后,左子树(OR节点)的or_leafs_数组为:[E1,E2,E3,E4],右子树(OR节点)的or_leafs_数组为[E11,E12,E13,E14]。
3)(E1 OR E2 OR E3 OR E4) NEAR/100 (E11 OR E12 OR E13 OE E14)
与2)类似,但是根节点为NEAR节点。
通过将至少两个连续且相同的子节点的用户词存储在最上面的子节点中,可以减小树形数据结构的数据量,降低后续遍历树形数据结构的次数,从而可以达到实时推送的目的。
S13,依次提取各个树形数据结构中的用户词,并将提取出的用户词与目标文档进行匹配,确定与目标文档匹配的第一目标表达式。
其中,各个第一目标表达式对应有唯一的标识。
电子设备建立用户词与用户表达式的index_number的倒排关联表:
例如,Word|->{id1,id2,...}。这一步的作用是为了有效降低实际执行表达式树匹配过程的次数。
电子设备在目标文档中针对各个用户词进行筛选,确定与目标文档匹配的第一目标表达式。
在本实施例的一些可选实施方式中,上述S13可以包括如下步骤:
1)对于各个用户词,在目标文档中进行搜索,以确定目标文档中是否存在用户词。
当目标文档中存在用户词时,执行步骤2);否则,执行步骤1)。
2)确定用户词对应的第一目标表达式并建立目标文档与第一目标表达式的对应关系。
电子设备遍历各个匹配到的用户词,建立目标文档与第一目标表达式的对应关系,例如可以采用标识id列表的形式表示:related_tag_list:=[id_i1,id_i2,...]。其中,id_i1,id_i2表示第一目标表达式的标识。其中:每个第一目标表达式里面至少包含一个词匹配结果的用户词。
S14,根据第一目标表达式中的逻辑词,确定与目标文档匹配的第二目标表达式。
电子设备在利用用户词进行用户表达式的初步筛选后,得到第一目标表达式。由于第一目标表达式中还包括有逻辑词,因此,还需要基于逻辑词对上述S12中得到的第一目标表达式进行二次筛选,最终确定出与目标文档匹配的第二目标表达式。
关于该步骤具体将在下文中进行详细描述。
本实施例提供的数据筛选方法,在用户输入至少一个用户表达式时,先提取出各个目用户表达式中的用户词,在目标文档中进行筛选,确定哪些用户词出现在目标文档中,从而对用户表达式进行第一次筛选,得到第一目标表达式,以减少后续的匹配数量;再基于各个第一目标表达式中的逻辑词对第一目标表达式进行二次筛选,从而确定出与目标文档匹配的第二目标表达式;通过在目标文档的基础上针对用户词进行一次筛选可以减少数据处理量,提高数据筛选效率,从而可以满足同时对几千个用户设定的专题标签进行实时匹配处理,取得了良好的实时推送效果;进一步地,通过对用户表达式进行语法分析之后,得到用户表达式对应的树形数据结构,以便于提取出用户词,而不需要再针对用户表达式中的各个逻辑词再进行分析,提高了数据处理效率。
同时,通过将至少两个连续且相同的OR子节点的节点对象存储在最上面的OR子节点中,可以减小树形数据结构的数据量,降低后续遍历树形数据结构的次数,从而可以达到实时推送的目的。
在本实施例中提供了一种数据筛选方法,可用于电子设备,如电脑、手机、平板电脑等,图2是根据本发明实施例的数据筛选的流程图,如图2所示,该流程包括如下步骤:
S21,获取至少一个用户表达式。
所述用户表达式包括用户词以及逻辑词。
详细请参见图2所示实施例的S11,在此不再赘述。
S22,对用户表达式进行语法分析,建立用户表达式对应的树形数据结构。
详细请参见图1所示实施例的S12,在此不再赘述。
S23,依次提取各个树形数据结构中的用户词,并将提取出的用户词与目标文档进行匹配,确定与目标文档匹配的第一目标表达式。
其中,各个第一目标表达式对应有唯一的标识。
详细请参见图1所示实施例的S13,在此不再赘述。
S24,根据第一目标表达式中的逻辑词,确定与目标文档匹配的第二目标表达式。
核心函数Match(本文中使用这个函数名)
输入:表达式节点N,match_all参数:=1表示需要返回所有可能的匹配结果
返回值:是否匹配(0/1)
输出:匹配结果res(用户词数组)
目前采用对树形数据结构从上到下的递归流程进行匹配判定。参数N为子树形数据结构的根节点;res为匹配结果数组,每个匹配结果目前定义为一组对匹配有贡献的用户词,结果数组里面包含1个或多个匹配结果;match_all参数表示是否要找出所有匹配结果(如果上级节点为NEAR,则处理时需要返回每个子节点的所有匹配结果);Match返回1表示匹配节点,返回0表示不匹配。
具体地,上述S24包括如下步骤:
S241,遍历第一目标表达式对应的树形数据结构,确定第一目标表达式中的逻辑词。
电子设备对第一目标表达式对应的树形数据结构进行遍历,即,利用上述related_tag_list中的每个目标表达式id,从第一目标表达式树根节点数组里找到对应的表达式树根节点,即得到所述的第一目标表达式中的逻辑词。在得到逻辑词之后,再执行后续的匹配判定流程(目前采用自上到下的递归的方式),返回判定结果(是否匹配)以及相关的用户词(包括词的位置信息)列表。
S242,基于第一目标表达式中的逻辑词,确定所有第一目标表达式中与目标文档匹配的第二目标表达式。
目前的程序将匹配结果定义为匹配的用户词的数组(list)。
描述逻辑匹配结果的两个结构定义:
struct word_pos_t{
int pos;
int loc;
str_t word;
};
struct match2_res_t{
std::vector<word_pos_t> words_;
int start_pos_;//第一个匹配相关词开始位置
int end_pos_;//最后一个匹配词相关词开始位置
std::set<int> sentences_;//结果词分布的句子编号集合(用于句内匹配)
std::set<int> paragraphs_;//结果词分布的段落编号集合(用于段内匹配)
match2_res_t(){
start_pos_=-1;
end_pos_=0;
}
//...
}
Match函数按照自上至下的顺序对各个节点进行匹配处理。如前所述:叶子结点是NODE_WORD或NODE_WORD_LIST类型的节点,这些节点自底向上通过OR,AND,NEAR等运算符号节点连接直至根节点而形成了整个表达式树形结构。
下面介绍Match2函数对NODE_WORDLIST,NODE_WORD,NODE_AND,NODE_NEAR,NODE_OR几种类型节点的处理的伪代码:
NODE_WORD
如果word_成员变量(-快速此匹配模块输出的结果词的集合,则匹配。
NODE_WORDLIST
这种节点是语法分析在解析 ‘用户词1 OR 词2 OR 词3 ... OR 词n’这样的词列表时生成的,这种节点的word_set_成员变量存储了所有用户词列表中的词语。NODE_WORD_LIST节点的匹配处理流程是:
For每个相关的用户词(由前述的快速词匹配模块返回)(w,pos):
If w属于word_set_,则将(w,pos)添加到result_list
If result_list非空,则匹配,否则不匹配
注意:这里for循环是对快速词匹配模块的输出的各个此进行循环,是假定一般来说匹配到的用户此比较少,这样以来for循环的次数就比较少。循环体内的‘属于’判断是利用stl-map来实现的(平衡2叉树),因而可以在O(log2(A))时间内完成,其中A是NODE_WORD_SET节点中保存的用户词个数。这种节点类型是后来增加的,可以认为是对最初的NODE_WORD节点类型的一种十分有效的优化,因为在实际应用中用户往往会设置一个很长的词列表。
NODE_OR
经过OrOptm处理以后,连续成片的OR节点被集中存储在这一片OR节点中最上层那个节点的or_leafs_数组中。Match函数对NODE_OR节点的处理流程是:
Matched=False
Result_vector=[]
For each sub_node in or_leafs_:
ret,res=Match(sub_node,match_all)
If ret:
Matched=True
Result_vector.append(res)
If not match_all:
Break
Return Matched,Result_vector
NODE_AND
如果AND节点的左右子表达式的根节点分别为E1,E2,则Match2先递归处理E1,E2,返回:(ret1,result1),(ret2,result2),其中ret1,ret2:是否匹配,result1,result2:match2_res_t结构类型,分别记录E1,E2的匹配词集合。当Match函数的match_all参数=1时,需要返回所有匹配词的记录。这里有个问题:假定E1对应的匹配结果记录为r1,r2,r3,r4;E2对应的匹配结果记录为s1,s2,s3,规定当前AND节点的匹配结果记录为:
r1+s1,r2+s2,r3+s3,r4+s1。注意这样定义的结果记录包含了r1,r2,r3,r4,s1,s2,s3中所有用户词。
例如,‘E1 AND E2’对应的树形数据结构为:根节点是AND,根节点的左子树:E1,根节点右子树:E2。匹配处理程序先遇到AND节点,然后递归调用Match2函数处理E1,E2子表达式树,返回E1和E2处理结果,这里的处理结果可以理解为是(是否匹配,匹配到的用户词列表)。如果E1,E2均匹配,则整个AND表达式匹配,否则不匹配。如果匹配,则该AND表达式的对应的匹配词列表定义为E1的匹配词列表+E2的匹配词列表。
如果NODE_AND节点中句内匹配或段内匹配标志被设置,则按NODE_NEAR类型的节点进行处理。
NODE_NEAR
和NODE_AND节点不相同,NODE_NEAR节点规定E1,E2两个结果集的词距要小于某个distance(S_Node结构成员变量)。
假定NODE_NEAR节点的左孩子(lch->or_leafs_)列表为[L1,L2,...,Lm];右孩子的列表为[R1,..,Rn],Match处理时需要按一定顺序遍历所有序对(Li,Rj)。当match_all=1时需要遍历完;当match_all=1时一旦发现某一对(Li,Lj)符合near条件,则可立即break出2重循环。当(Li,Rj)符合条件时则,假定Li的结果集为posL,Rj的结果集为posR,每个x(-posL,y(-posR,令z:=x.combine(y)(其中combine简单的将两个结果的词合并在一起),将z追加到当前这一层Match调用的result_vec。
NODE_TITLE,NODE_CONTENT,NODE_POSITION
语法分析程序可能会生成这些类型的节点。预处理程序会将递归的将这些节点的子节点的location_,pos_start_,pos_end_,is_percent_等标志变量。Macth函数在进行自上到下递归处理时会用到这些标志。
NODE_MATCH_ALL
目前的表达式语法支持match_all(E1)这样的写法,语法分析程序会将E1作为
NODE_MATCH_ALL节点的左孩子(lch)节点,因此Match2对NODE_MATCH_ALL节点的处理时:Match(lch,macth_all=1)。
其中,递归处理NODE_NEAR节点的字节点处理时传给Match的match_all参数=True。
在本实施例的一些可选实施方式中,上述S242可以包括如下步骤:
(1)基于第一目标表达式中的标识符,确定第一目标表达式中的屏蔽词以及歧义词。
例如,用户定义一个第一目标表达式时,除了设定一个词逻辑表达式以外,还可以指定一些排除词和屏蔽词:|##海淀 京北医院 河北:河北岸|
相应地,一个用户第一目标表达式可以表示成(tag_id,e,s),其中e是逻辑表达式,s是排除词,歧义词列表。
排除词:’##海淀’表示是个排除词,一段文本中如果出现’海淀’这个词,就认为不匹配标签;
歧义词:本例中,京北医院是个全局排除词,如果用户设定了一个用户词‘北医’,文本中出现了‘京北医院’这个词,其中包含‘北医’,这种情况下这里的‘北医’这个词被处理程序跳过,对逻辑匹配没有贡献;‘河北:河北岸’表示‘河北岸’是‘河北’这个特定词的屏蔽词。
(2)利用屏蔽词以及所述歧义词,对第一目标表达式进行筛选。
由于上述步骤中是针对用户词进行筛选得到的第一目标表达式,此时确定出用户词中存在屏蔽词以及歧义词,则需要将包括这些屏蔽词以及歧义词的第一目标表达式删除。
(3)利用逻辑词对筛选后的第一目标表达式进行再次筛选,确定所有第一目标表达式中与目标文档匹配的第二目标表达式。
电子设备利用屏蔽词以及歧义词筛选后得到的第一目标表达式的树形数据结构进行遍历,确定与目标文档匹配的第二目标表达式。
本实施例提供的数据筛选方法,通过对第一目标表达式中的屏蔽词以及歧义词进行确定,可以排除确定出的屏蔽词以及歧义词对应的第一目标表达式,提高了数据匹配筛选的准确性。
在上文中描述的是单个表达式的匹配处理流程,下文中将描述具体实际如何处理大量表达式的匹配。具体操作步骤如下:
预处理过程
1)首先,用户添加N(N可以是几千到几万)个用户表达式。每个表达式对应一个索引编号(index_number);
2)预处理处理程序遍历每个用户表达式对应的语法树,提取出NODE_WORD,NODE_WORD_LIST(叶子节点)里边存储的用户词;
3)预处理:对每个用户表达式树进行OrOptm(填写所有局部顶层OR节点的or_leafs_数组);
4)预处理:采用从上到下递归的方式对每个节点设置location,near_distance,near_sign等其他属性(用于NEAR,WORD,WORD_LIST等节点的的匹配判定);
5)预处理:建立用户词=》相关表达式的index_number的倒排关联表:
Word|->{id1,id2,...}。这一步的作用是为了有效降低实际执行表达式树匹配过程的次数;
6)初始化快速词匹配模块
匹配工作过程
1)词搜索:输入一篇文档(titl,content),title,content由用户根据实际需求自己来定义,调用前述快速词匹配模块,输出一系列相关的用户词(至少在一个表达式里面出现过):[(w1,pos1),(w2,pos2),...]。然后根据预处理过程5)中建立的倒排关联表,由w1,w2,...计算出当前文档和哪些用户表达式相关联,确定第一目标表达式。通常假定一篇文档对应到的用户词是比较少的,这样一来相关的表达式(树),也就是需要实际进行递归匹配过程计算的表达式就会比较少。实际测试表明这一优化方法十分有效的降低了匹配计算的执行时间。
2)假定步骤1)得到的相关联的表达式index集合为{id_1,id_2,...,id_r}。对这些ID对应的表达式树(id_x是内部表达式树数组的下标)执行Match处理过程,判断各个相关的第一目标表达式是否匹配,在匹配时同时输出对应的相关匹配次数组。
在本实施例中还提供了一种数据筛选装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据筛选装置,如图3所示,包括:
获取模块31,用于获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词;
分析模块32,用于对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构;
匹配模块33,用于依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,其中,各个所述第一目标表达式对应有唯一的标识;
确定模块34,用于根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式;
其中,所述分析模块包括:
语法分析单元,用于对所述用户表达式进行语法分析,确定所述树形数据结构的根节点以及子节点;
遍历单元,用于遍历所述子节点,将至少两个连续且相同的OR子节点的节点对象存储在最上面的OR子节点中;
设置单元,用于基于所述用户表达式,对各个所述子节点进行属性变量的设置,以得到所述树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种。
本实施例提供的数据筛选装置,在用户输入至少一个用户表达式时,先提取出各个目用户表达式中的用户词,在目标文档中进行筛选,确定哪些用户词出现在目标文档中,从而对用户表达式进行第一次筛选,得到第一目标表达式,以减少后续的匹配数量;再基于各个第一目标表达式中的逻辑词对目标表达式进行二次筛选,从而确定出与目标文档匹配的第二目标表达式;通过在目标文档的基础上针对用户词进行一次筛选可以减少数据处理量,提高数据筛选效率,从而可以满足同时对几千个用户设定的专题标签进行实时匹配处理,取得了良好的实时推送效果。
本实施例中的数据筛选装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图3所示的数据筛选装置。
请参阅图4,图4是本发明可选实施例提供的一种终端的结构示意图,如图4所示,该终端可以包括:至少一个处理器41,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口43,存储器44,至少一个通信总线42。其中,通信总线42用于实现这些组件之间的连接通信。其中,通信接口43可以包括显示屏(Display)、键盘(Keyboard),可选通信接口43还可以包括标准的有线接口、无线接口。存储器44可以是高速RAM存储器(RandomAccess Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器44可选的还可以是至少一个位于远离前述处理器41的存储装置。其中处理器41可以结合图4所描述的装置,存储器44中存储应用程序,且处理器41调用存储器44中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线42可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器44可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器44还可以包括上述种类的存储器的组合。
其中,处理器41可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器41还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
可选地,存储器44还用于存储程序指令。处理器41可以调用程序指令,实现如本申请图1至2实施例中所示的数据筛选方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据筛选方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (6)
1.一种数据筛选方法,其特征在于,包括:
获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词,所述用户词为数据筛选的关键词,所述逻辑词为关键词的连接词;
对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构;
依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,其中,各个所述第一目标表达式对应有唯一的标识;
根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式;
其中,所述对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构,包括:
对所述用户表达式进行语法分析,确定所述树形数据结构的根节点以及子节点;
遍历所述子节点,将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中;
基于所述用户表达式,对各个所述子节点进行属性变量的设置,以得到所述树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种;
所述依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与所述目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,包括:
对于各个所述用户词,在所述目标文档中进行搜索,以确定所述目标文档中是否存在所述用户词;
当所述目标文档中存在所述用户词时,确定所述用户词对应的所述第一目标表达式并建立所述目标文档与所述第一目标表达式的对应关系;
所述树形数据结构中树节点的结构描述为:
{
左右孩子接连链接指针,父节点链接指针;
节点类型;
用户词,当节点类型为NODE_WORD时本字段存储对应的用户词,NODE_WORD类型的节点是表达式树的叶子节点;
NEAR类型节点的属性变量:词距,词距的正负号;
OR节点数组;
用户词集合
};
其中,所述根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式,包括:
遍历所述第一目标表达式对应的树形数据结构,确定所述第一目标表达式中的逻辑词;
基于所述第一目标表达式中的逻辑词,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一目标表达式中的逻辑词,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式,包括:
基于所述第一目标表达式中的标识符,确定所述第一目标表达式中的屏蔽词以及歧义词;
利用所述屏蔽词以及所述歧义词,对所述第一目标表达式进行筛选;
利用所述逻辑词对筛选后的所述第一目标表达式进行再次筛选,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一目标表达式中的标识符,确定所述第一目标表达式中的屏蔽词以及歧义词,包括:
遍历所述第一目标表达式,确定所述第一目标表达式中的预设标识符,所述预设标识符分别与所述屏蔽词以及所述歧义词对应;
利用所述预设标识符,确定所述第一目标表达式中的屏蔽词以及歧义词。
4.一种数据筛选装置,其特征在于,包括:
获取模块,用于获取至少一个用户表达式,所述用户表达式包括用户词以及逻辑词,所述用户词为数据筛选的关键词,所述逻辑词为关键词的连接词;
分析模块,用于对所述用户表达式进行语法分析,建立所述用户表达式对应的树形数据结构;
匹配模块,用于依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,其中,各个所述第一目标表达式对应有唯一的标识,所述依次提取各个所述树形数据结构中的用户词,并将提取出的所述用户词与所述目标文档进行匹配,确定与所述目标文档匹配的第一目标表达式,包括:对于各个所述用户词,在所述目标文档中进行搜索,以确定所述目标文档中是否存在所述用户词;当所述目标文档中存在所述用户词时,确定所述用户词对应的所述第一目标表达式并建立所述目标文档与所述第一目标表达式的对应关系;
确定模块,用于根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式;
其中,所述分析模块包括:
语法分析单元,用于对所述用户表达式进行语法分析,确定所述树形数据结构的根节点以及子节点;
遍历单元,用于遍历所述子节点,将至少两个连续且相同的或子节点的节点对象存储在最上面的或子节点中;
设置单元,用于基于所述用户表达式,对各个所述子节点进行属性变量的设置,以得到所述树形数据结构,所述属性变量包括词距或词距的正负号中的至少一种;
所述树形数据结构中树节点的结构描述为:
{
左右孩子接连链接指针,父节点链接指针;
节点类型;
用户词,当节点类型为NODE_WORD时本字段存储对应的用户词,NODE_WORD类型的节点是表达式树的叶子节点;
NEAR类型节点的属性变量:所述词距,或所述词距的正负号;
OR节点数组;
用户词集合
};
其中,所述根据所述第一目标表达式中的所述逻辑词,确定与所述目标文档匹配的第二目标表达式,包括:
遍历所述第一目标表达式对应的树形数据结构,确定所述第一目标表达式中的逻辑词;
基于所述第一目标表达式中的逻辑词,确定所有所述第一目标表达式中与所述目标文档匹配的第二目标表达式。
5.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-3中任一项所述的数据筛选方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-3中任一项所述的数据筛选方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011265721.7A CN112069305B (zh) | 2020-11-13 | 2020-11-13 | 数据筛选方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011265721.7A CN112069305B (zh) | 2020-11-13 | 2020-11-13 | 数据筛选方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069305A CN112069305A (zh) | 2020-12-11 |
CN112069305B true CN112069305B (zh) | 2021-03-30 |
Family
ID=73655022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011265721.7A Active CN112069305B (zh) | 2020-11-13 | 2020-11-13 | 数据筛选方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069305B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553121B (zh) * | 2021-07-07 | 2023-12-19 | 北京智慧星光信息技术有限公司 | 基于elementui列表的筛选配置方法、系统、电子设备及存储介质 |
CN114491164B (zh) * | 2022-01-17 | 2022-12-09 | 广州市玄武无线科技股份有限公司 | 一种树形数据处理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075255A (zh) * | 2007-06-08 | 2007-11-21 | 北京神舟航天软件技术有限公司 | 去除sql查询语句恒条件的方法 |
CN101984439A (zh) * | 2010-12-09 | 2011-03-09 | 上海市共进通信技术有限公司 | 基于子查询实现数据源xml查询系统优化的方法 |
CN103226606A (zh) * | 2013-04-28 | 2013-07-31 | 浙江核新同花顺网络信息股份有限公司 | 查询选取方法及系统 |
CN106503265A (zh) * | 2016-11-30 | 2017-03-15 | 北京赛迈特锐医疗科技有限公司 | 基于权值的结构化搜索系统及其搜索方法 |
CN108170580A (zh) * | 2017-11-22 | 2018-06-15 | 链家网(北京)科技有限公司 | 一种基于规则的日志报警方法、装置及系统 |
CN108985672A (zh) * | 2017-06-01 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
-
2020
- 2020-11-13 CN CN202011265721.7A patent/CN112069305B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075255A (zh) * | 2007-06-08 | 2007-11-21 | 北京神舟航天软件技术有限公司 | 去除sql查询语句恒条件的方法 |
CN101984439A (zh) * | 2010-12-09 | 2011-03-09 | 上海市共进通信技术有限公司 | 基于子查询实现数据源xml查询系统优化的方法 |
CN103226606A (zh) * | 2013-04-28 | 2013-07-31 | 浙江核新同花顺网络信息股份有限公司 | 查询选取方法及系统 |
CN106503265A (zh) * | 2016-11-30 | 2017-03-15 | 北京赛迈特锐医疗科技有限公司 | 基于权值的结构化搜索系统及其搜索方法 |
CN108985672A (zh) * | 2017-06-01 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
CN108170580A (zh) * | 2017-11-22 | 2018-06-15 | 链家网(北京)科技有限公司 | 一种基于规则的日志报警方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112069305A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110717049B (zh) | 一种面向文本数据的威胁情报知识图谱构建方法 | |
US8255394B2 (en) | Apparatus, system, and method for efficient content indexing of streaming XML document content | |
CN107423391B (zh) | 网页结构化数据的信息提取方法 | |
US11416473B2 (en) | Using path encoding method and relational set operations for search and comparison of hierarchial structures | |
JP2005092889A (ja) | ウェブページのための情報ブロック抽出装置及び情報ブロック抽出方法 | |
CN112069305B (zh) | 数据筛选方法、装置及电子设备 | |
CN109684290B (zh) | 日志存储方法、装置、设备及计算机可读存储介质 | |
CN111259627A (zh) | 文档分析方法、装置、计算机存储介质及设备 | |
CN113051285A (zh) | Sql语句的转换方法、系统、设备及存储介质 | |
US11263062B2 (en) | API mashup exploration and recommendation | |
CN111708805A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN109657114B (zh) | 一种抽取网页半结构化数据的方法 | |
CN115357904A (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
CN110333990B (zh) | 数据处理方法以及装置 | |
CN108874870A (zh) | 一种数据抽取方法、设备及计算机可存储介质 | |
Velloso et al. | Automatic web page segmentation and noise removal for structured extraction using tag path sequences | |
CN115189914A (zh) | 网络流量的应用程序编程接口api识别方法和装置 | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN109672586A (zh) | 一种dpi业务流量识别方法、装置与计算机可读存储介质 | |
CN104778232A (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
US9824140B2 (en) | Method of creating classification pattern, apparatus, and recording medium | |
CN111581057A (zh) | 一种通用日志解析方法、终端设备及存储介质 | |
CN115796146A (zh) | 一种文件对比方法及装置 | |
CN113536762A (zh) | Json文本的比对方法及装置 | |
WO2023185377A1 (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 |