AC自动机的构建和中文多模式匹配方法及相关装置制造方法及图纸

技术编号:17939576 阅读:62 留言:0更新日期:2018-05-15 20:00
本发明专利技术公开了一种AC自动机的构建方法、其装置、AC自动机、中文多模式匹配方法及其装置,根据获取到的所有模式关键词中包含的全部汉字,确定由全部汉字组成的具有层结构的结点集合;根据确定出的结点集合中各层所包含的结点,采用排序策略,在各层内按照所包含的直接子结点个数由多至少的顺序,优先确定包含直接子结点个数最多的结点的base值与包含的直接子结点的check值,可以在寻找base值时较大地减少冲突,避免数组增长过快,减少数据稀疏,提高内存占用;对建立的双数组字典树的各结点建立失败指针,生成AC自动机,较大程度地优化了空间利用率。

Construction of AC automata and Chinese multi pattern matching method and related devices

The invention discloses a method of building AC automata, its device, AC automata, Chinese multi pattern matching method and its device. According to all the Chinese characters contained in all the pattern keywords that are obtained, the set of nodes with layer structure composed of all Chinese characters is determined; the root is included in the set of the set of nodes. By using the sorting strategy, the base values of the nodes containing the most direct subnodes and the check values of the direct subnodes are given priority in the order of the number of direct subnodes in each layer, which can reduce the conflict in the search for the base value and avoid the excessive increase of the array. According to the sparsity, the memory occupation is improved; the set up of the two array dictionary tree sets up the failure pointer, and generates the AC automata, which optimizes the space utilization to a great extent.

【技术实现步骤摘要】
AC自动机的构建和中文多模式匹配方法及相关装置
本专利技术涉及信息
,尤指一种AC自动机的构建方法、其装置、AC自动机、中文多模式匹配方法及其装置。
技术介绍
Aho-Corasick算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一,该算法对应的数据结构为Aho-Corasick自动机(简称为AC自动机),通过利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,因此多用于统计,排序,以及保存大量的字符串,尤其经常被搜索引擎用于文本词频的统计。通常,AC自动机需要用到一种具有树形结构的字典树,又称单词的查找树,是一种哈希树的变种。一般地,字典树的基本性质包括:根结点不包含字符,除根结点外的每一个结点都只包含一个字符;从根结点到某一个结点,路径上经过的字符连接起来为该结点对应的字符串;每个结点的所有子结点包含的字符都不相同。然而,在构建传统字典树时,存在的最大问题就是空间消耗大;若字典树中有n个第一层结点,第一层的每个结点可能包含的字符数为m,则占用的空间为n×m;对于汉字而言,目前汉字的总量已达8万,当字典树超过1000个结点时,可能导致现有计算机的内本文档来自技高网...
AC自动机的构建和中文多模式匹配方法及相关装置

【技术保护点】
一种多模式匹配AC自动机的构建方法,其特征在于,包括:根据获取到的所有模式关键词中包含的全部汉字,确定由所述全部汉字组成的具有层结构的结点集合;根据确定出的所述结点集合中各层所包含的结点,在各层内按照所述结点包含的直接子结点个数由多至少的顺序,确定各层所包含的结点对应的偏移base值和关系check值,建立由各所述base值和各所述check值组成的双数组字典树;对所述双数组字典树中的各所述结点建立失败指针,生成AC自动机。

【技术特征摘要】
1.一种多模式匹配AC自动机的构建方法,其特征在于,包括:根据获取到的所有模式关键词中包含的全部汉字,确定由所述全部汉字组成的具有层结构的结点集合;根据确定出的所述结点集合中各层所包含的结点,在各层内按照所述结点包含的直接子结点个数由多至少的顺序,确定各层所包含的结点对应的偏移base值和关系check值,建立由各所述base值和各所述check值组成的双数组字典树;对所述双数组字典树中的各所述结点建立失败指针,生成AC自动机。2.如权利要求1所述的构建方法,其特征在于,所述根据确定出的所述结点集合中各层所包含的结点,在各层内按照所述结点包含的直接子结点个数由多至少的顺序,确定各层所包含的结点对应的偏移base值和关系check值,具体包括:对所述所有模式关键词中包含的全部汉字按指定的编码方式进行汉字编号;根据所述结点集合中的结点个数,构建具有设定长度的初始化base数组和初始化check数组;按照从与根结点连接的第一层结点至叶子结点的顺序,对在所述结点集合中的各层结点执行以下过程:确定同层内任一所述结点是否存在直接子结点;在确定同层内任一所述结点存在直接子结点时,针对同层内存在所述直接子结点的结点,按照同层内所述结点包含的直接子结点个数由多至少的顺序,根据各所述结点的汉字编号以及各所述结点包含的直接子结点的汉字编号,确定各所述结点对应的base值以及各所述结点包含的直接子结点对应的check值;在确定同层内任一所述结点均不存在直接子结点时,将位于所述所有模式关键词结尾的结点对应的base值设为负值。3.如权利要求2所述的构建方法,其特征在于,所述根据各所述结点的汉字编号以及各所述结点包含的直接子结点的汉字编号,确定各所述结点对应的base值以及各所述结点包含的直接子结点对应的check值,具体包括:根据各所述结点的汉字编号,确定各所述结点对应的下标;根据各所述结点对应的下标以及各所述结点包含的直接子结点的汉字编号,确定各所述结点对应的base值以及各所述结点包含的直接子结点对应的check值。4.如权利要求3所述的构建方法,其特征在于,所述根据各所述结点的汉字编号,确定各所述结点对应的下标,具体包括:针对第一层结点中的各结点,确定各所述结点对应的汉字编号为对应的下标;针对其他层结点中属于同一结点的各直接子结点,确定各所述直接子结点的下标I与汉字编号an满足以下关系:I=k+an且确定k为满足以下条件的最小正整数:base[k+a1]=base[k+a2]=…=base[k+an]=check[k+a1]=check[k+a2]=…=check[k+aj]=初始值其中,n为各所述直接子结点个数,n=1、2……j。5.如权利要求4所述的构建方法,其特征在于,根据各所述结点对应的下标以及各所述结点包含的直接子结点的汉字编号,确定各所述结点对应的base值以及各所述结点包含的直接子结点对应的check值,具体包括:确定各所述结点对应的base值为k值;确定各所述结点包含的直接子结点对应的check值为各所述结点的下标。6.如权利要求2-5任一项所述的构建方法,其特征在于,所述将位于所述所有模式关键词结尾的结点对应的base值设为负值,具体包括:将位于所述所有模式关键词结尾的结点对应的为初始值的base值修改为该所述结点的下标的负数;将位于所述所有模式关键词结尾的结点对应的不为初始值的base值修改为该所述结点对应的base值的负数。7.如权利要求2-5任一项所述的构建方法,其特征在于,所述对所述所有模式关键词中包含的全部汉字按指定的编码方式进行汉字编号,具体包括:对所述所有模式关键词中包含的全部汉字按以下方式进行汉字编号:信息交换用汉字编码字符集GB2312、汉字内码扩展规范GBK...

【专利技术属性】
技术研发人员:刘江锋
申请(专利权)人:中国移动通信有限公司研究院中国移动通信集团公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1