超低内存占用
v3.2 加载 10 万敏感词约 51MB 运行时内存(含 AC 失效链接 + ASCII 直索引)。纯中文节点零额外开销,每万词约 5.1 MB,256MB 服务器可稳定运行。
基于 Go 语言的高性能敏感词检测引擎。10 万敏感词约 51MB 内存,支持 14 种反清洗识别,Contains 并发 230 万 ops/s 无锁读取。
专为低配置服务器优化,减少 42% 内存占用,无锁并发保障高吞吐。
v3.2 加载 10 万敏感词约 51MB 运行时内存(含 AC 失效链接 + ASCII 直索引)。纯中文节点零额外开销,每万词约 5.1 MB,256MB 服务器可稳定运行。
DFA + Aho-Corasick 混合匹配引擎,Contains 并发 230 万 ops/s,单次延迟仅 434 ns。FindAll 27.9 万 ops/s,所有读操作无锁并发安全。
覆盖零宽字符、形近字替换、同音字替换、全角半角变体、西里尔/希腊同形字母、Emoji 干扰、Leet Speak、CJK 重复压缩、数学字母标准化等全方位反制策略。
Fuzzy 反清洗、Leet Speak 映射、CJK Dedup 压缩、自定义替换字符、最大词长限制、懒构建、自定义日志器、溯源追踪、告警回调等全可配置。
智能降级 CheckMemoryAndDegrade:内存低时自动关闭反清洗,恢复后自动恢复反清洗功能。MaxMemoryMB=0 关闭自动降级。
1200+ 条混淆字符映射关系,覆盖数字、拉丁字母、中文汉字全系列变体。所有反清洗场景通过全量测试验证,零误杀、零漏报。
完全免费商用,不内置任何敏感词库(由开发者自行维护)。社区活跃,持续迭代更新,Go 1.21+ 即可运行,零外部依赖。
11 步标准化流水线,覆盖中国互联网常见文本干扰手段。所有策略可独立开关,按需灵活组合。
ZWSP / ZWNJ / BOM / LRM / RLM
10+ 种不可见字符
敏 感 词 / 敏\n感\n词
空格、制表符、换行符
HELLO → hello
全角字母数字 → 半角
HeLLo → hello
Unicode ToLower
曰本人 → 日本人
200+ 组中文形近字
克 → 可 / 滴 → 的
50+ 组常见同音字
亻→ 人 / 氵→ 水
20+ 组偏旁映射
в → b / ν → v / р → p
40+ 大小写字母映射
敏😊感🎉词 → 敏感词
9 个 Emoji 范围过滤
敏,感。词 → 敏感词
中英文标点剥离
h3llo → hello
数字/符号 → 字母
敏敏敏感词 → 敏感词
连续同字符去重
𝐇𝐞𝐥𝐥𝐨 → hello
U+1D400-U+1D7FF 映射
é → e
Unicode 组合标记剥离
实测环境:Intel i7-12800HX / Go 1.22,10,000 词库 + 反清洗。
| 词库规模 | 分配内存 | 每万词 |
|---|---|---|
| 6 万词 | 31.9 MB | 5.3 MB |
| 10 万词 | 50.9 MB | 5.1 MB |
| 14 万词 | 76.1 MB | 5.4 MB |
| v3.2 字段开销 | 每节点 +18B(~10%) | |
| 操作 | ops/s | 延迟 |
|---|---|---|
| FindAll(精确) | 45,000 | 22.1 µs |
| FindAll(反清洗) | 38,000 | 26.1 µs |
| Contains | 311,000 | 3.2 µs |
| Contains 并发 | 2,300,000 | 434 ns |
Go 1.21+ 即可运行,一行命令安装,一行代码创建过滤器。
go get github.com/sensitive-lite/sensitive-lite
package main import ( "fmt" sensitive "github.com/sensitive-lite/sensitive-lite" ) func main() { // 1. 准备自定义敏感词库(组件不内置任何词库,由开发者自行维护) words := []string{"敏感词", "违规", "广告"} // 2. 创建过滤器(反清洗识别默认开启,无需额外配置) filter := sensitive.New(words) // 3. 查找所有敏感词(含反清洗识别,自动标准化文本) matches := filter.FindAll("敏 感 词 检测") for _, m := range matches { fmt.Printf("敏感词: %s, 位置: [%d, %d), 类型: %s\n", m.Word, m.Start, m.End, m.Type) } // 4. 替换敏感词为 *** result := filter.Replace("这是一条包含敏感词的内容") fmt.Println(result.Text) // 这是一条包含***的内容 }
从轻量级边缘计算到大规模云服务,sensitive-lite 均可胜任。
树莓派、轻量云主机(256MB 内存)上稳定运行,10 万词库无压力。内存自动降级机制确保极端环境不 OOM。
UGC 评论/帖子/聊天消息实时过滤。无锁并发设计支撑每秒数十万次请求,单机即可承载大规模流量。
反制用户通过零宽字符、全角变体、同音字、西里尔同形等方式绕过敏感词检测,14 种策略全面覆盖常见绕行手段。
内置溯源追踪、告警回调、自动降级机制,无缝集成钉钉/飞书/企业微信告警系统,满足企业级运维要求。