CN105260354A - 一种基于关键词字典树构造的中文ac自动机工作方法 - Google Patents
一种基于关键词字典树构造的中文ac自动机工作方法 Download PDFInfo
- Publication number
- CN105260354A CN105260354A CN201510515497.5A CN201510515497A CN105260354A CN 105260354 A CN105260354 A CN 105260354A CN 201510515497 A CN201510515497 A CN 201510515497A CN 105260354 A CN105260354 A CN 105260354A
- Authority
- CN
- China
- Prior art keywords
- node
- dictionary tree
- keyword
- imaginary root
- appointed
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于关键词字典树构造的中文AC自动机工作方法,包括:获取所有关键词,将所有关键词编码,并将所有关键词按其关键词编码的字符顺序排列;建立字典树,并将所有关键词按字符排列顺序加入字典树中;为字典树中的每个非虚根节点加入前缀指针;为字典树中的每个非虚根节点加入失败指针;获取待检测文章,根据包括前缀指针与错误指针的字典树在待检测文章中查询并记录下所有的关键词。本发明通过将关键词按顺序排列加入字典树中的技术方案,有效地将具有相同前缀的关键词排布在字典树中相邻的位置,使得节点对查询其子节点所在位置的信息量被大幅度压缩,降低了中文AC自动机的工作占用空间。
Description
技术领域
本发明涉及信息技术领域,特别地,涉及一种基于关键词字典树构造的中文AC自动机工作方法。
背景技术
AC自动机(Aho-Corasickautomaton)是一种著名的多模匹配方法,用于在文章当中检索多个关键词出现的次数。传统的AC自动机只能识别26个英文字母,现有技术则将传统的AC自动机工作原理套用到了中文文章中,但这种方案下中文AC自动机工作的空间复杂度过高,缺乏实际应用价值。
针对现有技术中中文AC自动机工作的空间复杂度过高的问题,目前尚未有有效的解决方案。
发明内容
针对现有技术中系统结构识别与优化方法抑或主观片面、计算能力差,抑或耗时费力、仿真精度低的问题,本发明的目的在于提出一种基于关键词字典树构造的中文AC自动机工作方法,能够用降低中文AC自动机工作时需要的空间复杂度,压缩了中文AC自动机的工作占用空间。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种基于关键词字典树构造的中文AC自动机工作方法,包括:
获取所有关键词,将所有关键词编码,并将所有关键词按其关键词编码的字符顺序排列;
建立字典树,并将所有关键词按字符排列顺序加入字典树中;
为字典树中的每个非虚根节点加入前缀指针;
为字典树中的每个非虚根节点加入失败指针;
获取待检测文章,根据包括前缀指针与错误指针的字典树在待检测文章中查询并记录下所有的关键词。
其中,将所有关键词编码,为将所有关键词按照指定的汉字编码方式以数字组合的形式表示;将所有关键词按其关键词编码的字符顺序排列,为将所有关键词按其编码后每个字符所对应数字的大小顺序对所有关键词进行排列。
并且,数字组合为十六进制数字的数字组合;指定的汉字编码方式为GB2312、GBK、BIG5、UTF-8中的一种。
同时,建立字典树为指定一虚根,并根据虚根建立字典树。
并且,将所有关键词按字符排列顺序加入字典树中包括:
根据字符排列顺序依次指定每个关键词;
为被指定的关键词建立一个树枝,并为被指定的关键词编码的每一位在树枝上建立一个节点,每一位都是其前一位的子节点,每一位都是其后一位的父节点,父子节点在树枝上相邻;
从虚根开始,将指定的关键词的树枝与现有字典树上字符相同的节点合并,直到出现不同的节点为止;
依次指定每个关键词直到所有关键词均加入字典树中。
并且,包括:
为被指定的关键词编码的每一位在树枝上建立一个节点,为最后一位建立一个终止节点,为最后一位之外的每一个其他位建立一个内部节点;
将指定的关键词的树枝与现有字典树上字符相同的节点合并,为将内部节点与内部节点合并为内部节点,将终止节点与内部节点合并为终止节点,将终止节点与终止节点合并为终止节点。
同时,为被指定的关键词编码的每一位在树枝上建立一个节点时,按照编码从首位到末位的顺序建立节点,先建立父节点后建立子节点,且为每个节点赋予编号,其中,每个非虚根节点的编号为关键词加入字典树的过程中该节点被创建的顺序数字,虚根编号为零。
并且,为字典树中的每个非虚根节点加入前缀指针包括:
根据节点编号顺序依次指定每个非虚根节点;
若被指定的非虚根节点为虚根的子节点,则为被指定的非虚根节点加入一根指向虚根的前缀指针;
若被指定的非虚根节点不是虚根的子节点,则记录下被指定的非虚根节点的父节点连接到非虚根节点的树枝方向,并为被指定的非虚根节点加入一根指向非虚根节点的父节点的父节点的与树枝方向相同的子节点的前缀指针;
依次指定每个非虚根节点直到所有非虚根节点均具有前缀指针。
同时,为字典树中的每个非虚根节点加入失败指针包括:
根据节点编号顺序依次指定每个非虚根节点;
分别对于每一个被指定的节点,根据节点编号的数字进位制依次指定可能出现的每个数字;
检查被指定的非虚根节点是否为一个具有指定子节点的父节点,其中,该非虚根父节点到该子节点的树枝方向数字与被指定的数字相同,若否,则给被指定的非虚根节点建立一个收到被指定的数字后的错误指针;
分别对于每一个被指定的节点,依次指定每个数字直到进位制中的所有数字均被指定过;
依次指定每个非虚根节点直到所有非虚根节点均具有失败指针。
并且,给被指定的非虚根节点建立一个收到被指定的数字后的错误指针,非虚根节点在收到被指定的数字后会按照错误指针的指向方向确定后续状态。
从上面所述可以看出,本发明提供的技术方案通过将关键词按顺序排列加入字典树中的技术方案,有效地将具有相同前缀的关键词排布在字典树中相邻的位置,使得节点对查询其子节点所在位置的信息量被大幅度压缩,避免使用占用大量空间复杂度的哈希表,因此降低了中文AC自动机工作时需要的空间复杂度,压缩了中文AC自动机的工作占用空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种基于关键词字典树构造的中文AC自动机工作方法的流程图;
图2为根据本发明实施例的一种基于关键词字典树构造的中文AC自动机工作方法中,字典树各节点生成过程示意图;
图3为根据本发明实施例的一种基于关键词字典树构造的中文AC自动机工作方法中,字典树各节点的前缀指针生成过程示意图;
图4为根据本发明实施例的一种基于关键词字典树构造的中文AC自动机工作方法中,字典树各节点的失败指针生成过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种基于关键词字典树构造的中文AC自动机工作方法。
如图1所示,根据本发明的实施例提供了一种基于关键词字典树构造的中文AC自动机工作方法包括:
步骤S101,获取所有关键词,将所有关键词编码,并将所有关键词按其关键词编码的字符顺序排列;
步骤S103,建立字典树,并将所有关键词按字符排列顺序加入字典树中;
步骤S105,为字典树中的每个非虚根节点加入前缀指针;
步骤S107,为字典树中的每个非虚根节点加入失败指针;
步骤S109,获取待检测文章,根据包括前缀指针与错误指针的字典树在待检测文章中查询并记录下所有的关键词。
其中,将所有关键词编码,为将所有关键词按照指定的汉字编码方式以数字组合的形式表示;将所有关键词按其关键词编码的字符顺序排列,为将所有关键词按其编码后每个字符所对应数字的大小顺序对所有关键词进行排列。
并且,数字组合为十六进制数字的数字组合;指定的汉字编码方式为GB2312、GBK、BIG5、UTF-8中的一种。
同时,建立字典树为指定一虚根,并根据虚根建立字典树。
并且,将所有关键词按字符排列顺序加入字典树中包括:
根据字符排列顺序依次指定每个关键词;
为被指定的关键词建立一个树枝,并为被指定的关键词编码的每一位在树枝上建立一个节点,每一位都是其前一位的子节点,每一位都是其后一位的父节点,父子节点在树枝上相邻;
从虚根开始,将指定的关键词的树枝与现有字典树上字符相同的节点合并,直到出现不同的节点为止;
依次指定每个关键词直到所有关键词均加入字典树中。
并且,包括:
为被指定的关键词编码的每一位在树枝上建立一个节点,为最后一位建立一个终止节点,为最后一位之外的每一个其他位建立一个内部节点;
将指定的关键词的树枝与现有字典树上字符相同的节点合并,为将内部节点与内部节点合并为内部节点,将终止节点与内部节点合并为终止节点,将终止节点与终止节点合并为终止节点。
同时,为被指定的关键词编码的每一位在树枝上建立一个节点时,按照编码从首位到末位的顺序建立节点,先建立父节点后建立子节点,且为每个节点赋予编号,其中,每个非虚根节点的编号为关键词加入字典树的过程中该节点被创建的顺序数字,虚根编号为零。
并且,为字典树中的每个非虚根节点加入前缀指针包括:
根据节点编号顺序依次指定每个非虚根节点;
若被指定的非虚根节点为虚根的子节点,则为被指定的非虚根节点加入一根指向虚根的前缀指针;
若被指定的非虚根节点不是虚根的子节点,则记录下被指定的非虚根节点的父节点连接到非虚根节点的树枝方向,并为被指定的非虚根节点加入一根指向非虚根节点的父节点的父节点的与树枝方向相同的子节点的前缀指针;
依次指定每个非虚根节点直到所有非虚根节点均具有前缀指针。
同时,为字典树中的每个非虚根节点加入失败指针包括:
根据节点编号顺序依次指定每个非虚根节点;
分别对于每一个被指定的节点,根据节点编号的数字进位制依次指定可能出现的每个数字;
检查被指定的非虚根节点是否为一个具有指定子节点的父节点,其中,该非虚根父节点到该子节点的树枝方向数字与被指定的数字相同,若否,则给被指定的非虚根节点建立一个收到被指定的数字后的错误指针;
分别对于每一个被指定的节点,依次指定每个数字直到进位制中的所有数字均被指定过;
依次指定每个非虚根节点直到所有非虚根节点均具有失败指针。
并且,给被指定的非虚根节点建立一个收到被指定的数字后的错误指针,非虚根节点在收到被指定的数字后会按照错误指针的指向方向确定后续状态。
下面根据具体实施例进一步阐述本发明的技术方案。
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种,它将所有的模式串组织在一棵树的树边上,根节点是一个虚根,每条树边代表一个字母,从虚根到任意一个节点的路径上的边的有序集合代表某个模式串的某个前缀。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。字典树利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。
如图2、3、4所示,在本实施例中,白色点表示虚根,灰色点表示内部节点,黑色点表示终止节点,即从虚根到终止节点的每条路径代表了一个模式串,由于"11"是"110"的前缀,所以在图中"11"这两条边是这两个字符串路径的共用部分,这样就节省了存储空间,由于trie树的虚根到每个节点的路径(边权)都代表了一个模式串的前缀,所以它又叫前缀树。
构造字典树的前提一般是给定一系列的关键词,然后对每个关键词进行插入字典树的操作。图2示出的是字典树各节点的生成过程,如图2所示,初始情况下字典树只有一个虚根,进行四个关键词的插入后就完成了字典树的节点生成,每次插入在末尾节点设置终止节点印记,可以注意到,第四次操作实际上没有生成新的节点,只是设置了一个新的终止节点印记,由于它的这个性质,使得字典树的节点数目不会很多,大大压缩了存储结构。
对于一篇给定的文章,要求在由关键词构建的字典树中查找这个文章中有多少个关键词,我们可以设定一个检索指针p,初始状态下它指向虚根,然后从前往后枚举文章,对每一个文章中的字符c,如果在检索指针p指向节点的出边集合中能够找到字符c对应的边,那么将检索指针p指向c对应边的子节点,循环往复,直到匹配失败,那么退回到检索指针p节点的前缀指针指向的节点继续同样的匹配,当遇到一个终止节点时,计数器+1。
每个非虚根节点都有一个前缀指针。图3示出的是字典树各节点的前缀指针生成过程,如图3所示,虚根子节点的前缀指针指向虚根,因为当一个字符都不能匹配时要跳到字符串首重新匹配;每个节点的前缀指针都是由它父节点的前缀指针决定的,所以一次宽度优先搜索(BreadthFirstSearch,下文中简称为BFS)就可以把所有节点的前缀指针逐层求解出来。
为了方便描述,我们先把所有字典树上的节点进行编号,编号顺序为节点的插入顺序,虚根编号为0。图4示出的是字典树各节点的失败指针生成过程,如图4所示,我们发现如果现在是1号节点,当接收一个'1'这个字符,则进入2号节点,因为沿着字符'1'的出边到达的状态正好是2号节点;但是如果接受的是'0'字符,我们发现1号节点没有'0'字符代表的出边,所以我们需要补上这条'0'边,这条1号节点的“0”边指向1号节点的前缀指针指向的状态的'0'边对应的节点,而这个状态正好是它自己,所以向自己补一条边权为'0'的边,在图4中以灰色箭头表示,这就是条1号节点的“0”边的失败指针。同样地,利用BFS可逐层求解所有节点的后继状态。我们发现所有节点遍历完后,每个节点都有且仅有两条出边,即完成了关键词字典树的建立。
现有的中文AC自动机中,汉字被转化为UTF8编码。设文章共N篇,每篇长度为L,关键词共M个,每个长度为K,则有算法本身时间复杂度为O(N*L+K)、空间复杂度为O(M*K*26),26是子节点hash表的大小。汉字转化成字符在linux下为3个字符,字符的取值范围为0~255,则时间复杂度为(N*3L+3K),空间复杂度为(M*3K*255)。
而在本发明的技术方案中,对于任一节点I,必然存在一个区间[P,Q],使得除了这个区间外没有它的子节点,并且区间内全是它的子节点,即区间[P,Q]与节点I的子节点集合完全相等。因此,我们可以在判断上舍弃了哈希表,把空间复杂度降到O(2*M*3K),每次判断子节点是需要判断256次,此时时间复杂度为O(256*3*(N*L+K))。本发明相对于现有技术的空间复杂度降低了O(M*K*759),即压缩了99.22%的工作占用空间。
在另一个实施例中,可以将中文的汉字转化为拼音,汉字转化成拼音一般为2~6个字母,这里取4。此时,时间复杂度为O(N*4L+4K),空间复杂度为O(M*4K*26),同样起到了降低空间复杂度的效果。但是一样的字母组成的话多种多样,此算法需要匹配后再实际比对文字是否相同,所以时间复杂度为O(K*(N*4L+4K))。
综上所述,借助于本发明的上述技术方案,通过将关键词按顺序排列加入字典树中的技术方案,有效地将具有相同前缀的关键词排布在字典树中相邻的位置,使用连续的区间代替离散的节点,原本需要记录所有的节点,现在改为只需记录连续区间的头尾节点,使得节点对查询其子节点所在位置的信息量被大幅度压缩,避免使用占用大量空间复杂度的哈希表,因此降低了中文AC自动机工作时需要的空间复杂度,压缩了中文AC自动机的工作占用空间。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,包括:
获取所有关键词,将所有所述关键词编码,并将所有所述关键词按其关键词编码的字符顺序排列;
建立字典树,并将所有所述关键词按字符排列顺序加入所述字典树中;
为所述字典树中的每个非虚根节点加入前缀指针;
为所述字典树中的每个非虚根节点加入失败指针;
获取待检测文章,根据包括前缀指针与错误指针的字典树在所述待检测文章中查询并记录下所有的关键词。
2.根据权利要求1所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,将所有所述关键词编码,为将所有所述关键词按照指定的汉字编码方式以数字组合的形式表示;将所有所述关键词按其关键词编码的字符顺序排列,为将所有所述关键词按其编码后每个字符所对应数字的大小顺序对所有关键词进行排列。
3.根据权利要求2所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,所述数字组合为十六进制数字的数字组合;所述指定的汉字编码方式为以下之一:GB2312、GBK、BIG5、UTF-8。
4.根据权利要求2所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,所述建立字典树为指定一虚根,并根据所述虚根建立字典树。
5.根据权利要求4所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,将所有所述关键词按字符排列顺序加入所述字典树中包括:
根据字符排列顺序依次指定每个关键词;
为被指定的关键词建立一个树枝,并为被指定的关键词编码的每一位在树枝上建立一个节点,每一位都是其前一位的子节点,每一位都是其后一位的父节点,父子节点在树枝上相邻;
从虚根开始,将所述指定的关键词的树枝与现有所述字典树上字符相同的节点合并,直到出现不同的节点为止;
依次指定每个关键词直到所有所述关键词均加入所述字典树中。
6.根据权利要求5所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,包括:
为被指定的关键词编码的每一位在树枝上建立一个节点,为最后一位建立一个终止节点,为最后一位之外的每一个其他位建立一个内部节点;
将所述指定的关键词的树枝与现有所述字典树上字符相同的节点合并,为将内部节点与内部节点合并为内部节点,将终止节点与内部节点合并为终止节点,将终止节点与终止节点合并为终止节点。
7.根据权利要求5所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,为被指定的关键词编码的每一位在树枝上建立一个节点时,按照编码从首位到末位的顺序建立节点,先建立父节点后建立子节点,且为每个节点赋予编号,其中,所述每个非虚根节点的编号为关键词加入字典树的过程中该节点被创建的顺序数字,所述虚根编号为零。
8.根据权利要求7所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,为所述字典树中的每个非虚根节点加入前缀指针包括:
根据节点编号顺序依次指定所述每个非虚根节点;
若被指定的所述非虚根节点为虚根的子节点,则为被指定的所述非虚根节点加入一根指向虚根的前缀指针;
若被指定的所述非虚根节点不是虚根的子节点,则记录下被指定的所述非虚根节点的父节点连接到所述非虚根节点的树枝方向,并为被指定的所述非虚根节点加入一根指向所述非虚根节点的父节点的父节点的与所述树枝方向相同的子节点的前缀指针;
依次指定所述每个非虚根节点直到所有所述非虚根节点均具有前缀指针。
9.根据权利要求7所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,为所述字典树中的每个非虚根节点加入失败指针包括:
根据节点编号顺序依次指定所述每个非虚根节点;
分别对于每一个被指定的节点,根据节点编号的数字进位制依次指定可能出现的每个数字;
检查被指定的所述非虚根节点是否为一个具有指定子节点的父节点,其中,该非虚根父节点到该子节点的树枝方向数字与被指定的数字相同,若否,则给被指定的所述非虚根节点建立一个收到被指定的数字后的错误指针;
分别对于每一个被指定的节点,依次指定每个数字直到进位制中的所有数字均被指定过;
依次指定所述每个非虚根节点直到所有所述非虚根节点均具有失败指针。
10.根据权利要求9所述的一种基于关键词字典树构造的中文AC自动机工作方法,其特征在于,给被指定的所述非虚根节点建立一个收到被指定的数字后的错误指针,所述非虚根节点在收到所述被指定的数字后会按照所述错误指针的指向方向确定后续状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510515497.5A CN105260354B (zh) | 2015-08-20 | 2015-08-20 | 一种基于关键词字典树构造的中文ac自动机工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510515497.5A CN105260354B (zh) | 2015-08-20 | 2015-08-20 | 一种基于关键词字典树构造的中文ac自动机工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260354A true CN105260354A (zh) | 2016-01-20 |
CN105260354B CN105260354B (zh) | 2018-08-21 |
Family
ID=55100050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510515497.5A Active CN105260354B (zh) | 2015-08-20 | 2015-08-20 | 一种基于关键词字典树构造的中文ac自动机工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260354B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871726A (zh) * | 2016-03-21 | 2016-08-17 | 哈尔滨工程大学 | 一种基于公共前缀的动态添加树节点和单元的模式匹配方法 |
CN105897739A (zh) * | 2016-05-23 | 2016-08-24 | 西安交大捷普网络科技有限公司 | 数据包深度过滤方法 |
CN106021397A (zh) * | 2016-05-12 | 2016-10-12 | 武汉斗鱼网络科技有限公司 | 一种关键词查找的树结构及实现方法 |
CN106713273A (zh) * | 2016-11-23 | 2017-05-24 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
CN107679036A (zh) * | 2017-10-12 | 2018-02-09 | 南京网数信息科技有限公司 | 一种错别字监测方法及系统 |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN108628907A (zh) * | 2017-03-24 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法 |
CN109918664A (zh) * | 2019-03-05 | 2019-06-21 | 北京声智科技有限公司 | 分词方法和装置 |
CN109918548A (zh) * | 2019-04-08 | 2019-06-21 | 上海凡响网络科技有限公司 | 一种自动检测文档敏感信息的方法和应用 |
CN110287426A (zh) * | 2019-05-23 | 2019-09-27 | 北京百度网讯科技有限公司 | 兴趣点父子关系的建立方法、装置、存储介质及处理器 |
CN111191103A (zh) * | 2019-12-30 | 2020-05-22 | 河南拓普计算机网络工程有限公司 | 从互联网中识别分析企业主体信息方法、装置及存储介质 |
CN111309847A (zh) * | 2019-11-01 | 2020-06-19 | 上海热璞网络科技有限公司 | 一种基于改进字典树算法的快递服务系统地址匹配方法 |
CN111309970A (zh) * | 2020-03-27 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种数据检索方法、装置、电子设备及存储介质 |
CN112069286A (zh) * | 2020-08-28 | 2020-12-11 | 喜大(上海)网络科技有限公司 | 字典树参数更新方法、装置、设备及存储介质 |
CN113010882A (zh) * | 2021-03-18 | 2021-06-22 | 哈尔滨工业大学 | 一种适用于缓存丢失攻击的自定义位置顺序模式匹配算法 |
CN115244539A (zh) * | 2020-05-18 | 2022-10-25 | 谷歌有限责任公司 | 单词或词段词元化的推断方法 |
CN115840785A (zh) * | 2022-12-30 | 2023-03-24 | 河北热数科技有限公司 | 一种分布式终端数据查询系统及方法 |
CN117113436A (zh) * | 2023-10-16 | 2023-11-24 | 中电科大数据研究院有限公司 | 一种基于区块链的数据可信确权方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109524068A (zh) * | 2018-10-16 | 2019-03-26 | 东华大学 | 一种基于ac自动机的疾病症状提取方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311183B1 (en) * | 1998-08-07 | 2001-10-30 | The United States Of America As Represented By The Director Of National Security Agency | Method for finding large numbers of keywords in continuous text streams |
-
2015
- 2015-08-20 CN CN201510515497.5A patent/CN105260354B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311183B1 (en) * | 1998-08-07 | 2001-10-30 | The United States Of America As Represented By The Director Of National Security Agency | Method for finding large numbers of keywords in continuous text streams |
Non-Patent Citations (5)
Title |
---|
AV AHO等: "《Efficient string matching: an aid to bibliographic search》", 《COMMUNICATIONS OF THE ACM》 * |
MASAYUKI TAKED等: "《Processing Text Files as Is: Pattern Matching over Compressed Texts, Multi-byte Character Texts, and Semi-structured Texts》", 《SPIRE 2002: STRING PROCESSING AND INFORMATION RETRIEVAL》 * |
范洪博等: "《高级AC自动机的快速构建方法》", 《计算机研究与发展》 * |
陈虎等: "《gAC:基于GPU的高性能AC算法》", 《计算机工程与应用》 * |
马昀: "《运用信息过滤技术防止移动存储设备信息泄漏》", 《电脑知识与技术》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871726A (zh) * | 2016-03-21 | 2016-08-17 | 哈尔滨工程大学 | 一种基于公共前缀的动态添加树节点和单元的模式匹配方法 |
CN106021397A (zh) * | 2016-05-12 | 2016-10-12 | 武汉斗鱼网络科技有限公司 | 一种关键词查找的树结构及实现方法 |
CN105897739A (zh) * | 2016-05-23 | 2016-08-24 | 西安交大捷普网络科技有限公司 | 数据包深度过滤方法 |
CN106713273B (zh) * | 2016-11-23 | 2019-08-09 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
CN106713273A (zh) * | 2016-11-23 | 2017-05-24 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
CN108628907A (zh) * | 2017-03-24 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法 |
CN108628907B (zh) * | 2017-03-24 | 2021-09-17 | 北京京东尚科信息技术有限公司 | 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法 |
CN107679036A (zh) * | 2017-10-12 | 2018-02-09 | 南京网数信息科技有限公司 | 一种错别字监测方法及系统 |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN109918664A (zh) * | 2019-03-05 | 2019-06-21 | 北京声智科技有限公司 | 分词方法和装置 |
CN109918664B (zh) * | 2019-03-05 | 2023-04-18 | 北京声智科技有限公司 | 分词方法和装置 |
CN109918548A (zh) * | 2019-04-08 | 2019-06-21 | 上海凡响网络科技有限公司 | 一种自动检测文档敏感信息的方法和应用 |
CN110287426A (zh) * | 2019-05-23 | 2019-09-27 | 北京百度网讯科技有限公司 | 兴趣点父子关系的建立方法、装置、存储介质及处理器 |
CN110287426B (zh) * | 2019-05-23 | 2021-12-31 | 北京百度网讯科技有限公司 | 兴趣点父子关系的建立方法、装置、存储介质及处理器 |
CN111309847A (zh) * | 2019-11-01 | 2020-06-19 | 上海热璞网络科技有限公司 | 一种基于改进字典树算法的快递服务系统地址匹配方法 |
CN111191103A (zh) * | 2019-12-30 | 2020-05-22 | 河南拓普计算机网络工程有限公司 | 从互联网中识别分析企业主体信息方法、装置及存储介质 |
CN111309970A (zh) * | 2020-03-27 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种数据检索方法、装置、电子设备及存储介质 |
CN115244539A (zh) * | 2020-05-18 | 2022-10-25 | 谷歌有限责任公司 | 单词或词段词元化的推断方法 |
EP4088217A4 (en) * | 2020-05-18 | 2023-09-06 | Google LLC | INFERENCE PROCESSES FOR SEGMENTATION INTO WORDS OR PARTS OF WORDS |
US11763083B2 (en) | 2020-05-18 | 2023-09-19 | Google Llc | Inference methods for word or wordpiece tokenization |
CN112069286A (zh) * | 2020-08-28 | 2020-12-11 | 喜大(上海)网络科技有限公司 | 字典树参数更新方法、装置、设备及存储介质 |
CN112069286B (zh) * | 2020-08-28 | 2024-01-02 | 喜大(上海)网络科技有限公司 | 字典树参数更新方法、装置、设备及存储介质 |
CN113010882A (zh) * | 2021-03-18 | 2021-06-22 | 哈尔滨工业大学 | 一种适用于缓存丢失攻击的自定义位置顺序模式匹配算法 |
CN115840785A (zh) * | 2022-12-30 | 2023-03-24 | 河北热数科技有限公司 | 一种分布式终端数据查询系统及方法 |
CN115840785B (zh) * | 2022-12-30 | 2023-06-09 | 河北热数科技有限公司 | 一种分布式终端数据查询系统及方法 |
CN117113436A (zh) * | 2023-10-16 | 2023-11-24 | 中电科大数据研究院有限公司 | 一种基于区块链的数据可信确权方法和装置 |
CN117113436B (zh) * | 2023-10-16 | 2024-01-26 | 中电科大数据研究院有限公司 | 一种基于区块链的数据可信确权方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105260354B (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260354A (zh) | 一种基于关键词字典树构造的中文ac自动机工作方法 | |
CN105183788A (zh) | 一种基于关键词字典树检索的中文ac自动机工作方法 | |
US4782325A (en) | Arrangement for data compression | |
US11275740B2 (en) | Efficient use of trie data structure in databases | |
Bille et al. | Random access to grammar-compressed strings | |
US10169426B2 (en) | Fast identification of complex strings in a data stream | |
Claude et al. | The wavelet matrix: An efficient wavelet tree for large alphabets | |
Gagie et al. | Colored range queries and document retrieval | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
Arroyuelo et al. | Stronger Lempel-Ziv based compressed text indexing | |
CN102024046B (zh) | 数据重复性校验方法和装置及系统 | |
US10417208B2 (en) | Constant range minimum query | |
Mortensen et al. | On dynamic range reporting in one dimension | |
US20180173710A1 (en) | Multi-Level Directory Tree with Fixed Superblock and Block Sizes for Select Operations on Bit Vectors | |
CN103123650A (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN107463711A (zh) | 一种数据的标签匹配方法及装置 | |
CN107871169B (zh) | 一种利用多叉树结构的工程量清单编码自动生成方法 | |
Takagi et al. | Packed compact tries: A fast and efficient data structure for online string processing | |
CN114372177A (zh) | 一种Excel表格数据匹配方法 | |
CN112256821B (zh) | 中文地址补全的方法、装置、设备及存储介质 | |
CN107301230A (zh) | 基于物联网物品标识的生成方法及系统、解析方法及系统 | |
Köppl et al. | In-place bijective burrows-wheeler transforms | |
CN104301182B (zh) | 一种慢速网站访问异常信息的查询方法及装置 | |
CN116644740A (zh) | 一种基于单文本词项凝固度的字典自动抽取方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |