敏感词检测工具

敏感词检测工具

一个本地运行的敏感词检测工具,用于对文本内容做快速扫描和风险提示。

2026/4/19word敏感词

sensitive-word-checker 用户说明书

github仓库地址: https://github.com/Ztachi/strawberrybear-tools/tree/main/apps/sensitive-word-checker

目录

1. 产品简介

sensitive-word-checker 是一个本地运行的敏感词检测工具,用于对文本内容做快速扫描和风险提示。

它的核心特点是:

  • 扫描在浏览器本地完成,不依赖服务端处理文本内容
  • 支持 GitHub 远程词库同步,也支持手动导入本地 .txt 词库
  • 支持高风险、中风险、低风险三档结果高亮
  • 支持 PC 和移动端浏览器使用

适合场景:

  • 内容发布前自检
  • 文案审核前预筛查
  • 自建词库的本地敏感词巡检
  • 针对不同业务源切换或组合词库进行对比扫描

2. 功能概览

当前版本提供以下能力:

  • 文本输入扫描:直接粘贴或输入待检测文本
  • 文本文件导入:支持导入 .txt 文件作为待检测内容
  • 词库同步:从 GitHub 仓库同步词库到本地
  • 词库管理:新增、编辑、启用、停用、删除自定义词库
  • 本地词库导入:导入本地 .txt 词库到“自己导入”词库
  • 风险分级展示:按高 / 中 / 低风险显示命中结果
  • 结果复制:将检测报告复制到剪贴板
  • 扫描设置:支持区分大小写、忽略标点
  • 本地持久化:词库保存在浏览器 IndexedDB,设置保存在 localStorage

3. 界面说明

首页主要分为四个区域:

3.1 顶部栏

  • 左侧 Logo:点击后跳转主站
  • 主站按钮:跳转工具详情页或主站入口
  • 语言切换:支持中文和英文
  • 设置按钮:打开扫描设置弹窗

3.2 待检测文本区

  • 文本输入框:粘贴或输入待检测文本
  • 扫描按钮:启动检测
  • 导入文件按钮:将本地 .txt 内容读入输入框
  • 字符统计:显示当前输入内容的字符数

3.3 词库管理区

  • 显示当前已加载词条总数
  • 点击“词汇管理”打开词库管理弹窗
  • 支持同步远程词库、导入本地词库、添加自定义 GitHub 词库

3.4 检测结果区

  • 显示扫描结果和风险统计
  • 未检测前显示空状态提示
  • 无命中时显示“未发现敏感词”
  • 有命中时按风险等级高亮原文中的命中位置
  • 支持点击风险标签筛选显示效果
  • 支持复制结构化检测报告

4. 首次使用流程

第一次打开应用时,建议按下面流程操作:

步骤 1:打开词汇管理

点击首页中的“词汇管理”按钮,进入词库管理弹窗。

步骤 2:同步默认词库

系统会内置一个默认词库源:

  • 名称:Sensitive-lexicon
  • 来源:GitHub 仓库 konsheng/Sensitive-lexicon

首次使用时,这个默认词库只是预置了来源信息,尚未真正拉取词条内容。你需要在词库管理表格中手动执行一次“同步”。

同步成功后:

  • 词条会保存到当前浏览器本地数据库
  • 首页词条总数会更新
  • 之后刷新页面仍可继续使用,不需要每次重新同步

步骤 3:输入待检测文本

回到首页,在“待检测文本”区域:

  • 直接粘贴文本
  • 或点击“导入文件”载入本地 .txt 文件内容

步骤 4:点击扫描

点击“扫描”按钮,等待结果展示。

如果词库为空,系统会提示“词库为空”,此时需要先完成词库同步或导入。

5. 如何管理词库

5.1 默认词库

默认词库是系统内置的 GitHub 词库源,特点如下:

  • 不能删除
  • 不能编辑
  • 默认启用
  • 可以手动同步更新

当远程词库更新后,你可以重新执行同步,系统会用新的内容替换该词库现有数据。

5.2 新增自定义 GitHub 词库

如果你有自己的 GitHub 词库仓库或目录,可以这样添加:

  1. 打开“词汇管理”弹窗
  2. 点击“新增词汇库”
  3. 填写词库名称
  4. 填写 GitHub 地址
  5. 提交保存
  6. 回到列表后执行“同步”

支持的地址形式:

  • 普通 GitHub 仓库地址
  • GitHub 仓库某个目录的地址
  • GitHub Contents API 地址

注意事项:

  • 目前仅支持 GitHub 地址
  • 名称不能重复
  • GitHub 词库地址不能重复
  • 新增后不会自动下载,仍需手动同步一次

5.3 编辑自定义 GitHub 词库

对于你自己新增的 GitHub 词库,可以修改:

  • 名称
  • GitHub 地址

修改后建议重新同步一次,确保词条内容与最新地址一致。

5.4 启用或停用词库

除默认词库外,其他词库都可以启用或停用。

启用状态会影响扫描时是否参与匹配:

  • 启用:参与检测
  • 停用:保留在本地,但不参与检测

这适合做不同词库组合的对比测试。

5.5 删除词库

删除词库时,系统会同时删除该词库下的全部词条。

请注意:

  • 默认词库不可删除
  • 删除操作不可恢复

5.6 清空全部词库内容

点击词库区域中的清空按钮后,系统会清空本地保存的全部词条。

