5.3 KiB
5.3 KiB
初始敏感词库整理说明
整理日期:2026-09-17。目标文件:apps/api/src/config/text-filter.dictionary.json。
这是万界道友对社区词库的筛选修改版,不是上游完整词库。初始版本共 522 条屏蔽词,例外词暂为空。词条按原有底量、来源类别的顺序排列;运行时仍只有一个全局屏蔽列表,不增加分类配置或外部依赖。
来源与选择
| 来源 | 本次定位 | 许可 |
|---|---|---|
| fwwdn/sensitive-stop-words | 主来源,政治、色情和广告文件分类明确,体量适合逐项筛选 | Apache-2.0 |
| konsheng/Sensitive-lexicon | 从指定分类补充涉政事件、表达和组织名变体 | MIT |
| houbb/sensitive-word-data | 已考察;项目介绍有 6W+ 词库,与 sensitive-word 配套。本次没有导入 | 项目声明 Apache-2.0 |
固定来源版本,避免后续上游变更影响本次记录:
- fwwdn:
a7d06bb1c321e669943b6841570d9da6dad8ce2b。 - Konsheng:
d967c30b053fa40b06c5a0dddf0be493f2dfae46。 - 逐项来源清单 保存原文件路径、固定版本链接、原始文件 SHA-256、选入和排除词条。它仅用于追溯本次初始化,不参与运行时加载;后续手工调整以 Git 历史为准。
上游 README 的更新和覆盖描述不等于准确率承诺。所检查的政治词条有较多历史人物与旧事件;其中 Sensitive-lexicon/Organized/政治类型.txt 为空,实际采用的是 Vocabulary 下的指定文件。文件名和上游分类不代表项目对词条的事实、法律或道德定性。
初始构成
| 类别 | 原文件非空条目数(含重复) | 选中去重词条 | 合并后新增 |
|---|---|---|---|
| 本地原有辱骂词 | 13 | 13 | 13 |
| fwwdn 政治类 | 326 | 214 | 214 |
| fwwdn 色情类 | 304 | 181 | 181 |
| fwwdn 广告类精选 | 123 | 19 | 19 |
| Konsheng 涉政事件与表达补充 | 557 | 71 | 71 |
| Konsheng 组织名及变体补充 | 178 | 25 | 24 |
| 合计 | 522 |
筛选边界
- 涉政人物列表优先保留较明确的完整姓名及表达,剔除两字简称、纯英文缩写和部分泛称;这意味着某些两字全名也未纳入。本版不是人物名单全覆盖。
- 明确保留一批涉政事件、组织名、口号及变体。人物和事件被提及就可能打码,不区分赞同、反对、引用或讨论历史的语境。
- 不把普通地名、民族或宗教身份本身作为屏蔽依据,例如“西藏”“拉萨”“回族”“穆斯林”。也不导入“政府”“维权”“网络”“客服”“招聘”等泛词。
- 色情类剔除服饰、普通身体部位、模糊动作和容易进入正常游戏语境的词,例如“丝袜”“美腿”“乳房”“后庭”“调教”“淫威”“欲火”。保留较明确的露骨性表达和辱骂词。
- 广告文件仅选取部分明确的违规招揽或交易表达;不整体导入广告词、停止词、网址、药名、枪械或化学品名单。
- 不导入“盘古”“毒龙”等修仙语境常见名称。英文不具备全词边界,因此没有导入主来源中的短英文脏话或纯英文政治缩写;补充来源仅保留少数明确的完整转写或缩写,详见清单。
- 去首尾空白,按当前引擎的大小写与全半角规范化去重,保持每个词一行。没有用模糊规则生成更多拼音、谐音或繁体词。
这是一份可维护的初始化基线,不保证覆盖全部最新涉政、辱骂、广告或规避表达。后续根据实际误伤和漏词增删,避免以词条数量作为唯一指标。
许可与修改声明
本项目进行了类别选取、词条排除、规范化去重、JSON 格式转换及与本地词条合并。原始来源文件自身没有逐词版权声明;保留仓库许可中的权利人声明。fwwdn 指定版本未附带独立 NOTICE 文件。
- fwwdn 原始 Apache-2.0 许可,含
Copyright 2017-present fwwdn。 - Konsheng 原始 MIT 许可,含上游原样版权声明。
- 来源与修改声明。
许可和声明放入 public/licenses/text-filter/,随 Vite 构建复制到 dist/licenses/text-filter/,确保只分发 dist 的部署包也携带这些文件。上游称词条来源于公开互联网,仓库许可并不表示每条词的原始采集来源已经独立核验。
本轮验证
- 实际 JSON 可以被服务端加载,522 条词均能命中自身,未发现格式、规范化重复或黑白名单直接冲突。
- 正常示例中的“宗门招募、联系客服、双修功法、炉鼎炼丹、政府公告、网络服务、西藏旅行、回族朋友、毒龙、盘古、六十四卦”保持原文。
- 对
packages/shared/src非测试 TypeScript 文件中静态name、title、description字符串做字面扫描,未发现命中;不代表动态生成文案已经全部验收。 - 本轮只调整词库和文档,不修改匹配算法或业务接入。未重新进行浏览器聊天验收;上轮本地角色旧数据校验问题仍是已知未验证项。