⚡ 专为低配置服务器设计

sensitive-lite
轻量级敏感词过滤组件

基于 Go 语言的高性能敏感词检测引擎。10 万敏感词约 51MB 内存,支持 14 种反清洗识别,Contains 并发 230 万 ops/s 无锁读取。

~51 MB
10 万词运行时内存
230万
ops/s Contains 并发
14 种
反清洗识别策略
100%
反清洗准确率

为什么选择 sensitive-lite?

专为低配置服务器优化,减少 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,所有读操作无锁并发安全。

14 种反清洗识别

覆盖零宽字符、形近字替换、同音字替换、全角半角变体、西里尔/希腊同形字母、Emoji 干扰、Leet Speak、CJK 重复压缩、数学字母标准化等全方位反制策略。

12 项功能选项

Fuzzy 反清洗、Leet Speak 映射、CJK Dedup 压缩、自定义替换字符、最大词长限制、懒构建、自定义日志器、溯源追踪、告警回调等全可配置。

自动降级与恢复

智能降级 CheckMemoryAndDegrade:内存低时自动关闭反清洗,恢复后自动恢复反清洗功能。MaxMemoryMB=0 关闭自动降级。

100% 反清洗准确率

1200+ 条混淆字符映射关系,覆盖数字、拉丁字母、中文汉字全系列变体。所有反清洗场景通过全量测试验证,零误杀、零漏报。

MIT 协议开源

完全免费商用,不内置任何敏感词库(由开发者自行维护)。社区活跃,持续迭代更新,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+ 大小写字母映射
Emoji / 符号干扰 敏😊感🎉词 → 敏感词 9 个 Emoji 范围过滤
标点符号夹杂 敏,感。词 → 敏感词 中英文标点剥离
Leet Speak 映射 h3llo → hello 数字/符号 → 字母
CJK 重复压缩 敏敏敏感词 → 敏感词 连续同字符去重
数学字母标准化 𝐇𝐞𝐥𝐥𝐨 → hello U+1D400-U+1D7FF 映射
组合变音标记剥离 é → e Unicode 组合标记剥离

性能基准测试

实测环境:Intel i7-12800HX / Go 1.22,10,000 词库 + 反清洗。

💾 多规模内存占用

词库规模分配内存每万词
6 万词31.9 MB5.3 MB
10 万词50.9 MB5.1 MB
14 万词76.1 MB5.4 MB
v3.2 字段开销每节点 +18B(~10%)

📡 操作吞吐量(1 万词)

操作ops/s延迟
FindAll(精确)45,00022.1 µs
FindAll(反清洗)38,00026.1 µs
Contains311,0003.2 µs
Contains 并发2,300,000434 ns

5 分钟快速接入

Go 1.21+ 即可运行,一行命令安装,一行代码创建过滤器。

go get github.com/sensitive-lite/sensitive-lite

Go
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 种策略全面覆盖常见绕行手段。

企业级内容安全网关

内置溯源追踪、告警回调、自动降级机制,无缝集成钉钉/飞书/企业微信告警系统,满足企业级运维要求。

准备好为你的服务接入内容过滤了吗?

MIT 协议开源,完全免费商用。Go 1.21+ 一行命令即可安装。

↗ 前往 GitHub 仓库