- 6
- 0
- 约1.4千字
- 约 3页
- 2017-06-08 发布于重庆
- 举报
文字过滤算法介绍
文字过滤算法介绍
文字过滤是一般大型网站必不可少的一个功能,而且很多文字类网站更是需要。那么如何设计一个高效的文字过滤系统就是非常重要的了。
文字过滤需求简要描述:判断集合A中哪些子集属于集合B,拿javaeye来说,如果用户发表一篇文章(集合A),我们需要判断这篇文章里是否存在一些关键字是属于集合B,B一般来说就是违禁词列表。
从计算机理论角度看,文字过滤本质上属于字符串多模式精确匹配问题,字符串多模式精确匹配的算法有一些,不过都太过复杂,所以还是需要寻找一个技术实现上简单可行,效率上又比较高的算法。
几种过滤方法介绍
普通过滤
算法描述:将需要过滤的字词组成一个列表,遍历其中的每一个字词,在需要被过滤的文章中查找是否包含这个字词。
结论:这种方式实现简单,每个技术人员基本都可以实现,但问题是效率很低,尤其是在需要过滤的字词数量巨大时,效率会呈线性下降.
正则表达式过滤
算法描述:首先用需要过滤的字词组成一个模式串,然后利用正则表达式匹配需要过滤的文章,最后可以得到匹配结果。
结论:这种方式实现也很简单,基本熟悉正则表达式的技术人员也都可以实现,但也存在效率问题,尤其是效率可能会不稳定。
利用DFA进行过滤:?
DFA简介:
DFA的基本功能是可以通过event和当前的state得到下一个state,即event + state nextstate, 我们来看一张到处都能找到的状态图:
大写字母是状态,小写字母是动作:我们可以看到S+a U,U+a Q,S+b V等等。一般情况下我们可以用矩阵来表示整个状态转移过程:
---------------
状态\字符? a b
S U V
U Q V
V U Q
Q Q Q
但是表示状态图可以有很多数据结构,上面的矩阵只是一个便于理解的简单例子。而接下来在本文提到的文字过滤系统中会使用另外的数据结构来实现自动机模型
文字过滤:
在文字过滤系统中,为了能够应付较高的并发,有一个目标比较重要,就是尽量的减少计算,而在DFA中,基本没有什么计算,有的只是状态的转移。而要把违禁文字列表构造成一个状态机,用矩阵来实现是比较麻烦的,下面介绍一种比较简单的实现方式,就是树结构。
所有的违禁词其本质来说是有ascii码组成的,而待过滤文本其本质也是ascii码的集合,比如说:
输入是A [101,102,105,97,98,112,110]
违禁词列表:
[102,105]
[98,112]
那么我们的任务就是把上面两个违禁词构造成一个DFA,这样输入的A就可以通过在这个DFA上的转移来实现违禁词查找的功能。
树结构实现这个DFA的基于的基本方法是数组的index和数组value之间的关系(在双数组trie中同样是基于这一基本方法)
那么102其实可以看作一个数组索引,而105是102这个索引指向的下一个数组中的一个索引,105后面没有值了,那就代表这个违禁词结束了。
通过这样一种方式,就可以构造出一颗DFA的树结构表示。
接着遍历输入文本中的每一个byte,然后在DFA中作状态转移就可以判断出一个违禁词是否出现在输入文本中。
结论:本来DFA也比较复杂,不过上面的这种实现方式还算是比较简单,而最大的优点就是效率高,利用这种方式,效率比普通的过滤方式甚至可以调高10倍。
您可能关注的文档
- 文化生活主观题解答方法.doc
- 文化的本质(短).doc
- 文化经济教研室2013-2014寒假作业.doc
- “家乡的春节”研究性学习课例.ppt
- 文化艺术中心电梯合同.doc
- 文化艺术传承学校申报表.doc
- 文化融合与文明冲突(上)赵林.doc
- 文化艺术品权益份额资产包.doc
- “成人” = 年龄 35岁成人急性淋巴细胞白血病背景儿童ALL.ppt
- 文化部门标语口号.doc
- 2026年预防为主,生命至上安全培训课件.pptx
- 2026年三级安全教育.pptx
- 2026年检测业务安全培训.pptx
- 2026年消防动火培训.pptx
- 2026年重大事故隐患专项排查整治行动清单.pdf
- 2026年健康义普急救.pptx
- 2025—2026学年度四川省广元市苍溪县九年级上学期期末考试历史试题(含答案).docx
- 2025—2026学年度四川省泸州市合江县马街中学校九年级上学期期末历史试题(含答案)(九上_九下第二单元).docx
- 2025—2026学年度云南省曲靖市宣威市民族中学等校联考九年级上学期期末模拟历史试题(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
最近下载
- 数据结构与算法(Java版)第5版叶核亚习题答案.docx VIP
- 关于兵团的面试题及答案.doc VIP
- 论汉代画像石中的动物造型之美.docx
- 2025年益阳职业技术学院单招职业适应性考试题库(各地真题).docx VIP
- 2025年韶关马市镇招聘党群服务中心专职人员考试笔试试题(含答案).pdf VIP
- LY/T 2289-2018 林木种苗生产经营档.案.pdf
- 人教版数学七年级上册第5章一元一次方程的题型举一反三(解析版+原卷版).docx VIP
- 秋梨润肺膏(修改)幻灯片.ppt VIP
- 中国国家标准 GB/T 46954-2026花卉扦插繁殖技术规程.pdf
- 实验一 数据库定义实验.docx VIP
原创力文档

文档评论(0)