CN102521357A - 一种利用自动机实现文本精确匹配的***和方法 - Google Patents
一种利用自动机实现文本精确匹配的***和方法 Download PDFInfo
- Publication number
- CN102521357A CN102521357A CN2011104152226A CN201110415222A CN102521357A CN 102521357 A CN102521357 A CN 102521357A CN 2011104152226 A CN2011104152226 A CN 2011104152226A CN 201110415222 A CN201110415222 A CN 201110415222A CN 102521357 A CN102521357 A CN 102521357A
- Authority
- CN
- China
- Prior art keywords
- matching
- dfa
- text
- texts
- coupling
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种利用自动机实现文本精确匹配的***和方法,其包括:Dfa匹配引擎,用于接收输入文本;dfa跳转表,用于对Dfa匹配引擎接收的输入文本进行匹配查询,如果匹配成功,则进入匹配处理模块,否则进入下一轮的文本输入匹配;匹配处理模块。本发明提供的利用自动机实现文本精确匹配的***和方法,通过自动机对任何文本进行搜索、查询、匹配相应正则子串,同时利用自动机技术对所有正则子串生成自动机,只需遍历文本一遍,显著提高匹配的速度,同时也提高在文本匹配中的精度。同时,本发明方案还可以批量匹配一系列的文本文件。
Description
技术领域
本发明属于网络安全领域,具体涉及一种利用自动机实现文本精确匹配的***和方法。
背景技术
常规文本匹配方法是在文本中搜索固定感兴趣字串,但往往感兴趣的字串不是固定不变的串,而是一系列形状相近的正则特征串。另外,在常规文本匹配中,需要对感兴趣的字串逐一在文本中扫描一遍,效率低下。
专利号CN200710119845.2(一种快速内容分析的多关键词匹配方法)公开了一种快速内容分析的多关键词匹配方法。所述发明方法包括预处理阶段和模式匹配阶段。其中,所述的预处理阶段包括关键词特征串裁剪和关键词特征分片集合的构建、基于关键词特征分片集合的Bloom Filte(布隆过滤器)构造,以及原始关键词集合线性表构造,所述关键词匹配阶段包括:依据Bloom Filter实现当前窗口中文本串不与任何关键词特征分片匹配的快速判定;只在判定失败情况下通过字符串比较操作实现与候选关键词的精确匹配;将文本匹配窗口连续多字节快速跳跃。本发明充分利用了待匹配文本与关键词匹配成功概率异常低的特点,可实现大数量关键词场景下的高速匹配,非常适合病毒检测等在线病毒扫描应用。
专利号CN200610000801.3(一种用于文本或网络内容分析的多关键词匹配方法)公开了一种用于文本或网络内容分析的多关键词匹配方法,属于文本或网络内容处理技术领域。首先根据待匹配的关键词,建立以状态为节点的有限状态自动机,并记录关键词中的字符;根据字符对上述有限状态自动机进行转换,得到以字符为节点的有限状态自动机,节点总数为m+1,m为上述关键词中的字符数;将待匹配的文本或网络数据流作为以字符为节点的有限状态自动机的输入,与关键词进行匹配。本发明方法与已有的AC方法相比,没有引入任何附加计算。当关键词集合中所出现的字符数量少于最大可能字符数时,可以大大降低内存空间消耗。
目前对文本的匹配算法多采用关键字匹配算法,即KMP算法。但实际应用中感兴趣的不仅仅是固定不变的子串,还有一类形状相近的正则特征串。这种场合下,KMP算法就不适用了。
本发明通过自动机对任何文本进行搜索、查询、匹配相应正则子串,同时利用自动机技术对所有正则子串生成自动机,只需遍历文本一遍,显著提高匹配的速度,同时也提高在文本匹配中的精度。同时,本发明方案还可以批量匹配一系列的文本文件。
发明内容
本发明克服现有技术不足,匹配处理模块,按照不同用户的需求进行合适的替代。
本发明提供了一种利用自动机实现文本精确匹配的***,其包括
1)Dfa匹配引擎,用于接收输入文本;
2)dfa跳转表,用于对Dfa匹配引擎接收的输入文本进行匹配查询,如果匹配成功,则进入匹配处理模块,否则进入下一轮的文本输入匹配;
3)匹配处理模块。
本发明提供的利用自动机实现文本精确匹配的***,其DFA状态机是通过将感兴趣的固定串或正则特征串放置到配置文件中,然后对该配置文件编译生成的。
本发明提供的利用自动机实现文本精确匹配的***,DFA状态机是多个不同的系列DFA状态机,其对应于被进行分组处理的配置文件。
本发明还提供了一种利用自动机实现文本精确匹配的方法,其包括
1)Dfa匹配步骤,接收输入文本并利用dfa跳转表对其进行匹配查询,如果匹配成功,则进入匹配处理模块,否则进入下一轮的文本输入匹配;
2)匹配处理步骤。
本发明提供的利用自动机实现文本精确匹配的方法,其DFA状态机是通过将感兴趣的固定串或正则特征串放置到配置文件中,然后对该配置文件编译生成的。
本发明提供的利用自动机实现文本精确匹配的方法,其DFA状态机是多个不同的系列DFA状态机,其对应于被进行分组处理的配置文件。
与现有技术相比,本发明的有益效果在于:通过采用该方案,可以实现灵活、有效、精确的查找匹配串。同时利用该方案,还可以实现对相似文档的批量匹配处理。
附图说明
图1是流程示意图。
具体实施方式
为了解决这些问题,本发明采用了状态机,将感兴趣的固定串或正则特征串放置到一配置文件中,然后对该配置文件编译生成DFA状态机。这样,只需遍历文本文件一遍,就能够获取所有匹配的精确信息。如果DFA状态机太大,可以将该配置文件进行分组处理,生成一系列不同的DFA状态机。具体实现方案如附图1所示。Dfa匹配引擎接受输入文本,同时连接到dfa跳转表中进行匹配查询。如果匹配不成功,则进入下一轮的文本输入匹配,如果成功匹配,则进入匹配处理模块,记录匹配的精确信息。然后再进入下一轮的文本匹配中。
本发明通过将感兴趣的固定串或正则特征串放置到一配置文件中,然后对该配置文件编译生成DFA状态机自动机,从而对任何文本进行搜索、查询、匹配相应正则子串,显著提高匹配的速度,同时也提高在文本匹配中的精度,此外还可以批量匹配一系列的文本文件。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者同等替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种利用自动机实现文本精确匹配的***,其包括
1)Dfa匹配引擎,用于接收输入文本;
2)dfa跳转表,用于对Dfa匹配引擎接收的输入文本进行匹配查询,如果匹配成功,则进入匹配处理模块,否则进入下一轮的文本输入匹配;
3)匹配处理模块。
2.权利要求1的***,其特征在于,其DFA状态机是通过将感兴趣的固定串或正则特征串放置到配置文件中,然后对该配置文件编译生成的。
3.权利要求1的***,其特征在于,DFA状态机是多个不同的系列DFA状态机,其对应于被进行分组处理的配置文件。
4.一种利用自动机实现文本精确匹配的方法,其包括
1)Dfa匹配步骤,接收输入文本并利用dfa跳转表对其进行匹配查询,如果匹配成功,则进入匹配处理模块,否则进入下一轮的文本输入匹配;
2)匹配处理步骤。
5.权利要求4的方法,其特征在于,其DFA状态机是通过将感兴趣的固定串或正则特征串放置到配置文件中,然后对该配置文件编译生成的。
6.权利要求4-5的方法,其特征在于,DFA状态机是多个不同的系列DFA状态机,其对应于被进行分组处理的配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104152226A CN102521357A (zh) | 2011-12-13 | 2011-12-13 | 一种利用自动机实现文本精确匹配的***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104152226A CN102521357A (zh) | 2011-12-13 | 2011-12-13 | 一种利用自动机实现文本精确匹配的***和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102521357A true CN102521357A (zh) | 2012-06-27 |
Family
ID=46292271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104152226A Pending CN102521357A (zh) | 2011-12-13 | 2011-12-13 | 一种利用自动机实现文本精确匹配的***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521357A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577406A (zh) * | 2012-07-19 | 2014-02-12 | 深圳中兴网信科技有限公司 | 一种管理非结构化数据的方法及装置 |
CN104866465A (zh) * | 2014-02-25 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 敏感文本检测方法及装置 |
CN104899264A (zh) * | 2015-05-21 | 2015-09-09 | 东软集团股份有限公司 | 一种多模式正则表达式匹配方法及装置 |
CN112735469A (zh) * | 2020-10-28 | 2021-04-30 | 西安电子科技大学 | 低内存语音关键词检测方法、***、介质、设备及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492359A (zh) * | 2002-04-10 | 2004-04-28 | 深圳市中兴通讯股份有限公司 | 一种多关键字自动状态机查找匹配方法 |
CN1801152A (zh) * | 2006-01-13 | 2006-07-12 | 清华大学 | 一种用于文本或网络内容分析的多关键词匹配方法 |
CN101079890A (zh) * | 2007-07-04 | 2007-11-28 | 杭州华三通信技术有限公司 | 一种生成特征码确定状态机的方法和装置 |
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
-
2011
- 2011-12-13 CN CN2011104152226A patent/CN102521357A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492359A (zh) * | 2002-04-10 | 2004-04-28 | 深圳市中兴通讯股份有限公司 | 一种多关键字自动状态机查找匹配方法 |
CN1801152A (zh) * | 2006-01-13 | 2006-07-12 | 清华大学 | 一种用于文本或网络内容分析的多关键词匹配方法 |
CN101079890A (zh) * | 2007-07-04 | 2007-11-28 | 杭州华三通信技术有限公司 | 一种生成特征码确定状态机的方法和装置 |
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577406A (zh) * | 2012-07-19 | 2014-02-12 | 深圳中兴网信科技有限公司 | 一种管理非结构化数据的方法及装置 |
CN103577406B (zh) * | 2012-07-19 | 2019-04-16 | 深圳中兴网信科技有限公司 | 一种管理非结构化数据的方法及装置 |
CN104866465A (zh) * | 2014-02-25 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 敏感文本检测方法及装置 |
CN104866465B (zh) * | 2014-02-25 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 敏感文本检测方法及装置 |
CN104899264A (zh) * | 2015-05-21 | 2015-09-09 | 东软集团股份有限公司 | 一种多模式正则表达式匹配方法及装置 |
CN112735469A (zh) * | 2020-10-28 | 2021-04-30 | 西安电子科技大学 | 低内存语音关键词检测方法、***、介质、设备及终端 |
CN112735469B (zh) * | 2020-10-28 | 2024-05-17 | 西安电子科技大学 | 低内存语音关键词检测方法、***、介质、设备及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706807B (zh) | 一种中文网页新词自动获取方法 | |
CN101398820B (zh) | 一种大规模关键词匹配方法 | |
Chaudhuri et al. | Extending autocompletion to tolerate errors | |
CN104899264B (zh) | 一种多模式正则表达式匹配方法及装置 | |
US7860853B2 (en) | Document matching engine using asymmetric signature generation | |
CN101950312B (zh) | 一种互联网网页内容解析方法 | |
US20120323877A1 (en) | Enriched Search Features Based In Part On Discovering People-Centric Search Intent | |
CN108829658A (zh) | 新词发现的方法及装置 | |
CN102857493A (zh) | 内容过滤方法和装置 | |
US20040015909A1 (en) | System and method for regular expression matching using index | |
WO2011059551A1 (en) | Method and system for text filtering | |
CN103076892A (zh) | 一种用于提供输入字符串所对应的输入候选项的方法与设备 | |
EP2499562A1 (en) | Enabling faster full-text searching using a structured data store | |
CN101154228A (zh) | 一种分段模式匹配方法及其装置 | |
CN103778185A (zh) | 一种用于数据库审计***的sql语句解析方法和*** | |
CN102163234A (zh) | 一种基于纠错相关度对查询序列进行纠错的设备和方法 | |
WO2008144457A2 (en) | Efficient retrieval algorithm by query term discrimination | |
KR20080085165A (ko) | 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템 | |
CN101425084A (zh) | 基于有序二叉树的模式匹配方法 | |
CN102870116A (zh) | 内容匹配方法和装置 | |
CN102521357A (zh) | 一种利用自动机实现文本精确匹配的***和方法 | |
CN116562297B (zh) | 基于HTrie树的中文敏感词变形体识别方法及*** | |
US10565188B2 (en) | System and method for performing a pattern matching search | |
CN111061972B (zh) | 一种用于url路径匹配的ac查找优化方法和装置 | |
CN108920483A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120627 |