CN1538322A - 一种用于消除字符串模糊匹配冗余的过滤方法 - Google Patents

一种用于消除字符串模糊匹配冗余的过滤方法 Download PDF

Info

Publication number
CN1538322A
CN1538322A CNA031582028A CN03158202A CN1538322A CN 1538322 A CN1538322 A CN 1538322A CN A031582028 A CNA031582028 A CN A031582028A CN 03158202 A CN03158202 A CN 03158202A CN 1538322 A CN1538322 A CN 1538322A
Authority
CN
China
Prior art keywords
character
string
ignore
characters
fuzzy 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.)
Granted
Application number
CNA031582028A
Other languages
English (en)
Other versions
CN1538322B (zh
Inventor
陈开渠
赵洁
彭志威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 03158202 priority Critical patent/CN1538322B/zh
Publication of CN1538322A publication Critical patent/CN1538322A/zh
Application granted granted Critical
Publication of CN1538322B publication Critical patent/CN1538322B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Character Discrimination (AREA)

Abstract

本发明涉及一种用于消除字符串模糊匹配中冗余的过滤方法,所述方法是从第j+m-1个字符往前扫描,出现在模式串中的字符为有用字符,其他字符为无用字符,当发现了多于模糊度的无用字符时,跳转至最近的一个有用字符处,开始新的匹配。对于中文字符串,它的速度比目前世界上最快的过滤方法快10%~60%;比不用过滤方法的中文字符串模糊匹配快5~7倍;本发明的过滤方法非常有效地消除前述冗余现象,在应用于中文字符串时,可以过滤掉80%~85%的字符,大大提高了匹配效率。

Description

一种用于消除字符串模糊匹配冗余的过滤方法
技术领域
本发明涉及一种用于字符串匹配的过滤方法,特别是一种用于消除字符串模糊匹配中冗余的过滤方法,尤其适用于诸如中文等大字符集上的字符串匹配。
背景技术
字符串模糊匹配在入侵检测、移动短消息过滤、文本编辑、信息查询、自动索引、计算生物学、信息提取等领域均有重要应用,已经成为改善计算机本身性能的一个重要课题。
设s,t是两个字符串,ed(s,t)是指,把t转变成s所需要的修改次数,即s和t的差距。这里一次修改可以是插入、替换或删除一个字符。由修改的对称性,显然ed(s,t)=ed(t,s)。若ed(s,t)≤k,则称s是t的k-匹配。
显然,ed(s,t)反映了s和t的近似程度。那么,字符串模糊匹配研究的问题是:给定长为n的字符串t,长为m的模式串p,一个正整数k<m,要找出所有的j:使得t中存在某子串 使ed(s,p)≤k。
解决模糊字符串匹配是一种基于生成动态矩阵的方法,其时间复杂度为O(mn)。自从1980年P.Sellers发表该方法以来,许多人对之进行了改进。这些改进当中,最有效的是以下两种方法。
第一种方法是位向量方法。当今计算机中,整数字长w一般为32或64,因此,可将32或64次的比特运算用一次整数运算来完成,从而将计算机运算速度提高32或64倍。位向量方法正是利用了这一点,它最初由R.Baeza-Yates提出,应用于精确字符串匹配。1992年S.Wu、U.Manber首先将位向量应用于模糊字符串匹配,其时间复杂度为 R.Baeza-Yates等进一步将时间复杂度改进至 使得当m<<w时,对计算机字长的利用率进一步提高。
另一种有效的改进方法是过滤方法,它的原理是在进行字符串匹配前,先检查t是否满足一些必要条件;若满足,进行字符串匹配;否则,说明t中有部分区域肯定不与模式串p相匹配,则跳过这些区域,从而节省了整体搜索时间。
设对字符串t,模式串p进行模糊匹配,一般的匹配方法是从前到后,扫描t中的每个字符,不管t中字符的内容是什么。实际上,这个过程存在冗余。
附图1给出了一个冗余的例子。可以看到,t中第3、4个字符在p中不出现,所以,无论t中前两个字符是什么,均有ed(t1t2t3t4,p)≥2>k,即可断定:前四个字符与p不存在满足要求的模糊匹配,所以,扫描前两个字符是多余的。
发明内容
本发明的目的是提供一种进一步改进的用于消除字符串模糊匹配中冗余的过滤方法,它适用于较大的字符集。
实验结果表明:对于中文字符串,它的速度比目前世界上最快的过滤方法快10%~60%;比不用过滤方法的中文字符串模糊匹配快5~7倍;本发明的过滤方法非常有效地消除前述冗余现象,在应用于中文字符串时,可以过滤掉80%~85%的字符,大大提高了匹配效率。
本发明是这样实现的:
一种用于消除字符串模糊匹配中冗余的过滤方法,包括对字符串,长度为m的模式串进行模糊匹配,所允许的模糊度为k,当前正在扫描字符串中的第j个字符,所述方法还包括:
判断步骤:从j+m-1往前扫描,出现在模式串中的字符为有用字符,其他字符为无用字符,当发现了多于模糊度的无用字符时,跳转至最近的一个有用字符处,开始新的匹配。
本发明设定对字符串t,长度为m的模式串p进行模糊匹配,允许的模糊度为k,并设当前正在扫描t中第j个字符。本发明过滤方法的过程为:
1、设置无用字符计数器(bad)为0,最近一个有用字符的位置(last)为m。
2、从后往前,对t中从第j+m-1到第j的每个字符,执行下列判断:
若当前字符在p中不出现,则:
bad增1;
若bad大于k于,则跳转至3。
若当前字符在p中出现,则:
令last=当前字符的位置减去j;
若last+bad小于k+1,则跳转至3。
3、如果bad大于k,则说明从第j到第j+last的所有字符都可以略过;否则说明本次过滤未发现可略过的字符,应从第j个字符开始进行正常的匹配。
附图说明
图1是BPM匹配方法中存在冗余的示意图。
图2是本发明过滤方法的原理图。
图3是采用本发明过滤方法与其他模糊匹配方法的性能比较示意图。
具体实施方式
图2中称出现在p中的字符为有用字符,其他字符为无用字符。该图显示:在从j+m-1往前扫描的过程中,发现了多于k个的无用字符,那么可以跳转至最近的一个有用字符处,开始新的匹配。
图3中BPM是一个经典的采用位向量方法的模糊匹配方法,ABNDM是采用另一种过滤方法改进了BPM得到的方法,BPM-BM是采用本发明过滤方法改进了BPM得到的算法。该图显示BPM-BM比BPM快5~7倍,比ABNDM快10%~4倍。
下面结合附图1说明本发明过滤方法如何消除前述的冗余。
假设附图1中的字符串t为“abefabcdxyz......”,要在其中找出与模式串p=“abcd”的k=1的模糊匹配。
初始时,当前匹配位置为第1个字符。令bad=0,last=4。
扫描t中第4个字符“f”,它在p中不出现,则bad增1,此时bad大于k不成立,继续扫描。
扫描t中第3个字符“e”,它在p中也不出现,则bad增1,此时bad=2,bad大于k成立,跳出扫描。
因为bad大于k成立,说明可以往后略过last=4个字符,跳转至第5个字符。
下面说明存在k=1的模糊匹配时本过滤的执行情况。
此时当前扫描位置为第5个字符。令bad=0,last=4。
扫描第8个字符“d”,它在p中出现,则令last=8-5=3,此时last+bad=3,k+1=2,last+bad<k+1不成立,继续扫描。
扫描第7个字符“c”,它在p中出现,则令last=7-5=2,此时last+bad=2,k+1=2,last+bad<k+1仍然不成立,继续扫描。
扫描第6个字符“b”,它在p中出现,则令last=6-5=1,此时last+bad=1,k+1=2,last+bad<k+1成立,跳出扫描。
因为bad大于k不成立,说明本次过滤未发现可略过的字符,应从第5个字符开始进行正常的匹配,也就是说,这时应该应用普通的从前往后逐个扫描的算法,比如BPM。

Claims (5)

1.一种用于消除字符串模糊匹配中冗余的过滤方法,包括对字符串,长度为m的模式串进行模糊匹配,所允许的模糊度为k,当前正在扫描字符串中的第j个字符,其特征在于所述方法还包括:
判断步骤:从第j+m-1个字符往前扫描,出现在模式串中的字符为有用字符,其他字符为无用字符,当发现了多于模糊度的无用字符时,跳转至最近的一个有用字符处,开始新的匹配。
2.如权利要求1所述用于消除字符串模糊匹配中冗余的过滤方法,其特征在于该方法进一步包括以下步骤:
设置无用字符计数器为0,最近一个有用字符的位置为m,对字符串中从第j+m-1到第j的每个字符,从后往前扫描;
若当前字符在模式串中不出现,则将无用字符计数器增1,若无用字符计数器大于模糊度,则从第j到第j+last的所有字符都可以略过;
若当前字符在模式串中出现,则设置最近一个有用字符的位置为当前字符的位置减去j,若无用字符计数器与最近一个有用字符位置的和小于k+1,则过滤未发现可略过的字符,应从第j个字符开始进行正常的匹配。
3.如权利要求2所述用于消除字符串模糊匹配中冗余的过滤方法,其特征在于所述无用字符计数器大于k不成立,继续扫描;无用字符计数器大于k成立,跳出扫描。
4.如权利要求2所述用于消除字符串模糊匹配中冗余的过滤方法,其特征在于所述无用字符计数器与最近一个有用字符位置的和小于k+1不成立,继续扫描;无用字符计数器与最近一个有用字符位置的和小于k+1成立,跳出扫描。
5.如权利要求2所述用于消除字符串模糊匹配中冗余的过滤方法,
其特征在于所述从第j个字符开始进行正常的匹配是从前往后逐个扫描字符串中的每一个字符。
CN 03158202 2003-04-14 2003-09-08 一种用于消除字符串模糊匹配冗余的过滤方法 Expired - Fee Related CN1538322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03158202 CN1538322B (zh) 2003-04-14 2003-09-08 一种用于消除字符串模糊匹配冗余的过滤方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN03113213 2003-04-14
CN03113213.8 2003-04-14
CN 03158202 CN1538322B (zh) 2003-04-14 2003-09-08 一种用于消除字符串模糊匹配冗余的过滤方法

Publications (2)

Publication Number Publication Date
CN1538322A true CN1538322A (zh) 2004-10-20
CN1538322B CN1538322B (zh) 2010-04-21

Family

ID=34378682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03158202 Expired - Fee Related CN1538322B (zh) 2003-04-14 2003-09-08 一种用于消除字符串模糊匹配冗余的过滤方法

Country Status (1)

Country Link
CN (1) CN1538322B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008031306A1 (fr) * 2006-09-08 2008-03-20 Guangyao Ding Procede de mise en correspondance de chaines de caracteres caracteristiques base sur des nombres discret, croise et non identique
CN101251845B (zh) * 2008-03-13 2010-06-09 苏州爱迪比科技有限公司 利用改进的Wu-Manber算法进行多模式串匹配的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757983A (en) * 1990-08-09 1998-05-26 Hitachi, Ltd. Document retrieval method and system
KR100247969B1 (ko) * 1997-07-15 2000-03-15 윤종용 대용량패턴정합장치및방법
CN1204516C (zh) * 2001-02-09 2005-06-01 英业达股份有限公司 数据查寻方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008031306A1 (fr) * 2006-09-08 2008-03-20 Guangyao Ding Procede de mise en correspondance de chaines de caracteres caracteristiques base sur des nombres discret, croise et non identique
US8015166B2 (en) 2006-09-08 2011-09-06 Guangyao Ding Method for characteristic character string matching based on discreteness, cross and non-identical
CN101251845B (zh) * 2008-03-13 2010-06-09 苏州爱迪比科技有限公司 利用改进的Wu-Manber算法进行多模式串匹配的方法

Also Published As

Publication number Publication date
CN1538322B (zh) 2010-04-21

Similar Documents

Publication Publication Date Title
Binna et al. HOT: A height optimized trie index for main-memory database systems
Ruzzo et al. A linear time algorithm for finding all maximal scoring subsequences.
Ko et al. Space efficient linear time construction of suffix arrays
CN1168029C (zh) 从连续的中文文本中分离出中文词的方法
CN87100829A (zh) 用于检索的方法和装置
Shasha et al. Atreegrep: Approximate searching in unordered trees
US20140122921A1 (en) Data store capable of efficient storing of keys
CN101030221A (zh) 一种用于文本或网络内容分析的大规模多关键词匹配方法
CN1858734A (zh) 一种数据存储及搜索方法
CN1945571A (zh) Fat卷中重建目录结构和恢复数据的方法
CN1538322A (zh) 一种用于消除字符串模糊匹配冗余的过滤方法
CN102193995A (zh) 一种建立多媒体数据索引、检索的方法及装置
CN101055593A (zh) 藏文网页及其编码的识别方法
CN1426547A (zh) 基于流水线体系结构的微控制器的对抗方法
Alqadi et al. Multiple Skip Multiple Pattern Matching Algorithm (MSMPMA).
CN1801033A (zh) 一种基于数据流的计算机病毒查杀方法
CN1559072A (zh) 逆向搜索系统及方法
Ristov et al. Ziv Lempel compression of huge natural language data tries using suffix arrays
Gasieniec et al. Time/space efficient compressed pattern matching
Brown Constructing chromosome scale suffix trees
CN1138221C (zh) 字串换行方法
Peng et al. A fast engine for multi-string pattern matching
Abdeen An algorithm for string searching
CN1804843A (zh) 一种面向类别型属性的关联规则挖掘方法
CN1776683A (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100421

Termination date: 20130908