CN101271468A - 一种利用越界保护机制对字符串匹配进行加速的方法 - Google Patents
一种利用越界保护机制对字符串匹配进行加速的方法 Download PDFInfo
- Publication number
- CN101271468A CN101271468A CNA2008100644427A CN200810064442A CN101271468A CN 101271468 A CN101271468 A CN 101271468A CN A2008100644427 A CNA2008100644427 A CN A2008100644427A CN 200810064442 A CN200810064442 A CN 200810064442A CN 101271468 A CN101271468 A CN 101271468A
- Authority
- CN
- China
- Prior art keywords
- matching
- text
- character
- subscript
- string matching
- 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
本发明提供的是一种利用越界保护机制对字符串匹配进行加速的方法。根据待匹配文本长度,得到文本尾位置,这里假定文本最末字符位于loc位置;在loc+1位置设置1个字符的隔离字,该隔离字是任意在模式中没有出现的字符;拷贝模式串至文本的loc+2位置;进行不检查是否下标越界的字符串匹配,在输出模式匹配位置前进行是否下标越界的判断,若没有下标越界,则输出匹配位置,若下标越界,则结束匹配动作。本发明所述方法与字符串匹配的具体实现无关,是现有各种字符串匹配问题的通用改进方法。由于在整个串匹配过程中模式匹配后的输出动作是串匹配过程中所有动作中出现频率最低的动作,本发明所述方法可以将检查下标越界操作的总数降至最低。
Description
(一)技术领域
本发明涉及的是一种信息处理方法,具体地说是一种用于信息处理领域中的字符串匹配方法。
(二)背景技术
字符串匹配可以理解为从给定的符号序列中找出一个或若干具有某种性质的模式。字符串匹配问题应用范围极其广泛,几乎所有涉及文本处理的应用中都会涉及到字符串匹配操作,该问题是网络安全、信息检索、计算生物学等重要领域的核心问题。目前随着网络安全问题的凸显,以及超大型数据库、高速搜索引擎、人类基因图谱计划等应用的出现,对高速匹配算法的需求非常强烈。
字符串匹配可根据待处理文本在进行匹配操作时是否已知来进行分类。若进行匹配时文本已知的匹配应用为离线文本匹配,如在文本文件中进行匹配或者在socket缓冲区中进行匹配等应用;当匹配时文本未知并在不断更新的匹配应用则为在线文本匹配,匹配时文本仍在不断更新。目前各种匹配应用以离线文本匹配为主。
在处理离线文本时,现有字符串匹配算法至少在每发生一次跳跃时判定是否出现待读入字符超出文本边界的事件(或称下标越界,其中KMP类算法在每读入一个字符时均需检查是否下标越界)。由于字符串匹配所处理的文本长度一般远大于模式的长度,实际的操作中下标越界的出现概率很低,这样频繁的检查是否下标越界降低了匹配应用的实际性能。
为降低下标越界检查的开销,HUME A.与SUNDAY D.M.提出的tunedBoyer-Moore算法(简称tuned BM算法,HUME,A.,SUNDAY,D.M.,Fast stringsearching,Software-Practice&Experience,1991,21(11),1721-1248)中给出了一种越界保护的思想。tuned BM算法在较大字符集下(如英文文本检索)是目前最常用而且性能最高的精确单模式匹配算法,该算法被著名的字符串匹配软件Gungrep作为精确单模式匹配的处理算法。tuned BM算法利用BM坏字符规则进行跳跃,每次跳跃后待读入字符为窗口最末字符,并且当被读入字符和模式最末字符匹配时窗口的跳跃距离为0。利用此特性,tuned BM算法中提出了一种简单的越界保护机制,在文本的末尾接入m个字符的越界保护带,越界保护带内字符与模式的最末字符一致。这样,当窗口沿文本匹配至文本尾后,当出现下标越界时,此时的待读入字符位于越界保护带中,因此,窗口的跳跃距离将为0,窗口将不再继续向后跳跃。因此可进行若干次跳跃后,才检查一次是否发生下标越界。这样的做法将把下标越界的检查的开销分摊在若干次跳跃中,降低了每次跳跃的平均开销。
上述方法被称为简易的越界保护方法,该方法并没有将越界保护检查的次数降到最低。同时,该方法只能适用于tuned BM算法,其他算法由于没有当待读入字符和模式最末字符匹配时跳跃距离为0的特性,而无法应用到其他算法中。
(三)发明内容
本发明的目的在于提供一种可将下标越界检查开销降至最低,并且可顺利应用于现有大多数串匹配算法和串匹配应用的利用越界保护机制对字符串匹配进行加速的方法。
本发明的目的是这样实现的:
按以下步骤进行:
a)根据待匹配文本长度,得到文本尾位置,假定文本最末字符位于loc位置;
b)在loc+1位置设置1个字符的隔离字,该隔离字是任意在模式中没有出现的字符;
c)拷贝模式串至文本的loc+2位置;
d)进行正常的字符串匹配,在输出模式匹配位置前进行是否下标越界的判断,若没有下标越界,则输出匹配位置,若下标越界,则结束匹配动作。
其中,对于某些算法,c)步中所述的拷贝模式串至文本的loc+2位置应拷贝多次,多模式匹配应用中拷贝待匹配的多个模式中的其中一个模式。
对任何不会出现匹配遗漏的字符串匹配算法(含多模式匹配,待扩展字符匹配,正则表达式匹配和近似匹配等等应用),当下标越界时,上述c)步骤所接入的模式串均将引发一次模式匹配事件的发生,本发明所述方法与字符串匹配的具体实现无关,是现有各种字符串匹配问题的通用改进方法。同时,在整个串匹配过程中模式匹配后的输出动作是串匹配过程中所有动作中出现频率最低的动作,本发明所述方法可以将检查下标越界操作的总数降至最低。
目前,本方法在精确单模式匹配算法:KMP,shift-or,tuned BM,Horspool,BNDM,BOM,QS,KARP-RABIN;多模式匹配算法Aho-Corasick,Wu-Manber,SBOM;正则表达式匹配算法Thompson自动机,Glushkov自动机,近似匹配算法中的PEX算法,MultiHash算法;等等算法上均成功实现,实验表明,在各种串匹配算法上均能获得稳定的性能提高。
本发明适用范围包含任何不会发生匹配遗漏的离线串匹配算法和部分在线串匹配算法,保护范围不只包括上述实验中所述算法。
(四)附图说明
图1为本发明的流程图。
(五)具体实施方式
下面结合附图举例对本发明做更详细地描述:
一种利用越界保护机制对字符串匹配进行加速的方法,按以下步骤进行:
a)根据待匹配文本长度,得到文本尾位置,假定文本最末字符位于loc位置。
b)在loc+1位置设置1个字符的隔离字,该隔离字可以是任意在模式中没有出现的字符。用以防止当文本末尾若干字符和所加入的越界保护带头若干字符恰好为模式的一次出现时出现的错误匹配。
c)拷贝模式串至文本的loc+2位置(视情况可拷贝多次,多模式匹配应用中拷贝待匹配的多个模式中的其中一个模式)。
d)进行正常的字符串匹配,但无需在每次跳跃时判断是否出现下标越界,在输出模式匹配位置前才进行是否下标越界的判断,若没有下标越界,则输出匹配位置,若下标越界,则结束匹配动作。
下面对实现最简单的BF算法为例,利用本发明所提方法对该算法进行加速。原始的BF算法如下:(其中,t为文本串,pat为模式串,n为文本串长度,m为模式串长度,matchtime为发生匹配的次数,memcmp和memset均为标准C库函数)
char*i=t-1;
while(++i<(n-m)){if(memcmp(i,pat,m)==0){OUTPUT(i);matchtime++;}}
return matchtime;
利用本发明改进后的BF算法如下(其中,隔离字用’\177’即ASCII字符中的Del字符,该字符在模式中必不出现):
memset(t+n,’\177’,1);memset(t+n+1,pat,m);
char*i=t-1;
while(1)
{if(memset(++i,pat,m)==0)
{if(i<n-m){OUTPUT(i);matchtime++;}else return matchtime;}
}
经本发明提出的方法改进后,该算法在窗口每次滑动过程中的开销均减少了两次次减法操作和一次条件转移,改进效果明显。设置越界保护带所带来的开销可忽略不计。
Claims (2)
1、一种利用越界保护机制对字符串匹配进行加速的方法,其特征是:
a)根据待匹配文本长度,得到文本尾位置,假定文本最末字符位于loc位置;
b)在loc+1位置设置1个字符的隔离字,该隔离字是任意在模式中没有出现的字符;
c)拷贝模式串至文本的loc+2位置;
d)进行正常的字符串匹配,在输出模式匹配位置前进行是否下标越界的判断,若没有下标越界,则输出匹配位置,若下标越界,则结束匹配动作。
2、根据权利要求1所述的一种利用越界保护机制对字符串匹配进行加速的方法,其特征是:对于某些字符串匹配应用,c)步中所述的拷贝模式串至文本的loc+2位置时可视情况拷贝多次,多模式匹配应用中拷贝待匹配的多个模式中的其中一个模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100644427A CN101271468A (zh) | 2008-05-05 | 2008-05-05 | 一种利用越界保护机制对字符串匹配进行加速的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100644427A CN101271468A (zh) | 2008-05-05 | 2008-05-05 | 一种利用越界保护机制对字符串匹配进行加速的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101271468A true CN101271468A (zh) | 2008-09-24 |
Family
ID=40005442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100644427A Pending CN101271468A (zh) | 2008-05-05 | 2008-05-05 | 一种利用越界保护机制对字符串匹配进行加速的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101271468A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853248A (zh) * | 2010-05-27 | 2010-10-06 | 河南大学 | 航空天气报告的解码方法 |
CN101873199A (zh) * | 2010-06-29 | 2010-10-27 | 中兴通讯股份有限公司 | 码字的匹配方法和装置 |
CN104462266A (zh) * | 2014-11-21 | 2015-03-25 | 北京京东尚科信息技术有限公司 | 改进字符串匹配的方法和系统 |
CN109977276A (zh) * | 2019-03-22 | 2019-07-05 | 华南理工大学 | 一种基于Sunday算法改进的单模式匹配方法 |
-
2008
- 2008-05-05 CN CNA2008100644427A patent/CN101271468A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853248A (zh) * | 2010-05-27 | 2010-10-06 | 河南大学 | 航空天气报告的解码方法 |
CN101853248B (zh) * | 2010-05-27 | 2012-02-15 | 河南大学 | 航空天气报告的解码方法 |
CN101873199A (zh) * | 2010-06-29 | 2010-10-27 | 中兴通讯股份有限公司 | 码字的匹配方法和装置 |
WO2012000320A1 (zh) * | 2010-06-29 | 2012-01-05 | 中兴通讯股份有限公司 | 码字的匹配方法和装置 |
CN101873199B (zh) * | 2010-06-29 | 2014-11-05 | 中兴通讯股份有限公司 | 码字的匹配方法和装置 |
CN104462266A (zh) * | 2014-11-21 | 2015-03-25 | 北京京东尚科信息技术有限公司 | 改进字符串匹配的方法和系统 |
CN109977276A (zh) * | 2019-03-22 | 2019-07-05 | 华南理工大学 | 一种基于Sunday算法改进的单模式匹配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Raghavan et al. | Authorship attribution using probabilistic context-free grammars | |
Giuliano et al. | Exploiting shallow linguistic information for relation extraction from biomedical literature | |
CN101404037B (zh) | 一种检测及定位电子文本内容剽窃的方法 | |
US8983826B2 (en) | Method and system for extracting shadow entities from emails | |
CN105912514B (zh) | 基于指纹特征的文本复制检测系统及方法 | |
Wang et al. | Implicit discourse relation recognition by selecting typical training examples | |
Almarwani et al. | Arabic textual entailment with word embeddings | |
CN106055539A (zh) | 姓名消歧的方法和装置 | |
CN102708147A (zh) | 一种科技术语的新词识别方法 | |
CN101271468A (zh) | 一种利用越界保护机制对字符串匹配进行加速的方法 | |
Devi et al. | Entity extraction for malayalam social media text using structured skip-gram based embedding features from unlabeled data | |
CN111177375A (zh) | 一种电子文档分类方法及装置 | |
Bedrick et al. | Robust kaomoji detection in Twitter | |
CN110413972B (zh) | 一种基于nlp技术的表名字段名智能补全方法 | |
CN115953123A (zh) | 机器人自动化流程的生成方法、装置、设备及存储介质 | |
CN101714137B (zh) | 评价、选择例句对,构建通用例句库,机器翻译的方法及装置 | |
CN109446321B (zh) | 一种文本分类方法、装置、终端及计算机可读存储介质 | |
CN104731766A (zh) | 拼音文字词库构建方法和装置及输入方法和系统 | |
CN115659017A (zh) | 一种敏感词匹配方法、装置、设备、存储介质及产品 | |
Al-Sarem et al. | Performance of authorship attribution classifiers with short texts: application of religious Arabic fatwas | |
Soni et al. | Correcting whitespace errors in digitized historical texts | |
CN115455416A (zh) | 一种恶意代码检测方法、装置、电子设备及存储介质 | |
US8472719B2 (en) | Method of stricken-out character recognition in handwritten text | |
US8438010B2 (en) | Efficient stemming of semitic languages | |
Fresko et al. | A hybrid approach to NER by MEMM and manual rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080924 |