DFA算法实现敏感词过滤

基于网上各路大神的复制粘贴的帖子,转载转载再转载的帖子,基本上先体会思想就完事了。

基本上就是两个重点,构建词库,将带有敏感词的文本与敏感词库进行比对。其他的什么特殊字符什么的都不是重要的。

懂的自然懂~

主要说一下构建词库要点:

1.一棵树

在实现文字过滤的算法中,DFA是唯一比较好的实现算法。DFA即Deterministic Finite Automaton,也就是确定有穷自动机,它是是通过event和当前的state得到下一个state,即event+state=nextstate。

简单来说,你想过滤几个词 :垃圾,垃圾了,垃圾分类,狗子。得到的模型如下

所以,无非是map里存map。当我们将每个敏感词拆成一个一个的字,将其做成树状结构,并在构建的时候加状态(这个状态是用来判断它是否还存子map),共用相同的字,例如,垃圾,垃圾了,垃圾分类,在一级的map中就存在相同key,二级也存在相同的key,以此类推。

2. 比对敏感词库

同样的,将文本与敏感词库对比,也是讲文本拆成一个一个的字进行比对,只要进了树,或者说文本的一个字在map里get到了值,同样,文本的第二个字在第一个的二级map里也get到了值,那么,你说他算不算敏感词?就比如,你是个程序员,一不会算法,二不会学习,那么你是不是一个很水的程序员?答案是肯定的。光打嘴炮不写代码的程序员,水不水也是一定的。手动狗头。

问我要代码?请参考上一个问号。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值