对DFA算法的敏感词过滤的理解

DFA算法(全名:Deterministic Finite Automaton)即有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。但不同于不确定的有限自动机,DFA中不会有从同一状态出发的两条边标志有相同的符号。

通过上图我们可以很清晰的了解到DFA算法在数据检索中能够大大的提升检索效率,所以这种算法也被经常用于敏感词的过滤。下面我们了解下如何通过DFA算法过滤敏感词。

我们假设某用户输入了发布了一条信息。“XXX你个王八羔子,有好事也不说。”那么系统要做到对“王八羔子”的过滤二不是对“王八”的匹配,首先我们要把敏感词的合集,一般是一个TXT文件生成SensitiveMap如下图所示:

以上内容是个人对DFA算法的理解,如果您有更深的了解,欢迎在评论区留言。