2024年8月26日发(作者:鄞泽)
2010年第9期
计算机与现代化
JISUANJI YU XIANDAIHUA 总第181期
文章编号:1006-2475(2010)09-0085 ̄3
基于n—gram的字符串分割技术的算法实现
李文,洪亲,滕忠坚,石兆英,胡小丹,刘海博
(福建师范大学仓山校区物理与光电信息科技学院,福建福州350007)
摘要:相似字符串的模糊查询一直是人们致力研究的方向,目前基于关键字的查询技术都是前缀匹配,无法查找到与搜
索字符串相似的结果。本文提出一种基于n—gram的字符串分割技术的算法,该技术是实现基于关键字的模糊查询技术
的基础,通过对数据集以及搜索关键字的字符串进行分割,利用编辑距离实现相似字符串的模糊查询,该技术在数据挖
掘以及论文抄袭等方面都有很重要的应用。
关键词:模糊查询;编辑距离;n gram;字符串分割
中图分类号:TV391.1 文献标识码:A doi:10.3969/j.issn.1006-2475.2010.09.024
Implementation of Algorithm Based on n-gram String Segmentation
LI Wen,HONG Qin,TENG Zhong ̄ian,SHI Zhao—ying,HU Xiao—dan,LIU Hal—bo
(School of Physics and Optoelectmnics Technology of Fujian Normal Univemi ̄Cangshan Campus,Fuzhou 350007,China)
Abstract:Recently,similar strings of fuzzy queries have been involved in research,and many people are working on it actively.
The current keyword—based query techniques are mostly prefix match.which could not find results that are similar w th the query
strings.This paper presents an algorithm of n—gram stirng segmentation,which is the foundation for fuzzy query.Data sets,as
well as the keyword strings are segmented by it,and then the string edit distance is used to achieve similarfuzzy query,which has
very important印pHcations in data cleaning and cloning papem.
Key words:fuzzy query;edit distance;n—gram;string segmentation
0 引 言
其检索结果是“错误的输入,错误的输出”,对于用户
因记忆不清或误操作单词中的个别字母,甚至在有的
在信息膨胀的互联网时代,如何从海量的数据中
数据库中也有可能存在不正确的数据即“脏数据”。
快捷有效地管理和检索信息成为当前一项紧迫的研
在这些情况下,就可能无法得到想要的检索结果。原
究任务 ¨。
来对关键字的索引无法满足这种检索要求,为此本文
目前随着信息的增多,人们迫切地要求信息系统
提出一种全新的解决方法,首先对关键字进行分割处
能够支持相似字符串的模糊查询-2 J,传统的查询技
理,再对分割的片段字符串创建索引,然后通过对片
术,用户在进行查询的时候,有可能输人错误的单词,
段字符串进行检索实现模糊检索。为此本文提出一
中文里也经常出现模糊音、模糊字的现象。在这些情
种基于n—gram的字符串分割技术为实现基于关键字
况下,可能就无法得到想要的检索结果。尽管目前有
模糊检索提供基础。
些搜索引擎中加入了“您是否要找 书”这种功
能,也依然无法满足人们的检索要求。因此,怎样从
1基于关键字的查询
海量的数据中搜索出与查询字符串相类似的查询结
1.1传统的查询方法
果,是本文努力研究的方向 。
搜索引擎是一种典型的利用信息检索技术实现
基于关键字的查询技术是实现各种查询的基础,
的搜索平台,随着网络与通信技术的迅速发展,Web
但目前基于关键字查询一般都是前缀精确匹配 J,
信息爆炸性的增长,已经成为一个巨大的海量信息空
收稿日期:2010-05-26 。
作者简介:李文(1986一),女,山东济宁人,福建师范大学硕士研究生,研究方向:数据库;洪亲,女,高工,研究方向:数据库;
滕中坚,男,教授,研究方向:计算机图形图像处理及应用;石兆英,女,讲师,研究方向:数据结构;胡小丹,助教,硕士,研究
方向:计算机图形图像处理及应用;刘海博,女,助教,硕士,研究方向:嵌入式系统。
计算机与现代化 2010年第9期
间,搜索引擎成为网络必不可少的工具 J。本文就
用户在输入一个错误的查询字符串,或者在数据库中
存在的一个有错误的记录,也都可以作为查询结果返
回给用户,而这些记录很有可能就是用户所需要的。
以搜索引擎为例来说明传统的查询方法。目前,互联
网上的大部分搜索引擎都是采用基于关键字的查询
技术,典型代表为Google和百度 J。这些传统的基
于关键字的搜索引擎,往往都是对整个关键字创建索
引 ¨,这种查询方法往往只能做到完全前缀匹配 J,
在用户输入有误或者数据库中存在“脏数据”等情况
因此,这种新的检索技术将更加人性化、方便、灵活、
有效地满足人们实际的检索需求。
表1为在设定编辑距离为1的情况下,所能实现
的查询范围,其中Y表示可以查询的情况,N表示不
下,可能就无法搜索到用户需要的信息。如图1所
可以。
示,为搜索引擎进行信息检索时的流程图 J,从图1
表1不同情况下可以实现的查询
中可以清晰地看出,传统的搜索技术,将用户输入的
查询字符串进行切词处理,而本文所研究的技术是对
条件 ED=0 ED=I ED>l
词再进行分割。
输入正确,无“脏数据” Y Y N
输人正确,有“脏数据” Y Y N
输入错误,无“脏数据” Y Y N
输入错误,有“脏数据” N N N
要实现上述这种相似字符串的模糊查询,首先将
整个数据集进行字符串分割,根据所得到的倒排列表
创建索引,然后将用户输人的查询字符串进行字符串
分割,再与索引结构中的字符串片段进行模糊匹配,
将查询结果按照匹配程度反馈给用户。
图1搜索引擎的查询过程流程图
综上所述,字符串的分割技术是本文创建索引,
1.2基于n-gram的字符串分割技术的查询方法
以及实现相似字符串的模糊查询技术的重要前提。
本文所研究的字符串分割技术,解决了传统的基
于关键字的查询技术的完全前缀匹配的问题。能够
2基于n-gram的字符串分割技术
在用户输入有误或数据库中存在“脏数据”的情况
2.1 n-gram技术
下,依然查找到用户需要的查询信息¨引。如图2所
示为采用基于n—gram的字符串分割技术的查询方法
n—gram的定义:设∑为一个字母表,S是一个由
的流程图。
中的字母组成的一个字符串。ISl表示S的长度,S
[i]是S中第i个字母(i从1开始),s[i,j]是s中从
第i个到第j个字母,n是一个整数。
S中的一个n—gram的定义为一个(i,g)对,其中
g表示S中从第i个字母开始的一个n—gram,如S[i,
i+n一1],G(S,n)表示字符串s中所有的n—gram的
集合,如S=smith,n=3,则c(s,n)={(1,smi),(2,
mit),(3,it}1)}¨ 。
综上所述,n—gram其实就是以一定的长度并按一
定的规律将一个字符串进行分割,分割成的每个n-
图2基于n—gram的查询技术的查询流程图
grams都是这个字符串的一个子串 引。在本文中,对
将两个串s1和s2之间编辑距离ED(s1,s2)定
多个字符串进行分割时,将空格以及其他特殊字符也
义为将串s1转换成s2,所需要的字符编辑操作(删
作为一般的字符进行处理。
除、插入、替换)的次数 ¨。该技术采用编辑距离来
2.2字符串分割算法实现
限定字符串的相似程度。如输入查找字串cet且限
该算法可以根据用户输入的分割字符串的长度
定检索出的内容与输人查找字串允许一个字符不同
来对数据集或查询字符串进行分割。算法的实现主
(即编辑距离ED=1)时,如果数据库内容存在,那么
要采用两个结构体。一个是分割字符串的结构体。
可能检索出的结果是¥cet、,I:et、c t、ce 、et ,其
这个结构体主要的功能是,程序从源文件中读取到一
中 表示可以是空或任意一个字符。这样一来,即使
行数据,然后程序根据分割字符长度来分割该行数
2010年第9期 李文等:基于n-gram的字符串分割技术的算法实现
据,最后存放在这个结构体中。另一个是目标文件的
结构体,也就是说,将最终分割好的字符串以这个结
构体为单位进行存储。之所以采用结构体的方式进
行存储,是因为如果采用字符串的存储方式 那么每
次添加一个字符串都要重新再从头到尾读写一下目
标文件,这样会很浪费时间。
该算法包括4个主要函数:
(1)Insert Segmentation Stirng(参量cDestFile、参
量cPtr、参量index、参量iSeqLen)。该函数用来将一
个字符串cPtr分割好,转化为seqStifng,并在目标文
件中查找是否已经存在这个字符串片段,如果有,则
删除;如果没有,则存人到目标文件中。
(2)Deal With Insert String(参量cDestFile、参量
seqString、参量iSeqLen)。该函数调用函数(1),将
seqString参数中的相关信息存人到目标文件中。
(3)Deal With Segmentation String(参量cPtr、参
量pSeqString、参量iSeqLen、参量index)。该函数是
将字符串cStr,根据iSeqLen来分割,并将分割好的字
符串存入到pSeqString中。
(4)Deal With Process(参量cDestFile、参量cSrc—
File、参量iSeqLen)。该函数分是割字符串的主函数,
调用函数(3)和函数(2),从源文件cSrcFile中读取记
录,按照iSeqLen的值,即用户输人的子串长度进行
分割,最后将分割好的结果放入目标文件
cDestFile中。
本算法使用c语言编写,该算法主要实现过程
描述如下:
Ⅱ源文件存在
记录字符数>0
目标文件若不存在,则新建一个
LOOP
If可以从源文件中读取一行数据
从源文件读取一行数据
Deal With rrocess(目标文件名,源文件名,分割长度)
else
break
else打印结果,退出程序
如图3所示,为该算法的主要流程图,其中Seq—
String为声明的分割字符串的结构体。
2.3实验结果与分析
该算法的时间复杂度为O(n/2),其中n表示记
录数。该算法呈线性增长趋势,有较高的效率。表2
为利用该算法对包含不同记录数的TXT文件,采用
不同n—gram进行分割时所用的时间比较,单位为ms,
运行环境为Pentium(R)4,CPU 3.OOGHz,1G内存的
Windows XP系统。
图3字符串分割算法流程图
表2对不同记录数文件分割所使用的时间
记录数 2-grams 3-grams 4一grams
5 llOms 88ms 72ms
lO 266ms 238ms 2O9ms
50 882ms 727ms 580ms
3 结束语
相似字符串的模糊查询一直是人们努力研究的方
向,本文所提出的这种基于n—gram的字符串分割技
术,是实现相似字符串模糊查询的一项关键技术。本
文创新点在于可以通过字符串的分割,查找到与输人
字符串相似的查询结果,而非完全前缀匹配。而且,这
种技术的实现,对将来在数据挖掘、数据清洗、拼写检
查以及论文抄袭等方面都有很重要的应用l】 。
参考文献:
[1]刘兴字.基于倒排索引的全文检索技术研究[D].武汉:
华中科技大学硕士学位论文,2004.
[2]崔维梅,范荣鹏.搜索引擎技术的现状和热点[J].青年
记者,2006(16):116.1l7.
[3] Motoda H,Yoshida K.Machine learning techniques tO make
computers easier tO use[C]//International Joint Confer-
ence on Artificial Intelligence.1997:1622-1631.
[4] Kukich K.Techniques for automatically correcting words in
text[J].ACM Comput.Surv.,1992,24(4):377-439.
[5] 冯冰洁,杨天奇.后缀树聚类算法在元搜索引擎中的应
用[J].微计算机信息,2010(3):204-206.
[6] Behm Alexander,ji Shengyue,Li Chen,et a1.Space-constrain.
ed gram-based inde ̄ng for efficient approximate string search
[C]//ICDE.2009:604--615. (下转第91页 )
2010年第9期
靳建彬等:基于遗传算法的!! 兰里兰竺 兰! 查———————————
钟凛
-/---
鬈
蓑
藁量
示
神经网络收敛速度得到明显提商,
嚣
1c【匕明
;
月
,
文献:
[1]aP gello E,Angel。A ’
。A D.coope碍ti
_C唧咖 &
ve
btei0h
av
iors i
‘
n m
u
…
m-
ro
oot
-_-‘
systems through implicit colnmunlc ‘ ‘
n
‘L
[J].
‘……
R0
bo
fi
。
c
s
龃d
图3优化网络训
TI1AINLrd,E 28/50,MSE0.000984835/0・00l,b龇哪
2.删
厶
。
TRAINLM,performance goal met・
f]4 阎平凡,奎 张长水.人工神经网篁络与模拟进化算法【备与俣似堪 异 “M] ~ .j匕
统在28步之内就能够找到最优 缩 ,lI又似埋发 业
‘
f 15
、
弓}∈钤
.
张钹.神经网络中
BP
鼻 刚万 l
算法的分析[j].模式识别
L JJ’佚 ~
(3):
191-
195.
耋 底腐蚀管道极限承载力的研冤L鬣 金
飞.G
A-B
P
人
工神经网络应用于海 J J‘ 目博汗‘‘ ’
r
『
1
9]
8
。
Nt!t兴.g 篓嚣
.北京:电子工业出版 oo4.
李钟侠.神经网络结构及兵秘但 化 堪 开
,
菇 算
Ⅲ
…
茹机器人协作中的
b-
图4 10 4一",ff ̄ ’
…
譬
快
1
50 -158 .
路径
’
m阜
; 鬣 暑
达到期望目
[
…
13
]李姚张蒂 PID ̄N][J N新N ̄凇N, 2117,
和遗传算法的智能
计算
15嚣(15 ) :610-0 12.
差大小的隋熏 况下用节点删除法和扩张i丢调讽佣疋。 噘
r
r
]丛爽.面向
14
杰而向
Matlab 工具箱的柙绘
箱的神经网络理论与应用
矬 司 门n
.
[11]Li C,Lu J,Lu Y・E
f
if
c
i
ent
m
er
g
in
g a
nd
if
h
e
r
i
ng
a1
go
ri
thm
s
接第87页)
.
f or approximate stnng 8eaI ‘I
s
t
ri
n
g
8
ear
c
he
c
8
[
L u …
c
]
/
/
I
c
DE2
—
0o
8
:
Li Guoliang ,Fen
g Ji
anh ua,
wang Ji
i
an ̄
any
ong,et a
’・
l An
ene
一
c-
.
—
…
…
t ive a nd
v ersat
i
lek
k
evw
眦 e
n
gin
e
onnet
ero
gcn
uu
 ̄