清空后:

  • 词条数量会归零
  • 现有词库配置项仍可能保留在列表中
  • 如需继续使用,需要重新同步或重新导入

6. 如何导入本地词库

在词库管理弹窗中点击“导入文件”,可以将本地 .txt 文件导入到“自己导入”词库。

导入规则:

  • 支持 .txt 文件
  • 导入内容会追加到“自己导入”词库
  • 不会覆盖其他 GitHub 词库
  • 已存在的同一条记录不会重复新增

适合场景:

  • 临时补充业务私有词
  • 离线导入内部维护的词库文件
  • 与远程词库组合使用

7. 词库文件格式说明

7.1 推荐格式

每行一个词条,推荐使用:

词语|等级|类型

例如:

诈骗话术|high|诈骗
擦边内容|medium|低俗
测试词|low|自定义

7.2 兼容格式

也支持只有词语本身:

测试词
另一个测试词

7.3 注释行

# 开头的行会被忽略:

# 这是注释
敏感词示例

7.4 风险等级识别规则

风险等级在导入或同步词库时确定,不是在扫描时动态计算。

优先级如下:

  1. 先按文件名关键词推断风险等级
  2. 如果文件名没有命中,再读取每行中的“等级”字段
  3. 如果仍无法识别,默认按 medium 处理

当前支持的等级映射包括:

  • 高风险:highh1高风险严重critical
  • 中风险:mediummidm2中风险一般
  • 低风险:lowl3低风险轻微

8. 如何进行文本扫描

8.1 直接输入文本

在首页文本框中输入或粘贴要检测的内容,然后点击“扫描”。

8.2 通过文件导入文本

点击“导入文件”,选择本地 .txt 文件后,文件内容会自动填入输入框。随后点击“扫描”即可。

8.3 扫描前提

扫描前必须满足:

  • 输入框中有文本内容
  • 当前至少存在一个已启用且已加载完成的词库

否则系统不会执行扫描。

8.4 扫描方式

扫描在 Web Worker 中执行,目的是避免大量文本匹配时阻塞页面交互。对用户来说,这意味着:

  • 扫描过程中界面仍可保持响应
  • 大文本场景下体验更稳定

9. 如何理解检测结果

9.1 风险颜色说明

  • 高风险:红色高亮
  • 中风险:橙色高亮
  • 低风险:绿色高亮

9.2 风险统计

结果面板顶部会显示命中统计,包括:

  • 总命中数
  • 高风险命中数
  • 中风险命中数
  • 低风险命中数

点击对应风险标签,可以切换该风险等级是否高亮显示。

9.3 Tooltip 信息

将鼠标悬停到高亮词上,可以查看:

  • 风险等级
  • 风险类型

9.4 复制结果

点击“复制结果”后,系统会生成一份结构化文本报告,内容包括:

  • 各风险等级的命中词汇汇总
  • 原始文本内容

适合用于人工复核、提交给审核人员或留档。

10. 设置项说明

点击右上角设置按钮,可以打开“扫描设置”。

10.1 区分大小写

开启后:

  • ABCabc 会被视为不同内容

适用于英文词条或大小写敏感的识别场景。

10.2 忽略标点符号

开启后:

  • 扫描时会跳过标点字符进行匹配

适用于需要识别“插入符号规避”的文本场景。

设置会自动保存在当前浏览器本地,下次打开页面仍然有效。

11. 数据与隐私说明

本工具当前是本地运行模式,主要数据行为如下:

  • 待检测文本:在浏览器本地处理
  • 词库数据:保存在浏览器 IndexedDB 中
  • 扫描设置:保存在浏览器 localStorage 中
  • 远程请求:仅在你主动同步 GitHub 词库时访问 GitHub API / 文件地址

这意味着:

  • 关闭页面后,本地词库和设置通常仍会保留
  • 更换浏览器、清空浏览器站点数据或使用无痕模式,可能导致本地数据丢失

12. 常见问题

12.1 为什么点击扫描没有结果?

请依次检查:

  • 是否已输入待检测文本
  • 是否至少同步或导入过一个词库
  • 是否有词库被误停用

12.2 为什么提示“词库为空”?

说明当前没有任何已加载词条。常见原因:

  • 第一次使用但还没同步默认词库
  • 清空过全部词库后未重新同步
  • 当前启用的词库中没有词条

12.3 为什么新增词库后还是扫不出来?

新增 GitHub 词库只会保存来源信息,不会自动下载内容。新增后还需要手动执行一次“同步”。

12.4 为什么切换浏览器后词库没了?

词库保存在当前浏览器本地,不会自动跨浏览器同步。

12.5 为什么同步失败?

优先检查:

  • GitHub 地址是否正确
  • 目标仓库或目录是否可公开访问
  • 当前网络是否可访问 GitHub

12.6 本地导入会覆盖以前的数据吗?

不会覆盖其他词库。导入内容会进入“自己导入”词库,并以追加方式写入;已存在的同一条记录不会重复新增。

13. 推荐使用顺序

如果你是第一次正式使用,建议按这个顺序操作:

  1. 打开词汇管理
  2. 同步默认词库
  3. 根据业务需要新增远程词库或导入本地词库
  4. 检查哪些词库处于启用状态
  5. 粘贴文本或导入待检测文件
  6. 根据需要调整扫描设置
  7. 执行扫描并复制结果

按照这个流程,基本可以覆盖大多数日常使用场景。