敏感词字库匹配其实是关键字的一种匹配。最简单想到的额方法就是,如果要匹配某个字符串,去遍历敏感字库,这是最简单粗暴的方式。但是很明显当字库很大时,比如有六十万条数据,那么这样一个字库去遍历是非常耗时的。那么就需要我们去通过数据结构去优化匹配的方式。
暴力法
直接对敏感词库进行遍历,意义对比,去全字匹配。
利用字典优化的方式
核心思想,就是利用关键字去搜索。定义字典或者hashtable,kye是铭感词的首字符例如“粉”,val是所有以“粉”为首字符的敏感词组成的一个链表。这样处理之后,我们去搜索一个敏感词的时候,首先判断字典里有没有这个key,没有就直接结束,有就去遍历这个key对应的value,这样处理之后,每个敏感词可能只需要搜索几次,就能比对完,非常快。
效果
我们在入口函数里面跑一下,测试一下匹配效率。