.
[12]Xiao Chuan,Wang Wej
L
in X uem
in .E
d
-
Jo
i
n:A
n
eff icie
n
t
,
data s0u脚
,m
[C]
c
//Proceedings of th
e
。
vLD
B
E
n
d
。
wm
“~…
en
t.
.
.
algorithm for similarity joms wltn eq Ⅱ
e
d
i
st
a
nce
n
c。IIs
w¨……‘
nt
s
2):14
52
-索14
55
术.
『C1//VLDB.2008:131-140.
f]
8
.
r 1
陆宜梅.
Web
搜索技术现状分析L
搜
技
现状分析[J].沈阳大学学报,
J J・ p曙人手子 ’
m1 RA,FiseherM J,The stirng-to。string co 帆p
[9] 之关键字查询[EB/OL]EB/OL].一
.
http:/。。/www.
咿 ‘
, 删4
_一一
.‘
:[1 4:Y]lⅪem u[Jr]h.lA】aCnM,w‰ “,19a7ng4,w21e(i1,)“: n16x8-u1e7f3rIi.n,昌et a1.雎cient simcils
.
三
itv joins for near duplicate detec【 u L J川………”。
。
Guolina
g 一et
at.Ethel
en
t lnt
e
rac
u
ve
…
…
J
f
i Shen
gyue,Li
c,
uzzy keyword search【c]
『c
//Intemati
0n
0na1
al
w0nu w儿J
W0d
dWid
e
…
w
eb
2024年8月26日发(作者:鄞泽)
2010年第9期
计算机与现代化
JISUANJI YU XIANDAIHUA 总第181期
文章编号:1006-2475(2010)09-0085 ̄3
基于n—gram的字符串分割技术的算法实现
李文,洪亲,滕忠坚,石兆英,胡小丹,刘海博
(福建师范大学仓山校区物理与光电信息科技学院,福建福州350007)
摘要:相似字符串的模糊查询一直是人们致力研究的方向,目前基于关键字的查询技术都是前缀匹配,无法查找到与搜
索字符串相似的结果。本文提出一种基于n—gram的字符串分割技术的算法,该技术是实现基于关键字的模糊查询技术
的基础,通过对数据集以及搜索关键字的字符串进行分割,利用编辑距离实现相似字符串的模糊查询,该技术在数据挖
掘以及论文抄袭等方面都有很重要的应用。
关键词:模糊查询;编辑距离;n gram;字符串分割
中图分类号:TV391.1 文献标识码:A doi:10.3969/j.issn.1006-2475.2010.09.024
Implementation of Algorithm Based on n-gram String Segmentation
LI Wen,HONG Qin,TENG Zhong ̄ian,SHI Zhao—ying,HU Xiao—dan,LIU Hal—bo
(School of Physics and Optoelectmnics Technology of Fujian Normal Univemi ̄Cangshan Campus,Fuzhou 350007,China)
Abstract:Recently,similar strings of fuzzy queries have been involved in research,and many people are working on it actively.
The current keyword—based query techniques are mostly prefix match.which could not find results that are similar w th the query
strings.This paper presents an algorithm of n—gram stirng segmentation,which is the foundation for fuzzy query.Data sets,as
well as the keyword strings are segmented by it,and then the string edit distance is used to achieve similarfuzzy query,which has
very important印pHcations in data cleaning and cloning papem.
Key words:fuzzy query;edit distance;n—gram;string segmentation
0 引 言
其检索结果是“错误的输入,错误的输出”,对于用户
因记忆不清或误操作单词中的个别字母,甚至在有的
在信息膨胀的互联网时代,如何从海量的数据中
数据库中也有可能存在不正确的数据即“脏数据”。
快捷有效地管理和检索信息成为当前一项紧迫的研
在这些情况下,就可能无法得到想要的检索结果。原
究任务 ¨。
来对关键字的索引无法满足这种检索要求,为此本文
目前随着信息的增多,人们迫切地要求信息系统
提出一种全新的解决方法,首先对关键字进行分割处
能够支持相似字符串的模糊查询-2 J,传统的查询技
理,再对分割的片段字符串创建索引,然后通过对片
术,用户在进行查询的时候,有可能输人错误的单词,
段字符串进行检索实现模糊检索。为此本文提出一
中文里也经常出现模糊音、模糊字的现象。在这些情
种基于n—gram的字符串分割技术为实现基于关键字
况下,可能就无法得到想要的检索结果。尽管目前有
模糊检索提供基础。
些搜索引擎中加入了“您是否要找 书”这种功
能,也依然无法满足人们的检索要求。因此,怎样从
1基于关键字的查询
海量的数据中搜索出与查询字符串相类似的查询结
1.1传统的查询方法
果,是本文努力研究的方向 。
搜索引擎是一种典型的利用信息检索技术实现
基于关键字的查询技术是实现各种查询的基础,
的搜索平台,随着网络与通信技术的迅速发展,Web
但目前基于关键字查询一般都是前缀精确匹配 J,
信息爆炸性的增长,已经成为一个巨大的海量信息空
收稿日期:2010-05-26 。
作者简介:李文(1986一),女,山东济宁人,福建师范大学硕士研究生,研究方向:数据库;洪亲,女,高工,研究方向:数据库;
滕中坚,男,教授,研究方向:计算机图形图像处理及应用;石兆英,女,讲师,研究方向:数据结构;胡小丹,助教,硕士,研究
方向:计算机图形图像处理及应用;刘海博,女,助教,硕士,研究方向:嵌入式系统。
计算机与现代化 2010年第9期
间,搜索引擎成为网络必不可少的工具 J。本文就
用户在输入一个错误的查询字符串,或者在数据库中
存在的一个有错误的记录,也都可以作为查询结果返
回给用户,而这些记录很有可能就是用户所需要的。
以搜索引擎为例来说明传统的查询方法。目前,互联
网上的大部分搜索引擎都是采用基于关键字的查询
技术,典型代表为Google和百度 J。这些传统的基
于关键字的搜索引擎,往往都是对整个关键字创建索
引 ¨,这种查询方法往往只能做到完全前缀匹配 J,
在用户输入有误或者数据库中存在“脏数据”等情况
因此,这种新的检索技术将更加人性化、方便、灵活、
有效地满足人们实际的检索需求。
表1为在设定编辑距离为1的情况下,所能实现
的查询范围,其中Y表示可以查询的情况,N表示不
下,可能就无法搜索到用户需要的信息。如图1所
可以。
示,为搜索引擎进行信息检索时的流程图 J,从图1
表1不同情况下可以实现的查询
中可以清晰地看出,传统的搜索技术,将用户输入的
查询字符串进行切词处理,而本文所研究的技术是对
条件 ED=0 ED=I ED>l
词再进行分割。
输入正确,无“脏数据” Y Y N
输人正确,有“脏数据” Y Y N
输入错误,无“脏数据” Y Y N
输入错误,有“脏数据” N N N
要实现上述这种相似字符串的模糊查询,首先将
整个数据集进行字符串分割,根据所得到的倒排列表
创建索引,然后将用户输人的查询字符串进行字符串
分割,再与索引结构中的字符串片段进行模糊匹配,
将查询结果按照匹配程度反馈给用户。
图1搜索引擎的查询过程流程图
综上所述,字符串的分割技术是本文创建索引,
1.2基于n-gram的字符串分割技术的查询方法
以及实现相似字符串的模糊查询技术的重要前提。
本文所研究的字符串分割技术,解决了传统的基
于关键字的查询技术的完全前缀匹配的问题。能够
2基于n-gram的字符串分割技术
在用户输入有误或数据库中存在“脏数据”的情况
2.1 n-gram技术
下,依然查找到用户需要的查询信息¨引。如图2所
示为采用基于n—gram的字符串分割技术的查询方法
n—gram的定义:设∑为一个字母表,S是一个由
的流程图。
中的字母组成的一个字符串。ISl表示S的长度,S
[i]是S中第i个字母(i从1开始),s[i,j]是s中从
第i个到第j个字母,n是一个整数。
S中的一个n—gram的定义为一个(i,g)对,其中
g表示S中从第i个字母开始的一个n—gram,如S[i,
i+n一1],G(S,n)表示字符串s中所有的n—gram的
集合,如S=smith,n=3,则c(s,n)={(1,smi),(2,
mit),(3,it}1)}¨ 。
综上所述,n—gram其实就是以一定的长度并按一
定的规律将一个字符串进行分割,分割成的每个n-
图2基于n—gram的查询技术的查询流程图
grams都是这个字符串的一个子串 引。在本文中,对
将两个串s1和s2之间编辑距离ED(s1,s2)定
多个字符串进行分割时,将空格以及其他特殊字符也
义为将串s1转换成s2,所需要的字符编辑操作(删
作为一般的字符进行处理。
除、插入、替换)的次数 ¨。该技术采用编辑距离来
2.2字符串分割算法实现
限定字符串的相似程度。如输入查找字串cet且限
该算法可以根据用户输入的分割字符串的长度
定检索出的内容与输人查找字串允许一个字符不同
来对数据集或查询字符串进行分割。算法的实现主
(即编辑距离ED=1)时,如果数据库内容存在,那么
要采用两个结构体。一个是分割字符串的结构体。
可能检索出的结果是¥cet、,I:et、c t、ce 、et ,其
这个结构体主要的功能是,程序从源文件中读取到一
中 表示可以是空或任意一个字符。这样一来,即使
行数据,然后程序根据分割字符长度来分割该行数
2010年第9期 李文等:基于n-gram的字符串分割技术的算法实现
据,最后存放在这个结构体中。另一个是目标文件的
结构体,也就是说,将最终分割好的字符串以这个结
构体为单位进行存储。之所以采用结构体的方式进
行存储,是因为如果采用字符串的存储方式 那么每
次添加一个字符串都要重新再从头到尾读写一下目
标文件,这样会很浪费时间。
该算法包括4个主要函数:
(1)Insert Segmentation Stirng(参量cDestFile、参
量cPtr、参量index、参量iSeqLen)。该函数用来将一
个字符串cPtr分割好,转化为seqStifng,并在目标文
件中查找是否已经存在这个字符串片段,如果有,则
删除;如果没有,则存人到目标文件中。
(2)Deal With Insert String(参量cDestFile、参量
seqString、参量iSeqLen)。该函数调用函数(1),将
seqString参数中的相关信息存人到目标文件中。
(3)Deal With Segmentation String(参量cPtr、参
量pSeqString、参量iSeqLen、参量index)。该函数是
将字符串cStr,根据iSeqLen来分割,并将分割好的字
符串存入到pSeqString中。
(4)Deal With Process(参量cDestFile、参量cSrc—
File、参量iSeqLen)。该函数分是割字符串的主函数,
调用函数(3)和函数(2),从源文件cSrcFile中读取记
录,按照iSeqLen的值,即用户输人的子串长度进行
分割,最后将分割好的结果放入目标文件
cDestFile中。
本算法使用c语言编写,该算法主要实现过程
描述如下:
Ⅱ源文件存在
记录字符数>0
目标文件若不存在,则新建一个
LOOP
If可以从源文件中读取一行数据
从源文件读取一行数据
Deal With rrocess(目标文件名,源文件名,分割长度)
else
break
else打印结果,退出程序
如图3所示,为该算法的主要流程图,其中Seq—
String为声明的分割字符串的结构体。
2.3实验结果与分析
该算法的时间复杂度为O(n/2),其中n表示记
录数。该算法呈线性增长趋势,有较高的效率。表2
为利用该算法对包含不同记录数的TXT文件,采用
不同n—gram进行分割时所用的时间比较,单位为ms,
运行环境为Pentium(R)4,CPU 3.OOGHz,1G内存的
Windows XP系统。
图3字符串分割算法流程图
表2对不同记录数文件分割所使用的时间
记录数 2-grams 3-grams 4一grams
5 llOms 88ms 72ms
lO 266ms 238ms 2O9ms
50 882ms 727ms 580ms
3 结束语
相似字符串的模糊查询一直是人们努力研究的方
向,本文所提出的这种基于n—gram的字符串分割技
术,是实现相似字符串模糊查询的一项关键技术。本
文创新点在于可以通过字符串的分割,查找到与输人
字符串相似的查询结果,而非完全前缀匹配。而且,这
种技术的实现,对将来在数据挖掘、数据清洗、拼写检
查以及论文抄袭等方面都有很重要的应用l】 。
参考文献:
[1]刘兴字.基于倒排索引的全文检索技术研究[D].武汉:
华中科技大学硕士学位论文,2004.
[2]崔维梅,范荣鹏.搜索引擎技术的现状和热点[J].青年
记者,2006(16):116.1l7.
[3] Motoda H,Yoshida K.Machine learning techniques tO make
computers easier tO use[C]//International Joint Confer-
ence on Artificial Intelligence.1997:1622-1631.
[4] Kukich K.Techniques for automatically correcting words in
text[J].ACM Comput.Surv.,1992,24(4):377-439.
[5] 冯冰洁,杨天奇.后缀树聚类算法在元搜索引擎中的应
用[J].微计算机信息,2010(3):204-206.
[6] Behm Alexander,ji Shengyue,Li Chen,et a1.Space-constrain.
ed gram-based inde ̄ng for efficient approximate string search
[C]//ICDE.2009:604--615. (下转第91页 )
2010年第9期
靳建彬等:基于遗传算法的!! 兰里兰竺 兰! 查———————————
钟凛
-/---
鬈
蓑
藁量
示
神经网络收敛速度得到明显提商,
嚣
1c【匕明
;
月
,
文献:
[1]aP gello E,Angel。A ’
。A D.coope碍ti
_C唧咖 &
ve
btei0h
av
iors i
‘
n m
u
…
m-
ro
oot
-_-‘
systems through implicit colnmunlc ‘ ‘
n
‘L
[J].
‘……
R0
bo
fi
。
c
s
龃d
图3优化网络训
TI1AINLrd,E 28/50,MSE0.000984835/0・00l,b龇哪
2.删
厶
。
TRAINLM,performance goal met・
f]4 阎平凡,奎 张长水.人工神经网篁络与模拟进化算法【备与俣似堪 异 “M] ~ .j匕
统在28步之内就能够找到最优 缩 ,lI又似埋发 业
‘
f 15
、
弓}∈钤
.
张钹.神经网络中
BP
鼻 刚万 l
算法的分析[j].模式识别
L JJ’佚 ~
(3):
191-
195.
耋 底腐蚀管道极限承载力的研冤L鬣 金
飞.G
A-B
P
人
工神经网络应用于海 J J‘ 目博汗‘‘ ’
r
『
1
9]
8
。
Nt!t兴.g 篓嚣
.北京:电子工业出版 oo4.
李钟侠.神经网络结构及兵秘但 化 堪 开
,
菇 算
Ⅲ
…
茹机器人协作中的
b-
图4 10 4一",ff ̄ ’
…
譬
快
1
50 -158 .
路径
’
m阜
; 鬣 暑
达到期望目
[
…
13
]李姚张蒂 PID ̄N][J N新N ̄凇N, 2117,
和遗传算法的智能
计算
15嚣(15 ) :610-0 12.
差大小的隋熏 况下用节点删除法和扩张i丢调讽佣疋。 噘
r
r
]丛爽.面向
14
杰而向
Matlab 工具箱的柙绘
箱的神经网络理论与应用
矬 司 门n
.
[11]Li C,Lu J,Lu Y・E
f
if
c
i
ent
m
er
g
in
g a
nd
if
h
e
r
i
ng
a1
go
ri
thm
s
接第87页)
.
f or approximate stnng 8eaI ‘I
s
t
ri
n
g
8
ear
c
he
c
8
[
L u …
c
]
/
/
I
c
DE2
—
0o
8
:
Li Guoliang ,Fen
g Ji
anh ua,
wang Ji
i
an ̄
any
ong,et a
’・
l An
ene
一
c-
.
—
…
…
t ive a nd
v ersat
i
lek
k
evw
眦 e
n
gin
e
onnet
ero
gcn
uu
 ̄
