1 / 28
文档名称:

多模匹配算法.ppt

格式:ppt   大小:268KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多模匹配算法.ppt

上传人:n22x33 2019/6/25 文件大小:268 KB

下载得到文件列表

多模匹配算法.ppt

文档介绍

文档介绍:多模匹配算法******@-Corasick自动机算法(简称AC自动机)1975年产生于贝尔实验室。该算法应用有限自动机巧妙地将字符比较转化为了状态转移。该算法的基本思想是这样的:在预处理阶段,AC自动机算法建立了三个函数,转向函数goto,失效函数failure和输出函数output,由此构造了一个树型有限自动机。在搜索查找阶段,则通过这三个函数的交叉使用扫描文本,定位出关键字在文本中的所有出现位置。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关。AC算法----: 树型有限自动机包含一组状态,每个状态用一个数字代表。状态机读入文本串y中的字符,然后通过产生状态转移或者偶尔发送输出的方式来处理文本。树型有限自动机的行为通过三个函数来指示:转向函数g,失效函数f和输出函数output。膜翌弦后剔呢寥枕呼乔斋先杨装做潜元狗状虞促喘怨杠利权诡亚菏作浓予多模匹配算法多模匹配算法例如:对应模式集{he,she,his,hers}的树型有限自动机图1a)转向函数g图1b)失效函数f图1c),失效和输出函数的构建现在说明如何根据一个关键字集建立正确的转向、失效和输出函数。整个构建包含两个部分,在第一部分确定状态和转向函数,在第二部分我们计算失效函数。输出函数的计算则是穿插在第一部分和第二部分中完成。为了构建转向函数,我们需要建立一个状态转移图。开始,这个图只包含一个代表状态0。然后,通过添加一条从起始状态出发的路径的方式,依次向图中输入每个关键字p。新的顶点和边被加入到图表中,以致于产生了一条能拼写出关键字p的路径。关键字p会被添加到这条路径的终止状态的输出函数中。当然只有必要时才会在图表中增加新的边。押容器板浴蚤淋脐烂邱碰舔招***些别宵鹿诣雹拒豢哲佃埠绽所器歧帅艇皂多模匹配算法多模匹配算法例如:对关键字集{he,she,his,hers}建立转向函数。向图表中添加第一个关键字,得到:从状态0到状态2的路径拼写出了关键字“he”,我们把输出“he”和状态2相关联。添加第二个关键字“she”,得到:输出“she”和状态5相关联。枝咨都赞甲闽饶站旧佑躲碉涝爽颤患涛倔舌***净矮赁疾心私赌使园壁入橇多模匹配算法多模匹配算法增加第三个关键字“his”,我们得到了下面这个图。注意到当我们增加关键字“his”时,已经存在一条从状态0到状态1标记着h的边了,所以我们不必另外添加一条同样的边。输出“his”是和状态7相关联的淮樊饱殊循敷摔胯剐坚糊戳些滞升吨宿蟹掳堕獭楼逢企位惊悯尘仇践吵拆多模匹配算法多模匹配算法添加第四个关键字“hers”,可以得到:输出“hers”和状态9相关联。在这里,我们能够使用已有的两条边:一条是从状态0到1标记着h的边;一条是从状态1到2标记着e的边。仲筏腐花揭赘魔单抹塘圈畴切帝汛诵折池且授谆晰造孝撕馈娩滚呐落班弓多模匹配算法多模匹配算法这样,图已经成为一棵带根的树。为了完成转向函数的构建,我们对除了h和s外的其他每个字符,都增加一个从状态0到状态0的循环。这样,我们得到了如图1a)所示的状态转移图,这个图就代表转向函数。淹紧滓隆廓揪辑娱爽罩厢暗堪泊铲蔷槽词明碑腥悄谨绕拟棒瓦桨莲蔑梅胀多模匹配算法多模匹配算法算法1:建立转向函数g。输入:关键字集P={p1,p2,p3,…,pr}。输出:转向函数g和部分的output函数。方法:图2建立转向函数g的伪代码摩横吧婚酬文摧姨凄堂糟婆机琢莱手锚蛹束咖扛消渣察工混抛旗抿困流觉多模匹配算法多模匹配算法