VC++编程实现字符串的近似匹配
- 格式:pdf
- 大小:181.88 KB
- 文档页数:3
i / & l 一一 h n fP q O t e
5 t +一 1
e. MI l s - /& l … 0 5 F 一 0 t PH < < 一 1 1
te h n
( MH << 1 ){~(
Nv H & Xv
I H) P
E d n
图 1 My rt p过 程 的伪 码 e se
31 B M 类 的设计 与 实现 . P
工 程 构 造 一 个 B M 类 用 于实 现 B M 算 法 ,类 的 定 义 代 码 P P
如下 :
# e ie AL HABE SZ 2 6 ∥ 义 字 符集 , 字 节 为 单 位 , d fn P T IE 5 定 以
_
P q [5 】初 始 化 为 0 e 26 ,然 后 根 据 模 式 串 中 出 现 的字 符 进 行 赋 值 。 通 过 预 处理 ,数 组 P q保 存 的 结 果 即可 向量 化 地 描 述 模 式 e
1 引 言
近 似 字 符 串 匹配 指 的是 给 定 一 个 文 本 T [ n,n是 文 本 长 1】 :
度 ,一 个 模 式 P [: ,I 是 模 式 的 长 度 , 以及 容 许 的 最 大 误 1ml l l
23 模 式 近 似 匹配 .
B M 算法 的近 似 匹 配 主 要 采 用 M es p过 程 ,伪 码 如 图 1 P y re t
态 规 划 生 成 矩 阵 的 方 法 。而动 态 生 成 矩 阵与 位 向量 方 法 结 合 的
应 用 较 广 泛 ,其 代 表 算 法 是 B M,这 是 一 种 基 于 动 态 规划 的快 P
速 位 向量 方 法 ,性 能 良好 ,下 面给 出 B M 算法 的 C + 言实 现 。 P +语
式 匹配 的 的 文 本 串 ,n表 示 文 本 串 的 长 度 .P表 示 模 式 匹 配 中 的模 式 串 ,m 表 示 模 式 串 的长 度 。k表 示 模 式 匹 配 中 容 许 的误 差 ,W表 示 计 算 机 的字 长 , 目前 使 用 的计 算 机 字 长 一 般 不 超 过 6 4位 。 为 了便 于 讨 论 ,假设 m w < 。
给 出 了具体 的处 理方 法 。预 处 理 函数 的输 人参 数 是 模 式 串 ptr ae t n,字 符 匹 配 以 字节 为单 位 进 行 ,一 个 字 节 最 多 有 26个 5
字 符 ,用 数 组 P q 【5 ]表 示 。 在 模 式 预 处 理 时 ,先 把 数 组 e 26
字符 馘遮
鬣
张 研 韩 露
摘 要 :介 绍 了经典 的单模 式近 似 匹配算 法— —B M 算 法 ,分析 了算 法 的设 计 思路 及 关键 步 骤 , P
并用 vC +编程 实现 。 + 关 键词 :近 似 匹配 :B M 算 法 P
字 符 都 对 应 一个 位 向量 ,为 后 续 的 匹配 打 下 了基 础 。
信 息 查 询 等许 多 领 域 有 着 广 泛 的 应 用 ,是 当 前 计 算 机 算 法设 计
的重 要 课 题 之 一 。近 似 字 符 串 匹 配 算 法 可 分 为 基 于 动 态 规 划 、
基 于 位 向量 、基 于 过 滤等 几 类 。其 中 ,经 典 算 法 是 一 种 基 于 动
其中经典算法是一种基于动态规划生成矩阵的方法而动态生成矩阵与位向量方法结合的应用较广泛其代表算法是bpm这是一种基于动态规划的快速位向量方法性能良好下面给出bpm算法的c语言实现
…
…
…
…
…
…
…
…
一
…
…
…Hale Waihona Puke ………’…
…
…
…
实用第一 智慧密集
… … … 。 … … …
c+ 程 +
则认 为发 现 一 次 匹 配 。
6 一 《 ∞ . , w M 【 ) 自 s P / , 】 q
B咏 _ m
差 k (< ) 找 出 文 本 T 中满 足 误 差 小 于 k的 所 有 字 符 串 S km, ,
即 e (P < k d S ) = ,其 中 e (,)表 示 字 符 串 S和 P的 距 离 。 , d SP 如今 ,近 似字 符 串 匹配 在 入 侵检 测 、文 件检 索 、文 本过 滤 、
串 。例 如 ,模 式 串为 “ e w r ” k y o ,那 么 根 据 预 处 理 过 程 ,数 组 d P q的 内容 如 下 ,P q [k ]= ,P q 【 e 】= 0 e [y ]= e e ‘ ’ 1 e ‘ ’ 1 ,P q ‘ ’
/ 个 字 节 可 表 示 2 6个 数 / 一 5
3 BP 算 法 的 C + M + 实现
用 C + 言 实 现 B M 算 法 ,并 用 V + 60作 为 开 发 平 台 . +语 P C+.
22 模 式 预 处 理 _
模 式 预 处 理 是 对 模 式 串 P的 每 个 字 符 进 行 处 理 ,文 献 【1 2
设 计 了 一个 基 于对 话 框 的 近 似 匹配 的工 程 。
E —M[ )
XV E }
删
Ⅲ
删
( ( & (
) P ) 十 尸 )lE
l P )
一 Nv I~( 埘
一 PV & 删
2 BP 算 法设 计 M
2 1 符 号 的 定 义 .
为 了便 于描 述 算 法 ,首 先 给 出各 种 符 号 的 定 义 ,t 示 模 表
所 示 。该 过程 用 变量 soe 算 匹配 的误 差 ,soe初 始 值 为 模 cr 计 cr
式 串 P的长 度 m.表 示 匹 配 刚 开始 时无 字 符 与模 式 P匹配 ,误 差 为 m,P v为 全 1 v为 全 0 ,N ,E代 表 文 本 中 的字 符 在 数 组 P q中 对 应 的 向量 。通 过 一 系列 的 向 量 运 算 ,如 遇 到 与 模 式 P e 匹 配 的字 符 ,则 soe减 1 cr ,如 遇 到 与 模 式 P不 匹 配 的 字 符 , 则 s oe 变 或 者 加 1 当 s o < k 即误 差 在 容 许 的 范 围 内 , cr 不 , cr = , e