快速敏感词过滤
即将停止和移除(本项目计划于1月31日停止和移除)
本项目计划于1月31日停止和移除,请谅解,谢谢。推荐以AC自动机替代
性能概述
使用60MB大小的小说测试,单核性能超过50M字符每秒(i7 2.3GHz)。
敏感词 14553 条
待过滤文本共 599254 行,30613005 字符。
过滤耗时 0.535 秒, 速度为 57220.6字符/毫秒
其中 39691 行有替换
优化方式
主要的优化目标是速度,从以下方面优化:
敏感词都是2个字以上的,
对于句子中的一个位置,用2个字符的hash在稀疏的hash桶中查找,如果查不到说明一定不是敏感词,则继续下一个位置。
2个字符(2x16位),可以预先组合为1个int(32位)的mix,即使hash命中,如果mix不同则跳过。
StringPointer,在不生成新实例的情况下计算任意位置2个字符的hash和mix
Str
2021-08-21 15:01:01
122KB
Java
1