主题
敏感词过滤
基于 mint-filter(AC 自动机算法)实现的高性能敏感词过滤。内置 18 万+ 敏感词库(来自 houbb/sensitive-word)。
算法说明
AC 自动机(Aho-Corasick)是在 Trie 树基础上增加了失败指针的多模式匹配算法,扫描文本一次即可找出所有敏感词,时间复杂度 O(n)。比正则匹配快数十倍,比普通 DFA 更高效。
词库架构
| 文件 | 说明 | 维护方式 |
|---|---|---|
resources/sensitive-dict-dict.txt | 主词库(18 万+词) | 从 houbb/sensitive-word 下载,不手动修改 |
resources/sensitive-words.txt | 自定义补充词库 | 手动编辑,重启后生效 |
启动时加载:主词库 + 自定义词库 → 去重 → 构建 AC 自动机。
敏感词检测
- 方法:
GET - 路径:
/api/web/tools/sensitive-check
检测文本中是否包含敏感词,返回命中的敏感词列表。
请求参数 (Query)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
text | string | 是 | 待检测文本 |
请求示例
bash
GET /api/web/tools/sensitive-check?text=这个代开发票的信息是垃圾响应示例
json
{
"code": 200,
"data": {
"text": "这个代开发票的信息是垃圾",
"hasSensitive": true,
"count": 4,
"words": ["代开", "代开发票", "信息", "垃圾"]
},
"message": "success"
}GET在线测试
敏感词过滤
- 方法:
GET - 路径:
/api/web/tools/sensitive-filter
将文本中的敏感词替换为掩码字符(默认 *)。
请求参数 (Query)
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
text | string | 是 | — | 待过滤文本 |
mask | string | 否 | * | 掩码字符(每个敏感字符替换为一个掩码) |
请求示例
bash
GET /api/web/tools/sensitive-filter?text=这个代开发票的信息是垃圾&mask=*响应示例
json
{
"code": 200,
"data": {
"original": "这个代开发票的信息是垃圾",
"filtered": "这个****的**是**",
"count": 4,
"words": ["代开", "代开发票", "信息", "垃圾"]
},
"message": "success"
}GET在线测试
词库说明
主词库来自 houbb/sensitive-word 开源项目,包含 18 万+ 敏感词,涵盖:
| 分类 | 说明 |
|---|---|
| 政治敏感 | 涉政、涉军等 |
| 色情低俗 | 色情、低俗、违禁内容 |
| 暴力恐怖 | 暴力、恐怖、危险品 |
| 诈骗违法 | 诈骗、赌博、毒品、违禁广告 |
| 辱骂脏话 | 辱骂、人身攻击 |
| 其他 | 广告垃圾信息、敏感变体等 |
词库管理
- 补充词库:编辑
resources/sensitive-words.txt,每行一个词,重启后生效 - 更新主词库:重新从 houbb/sensitive-word 下载
dict.txt替换resources/sensitive-dict-dict.txt - 升级引擎:
npm update mint-filter即可获得最新的 AC 自动机优化
