论文部分内容阅读
模式匹配问题在计算机科学中出现的最早且人们对它的研究也最广泛,随着需要处理的文本规模越来越大,在文本中进行的搜索越来越复杂,模式和文本之间可以有某些细小不同的近似模式匹配问题得到了广泛的应用。但对具有间隙约束的近似模式匹配问题的研究目前尚未成熟,因此,论文针对此问题展开研究和实现。论文将目标问题分成两个方面进行具体的研究以及方法实现。一是字符串的近似匹配问题,二是模式之间存在间隙约束的匹配问题。在字符串的近似匹配方面,论文首先对基本字符串匹配的一些相关知识进行了介绍,包括字符串匹配的概念以及传统字符串匹配的方法。接着对近似串的匹配方法进行了研究,包括:动态规划方法、基于自动机的方法、位并行方法以及基于文本过滤的方法。通过对这四种方法进行研究和对比,本文将动态规划方法作为近似串匹配的主要方法,将编辑距离模型作为衡量字符串相似度的模型,并对编辑距离矩阵的建立以及字符串之间编辑距离的计算进行了方法实现。在具有间隙约束的模式匹配方面,本文首先对文本串进行了预处理,将文本串保存为纯文本文档的形式,利用Lucene对纯文本文档建立倒排索引的方式为文本串中的每个字符串建立索引,这种索引包含了该字符串所有的出现位置及出现次数,然后在索引基础上通过Lucene中SpanNearQuery的搜索机制对具有间隙约束的模式串进行搜索。此方法摒弃了普通顺序方法因文本过大而造成的匹配时间代价高的缺陷,大大提高了匹配效率。最后,论文将此方法和普通的顺序匹配算法进行了对比,在保证相同文本、相同模式和相同匹配结果的情况下,经过大量实验以及对实验结果的分析,得出当文本较大且不易变动时,本算法以合理的空间消耗换取了时间的绝对性缩减,比普通顺序算法有明显的优势。