在很多内容系统中,都需要过滤一些敏感词,比如说"fuck you shit up"就要发现里面有"fuck"、"shit"这些脏词。
首先,我们要先了解敏感词过滤的一些特征:
1. 敏感词多,一般成千上万
2. 单词长度有限,一般不会超过10
3. 要过滤的句子长度有限,一般不过1000
通过上面特征,我们粗略的算一下,如果采用暴力匹配方案的话,复杂度将会是1k*10*1k=10^7左右的运算量。
现在再考虑一下,该机制要用在什么样的系统中。如果是一个内容发布平台,每天调用次数有限,比如评论功能,不是特别频繁的,暴力匹配或许是个还不错的方案,因为简单易实现难出错:
是的ÿ