[发明专利]一种基于改进BM算法与后缀数组的冗余字段过滤方法有效
| 申请号: | 201811318116.4 | 申请日: | 2018-11-07 |
| 公开(公告)号: | CN109460495B | 公开(公告)日: | 2022-05-10 |
| 发明(设计)人: | 朱丹;张坤;邢苏霄;章东润;张熠;徐晓丽 | 申请(专利权)人: | 南京烽火星空通信发展有限公司 |
| 主分类号: | G06F16/9032 | 分类号: | G06F16/9032 |
| 代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 杨海军 |
| 地址: | 210019 江苏省南京市建*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 改进 bm 算法 后缀 数组 冗余 字段 过滤 方法 | ||
本发明涉及一种基于改进BM算法与后缀数组的冗余字段过滤方法,针对现有技术的不足,设计引入改进型BM算法,通过增大模式串的移动距离,减少移动匹配的次数,由此提高匹配效率,极大地提高冗余字段的过滤效率,尤其针对中文环境的字符冗余过滤处理上,能够大大提高冗余字段过滤效率。
技术领域
本发明涉及一种基于改进BM算法与后缀数组的冗余字段过滤方法,属于模式识别与数据清洗技术领域。
背景技术
随着大数据时代的到来以及互联网的普及,网络上每天都会产生海量的数据。这其中,文本数据占据很大的一个比重。因为缺少格式化的规约以及用户自我输入的随意性,造成网络上的文本数据质量往往不高,这类数据一般被称为“脏数据”,这在数据采集过程中是很常见的现象。为了得到较高质量的数据,可以通过数据清洗技术对“脏数据”进行清洗,本发明主要针对“冗余字段”的清洗工作提出一种高效快速的过滤方法。
为了实现上述功能,需要两个步骤:1)确定最大冗余字段;2)定位最大冗余字段。以上步骤分别涉及到字符串的处理与模式匹配两个技术。
最大冗余字段其实就是不可重叠的最长重复子串,一般有三个方法可以用来计算最大冗余字段:蛮力法、后缀树与后缀数组。蛮力法因为效率问题不予考虑,而后缀树因为代码实现复杂度高也不推荐。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树更加容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。所以本发明采用后缀数组来确定最大冗余字段。
现有的模式匹配算法主要有前缀匹配算法KMP(Kunth-Morris-Pratt)和BM(Boyer-Moore) 算法。KMP算法采用从左至右的匹配方式,通过一个辅助函数跳过失配串,以实现优化。在字符失配时,取消机械的从头比对的方式,而是依据之前的检测信息进行计算,直接跳过不必要的检测,从而减少冗余。BM算法在进行模式串比对时,采用从右至左的方式,当发现不匹配时,将模式串向右移动。BM算法不需要对文本串中的字符进行逐一比较,而会跳过其中的某些部分,对于每一次匹配失败,BM算法都能使用失败信息来排除尽可能多的无法匹配的位置。BM算法与KMP算法相比,匹配效率明显提高,但其仍有缺陷。BM算法需要做坏字符和好后缀的预处理。其中,好后缀的预处理开销较大,当模式串很长时,会影响匹配的性能。
发明内容
本发明所要解决的技术问题是提供一种基于改进BM算法与后缀数组的冗余字段过滤方法,通过增大模式串的移动距离以提高BM算法的匹配效率,进而提高字符串冗余字段过滤的应用效率。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于改进BM算法与后缀数组的冗余字段过滤方法,用于实现对目标文本的过滤,包括如下步骤:
步骤A.获得目标文本所对应的字符串S,然后进入步骤B;
步骤B.根据字符串S的长度I,获得字符串S所对应的各个后缀Suffix(i),其中,1≤i≤I, i表示字符串S中各字符的序号,Suffix(i)表示字符串S中、由第i个字符至末尾字符所构的后缀,然后进入步骤C;
步骤C.针对I个后缀Suffix(i)进行大小比较,并从小至大进行排序,获得各后缀的排序,然后进入步骤D;
步骤D.针对排序各后缀,依序获得两两后缀之间的最长公共前缀,然后进入步骤E;
步骤E.针对排序各后缀,基于依序、相邻两后缀不属于同一字符串后缀,获得各个最长公共前缀中的最小值,即为目标文本中最大冗余字符子串,然后进入步骤F;
步骤F.以目标文本所对应字符串S作为主串,目标文本中最大冗余字符子串作为模式串,查找主串中与模式串相匹配的第一个子串,并从主串中删除该子串,更新获得主串,即为目标文本过滤结果;
上述步骤F包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京烽火星空通信发展有限公司,未经南京烽火星空通信发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811318116.4/2.html,转载请声明来源钻瓜专利网。





