敏感词过滤
敏感词过滤功能在很多地方都会用到,理论上在Web应用中,只要涉及用户输入的地方,都需要进行文本校验,如:IM消息、XSS校验、SQL注入检验、敏感词过滤等。今天着重讲讲如何优雅高效地实现敏感词过滤。敏感词过滤在IM消息、社区发帖、网站检索、短信发送等场景下是很常见的需求,尤其是在高并发场景下如何实现敏感词过滤,都对过滤算法提出了更高的性能要求,几种常见的敏感词过滤方案对比如下:
| 维度 | 暴力循环 | Trie树 | AC自动机 |
| 时间复杂度 | O(n×m) | O(L) | O(n) |
| 空间占用 | O(1) | 高(GB级) | 高(需失败指针) |
| 适用规模 | ≤100词 | ≤10万词 | ≥10万词 |
- 暴力循环 → Trie树:解决前缀共享问题
- Trie树 → AC自动机:通过状态转移消除回溯,引入失败指针实现多模式并行匹配
参考文章:https://mp.weixin.qq.com/s/WlSjXgkoQ13SOnPlflJPlQ


浙公网安备 33010602011771号