.
[12]Xiao Chuan,Wang Wej
L
in X uem
in .E
d
-
Jo
i
n:A
n
eff icie
n
t
,
data s0u脚
,m
[C]
c
//Proceedings of th
e
。
vLD
B
E
n
d
。
wm
“~…
en
t.
.
.
algorithm for similarity joms wltn eq Ⅱ
e
d
i
st
a
nce
n
c。IIs
w¨……‘
nt
s
2):14
52
-索14
55
术.
『C1//VLDB.2008:131-140.
f]
8
.
r 1
陆宜梅.
Web
搜索技术现状分析L
搜
技
现状分析[J].沈阳大学学报,
J J・ p曙人手子 ’
m1 RA,FiseherM J,The stirng-to。string co 帆p
[9] 之关键字查询[EB/OL]EB/OL].一
.
http:/。。/www.
咿 ‘
, 删4
_一一
.‘
:[1 4:Y]lⅪem u[Jr]h.lA】aCnM,w‰ “,19a7ng4,w21e(i1,)“: n16x8-u1e7f3rIi.n,昌et a1.雎cient simcils
.
三
itv joins for near duplicate detec【 u L J川………”。
。
Guolina
g 一et
at.Ethel
en
t lnt
e
rac
u
ve
…
…
J
f
i Shen
gyue,Li
c,
uzzy keyword search【c]
『c
//Intemati
0n
0na1
al
w0nu w儿J
W0d
dWid
e
…
w
eb