基于DFA算法的JAVA敏感词过滤服务开发

1.1  简介

        敏感词、文字过滤是一个网站必不可少的功能,如何设计一个好的、高效的过滤算法是非常有必要的,这里介绍一种敏感词过滤算法叫DFA算法在实现文字过滤的算法中,DFA是唯一比较好的实现算法。DFADeterministic Finite Automaton,也就是确定有穷自动机,它是是通过event和当前的state得到下一个state,即event+state=nextstate,通过这种算法可以有效的进行敏感词过滤。

1.2  背景

        现在基本上所有的网站都需要设置敏感词过滤,这似乎已经成了一个网站的标配,如果你的网站没有,或者你没有做相应的处理,那么我们的网站可能因涉嫌有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语等会被封杀,因此,我们系统需要集成开发一个敏感词过滤服务。

1.3  开发思想

 将文本段敏感词替换成特定字符(*)

 DFA实现思路:

   1.采用Map的hash机制,将敏感词单个拆分,以第一个字符为key,其他值依旧使用map相连,想成了大Map套用小Map

   2.遍历需要过滤的字符串获取每一个字符,根据get(key)来检测是否是敏感词

案例中写了两个项目:一个是敏感词存放在txt文本中的项目,另一个是敏感词存放在数据库中的项目,下载地址如下:

项目访问地址:https://github.com/RenPengLiang/myrepository.git

猜你喜欢

转载自blog.csdn.net/weixin_39352976/article/details/104498200