不良信息关键词过滤方法不应只依赖一张敏感词表,而应采用“文本规范化、关键词匹配、上下文判断、风险分级和人工复核”相结合的方式。对于网站、社区、评论区、客服系统或面向未成年人的应用,可以先识别明显违规内容,再处理变体、隐晦表达和容易误判的正常语句,最后根据风险等级采取放行、提醒、限流、拦截或复核措施。
先明确要过滤什么,再建立分级规则
“不良信息”范围较大,可能包括违法犯罪引导、骚扰辱骂、色情低俗、赌博诈骗、危险行为诱导、未成年人不适宜内容等。不同场景的处理标准并不相同,因此不要把所有词语简单放进同一个“禁止词库”。
建议先建立风险分级。高风险内容可以直接拦截或进入人工审核;中风险内容可以限制展示、要求修改,或暂时隐藏;低风险内容则结合上下文判断,避免因单个词语造成误伤。面向未成年人的产品通常需要更严格的展示、互动和推荐限制,但仍应保留申诉和纠错渠道。
| 等级 | 典型判断 | 建议处理 |
|---|---|---|
| 高风险 | 明确的违法引导、严重伤害性内容或针对未成年人的不当内容 | 拦截、记录规则命中原因,必要时转人工复核 |
| 中风险 | 疑似骚扰、低俗暗示、诈骗话术或具有明显诱导性 | 限制发布或传播,提示修改,结合上下文复核 |
| 低风险 | 单个词语与正常语境同时存在,存在较高误判可能 | 不直接拦截,采用上下文评分或人工抽检 |
不良信息关键词过滤的基本处理流程
第一步:统一文本格式
用户可能通过空格、标点、大小写、全角半角、重复字符、特殊符号或同音替换来改变文字外观。如果系统只对原始文本做完全匹配,容易漏掉变体。因此,匹配前应建立规范化流程,包括去除不影响语义的多余空格、统一常见标点、转换全角和半角字符、处理大小写,并根据业务需要合并连续重复字符。
规范化不等于无条件删除所有符号。符号在某些内容中具有实际意义,过度清洗可能改变原文含义。更稳妥的做法是保留原文,同时生成一个用于检测的标准化副本,并在命中后回到原文确认位置和上下文。
第二步:建立分层词库,而不是一份黑名单
词库至少可以分为高风险词、组合词、场景词、易误判词和允许词。高风险词通常要求更高的匹配优先级;组合词需要多个词同时出现才提高风险;易误判词则不能单独触发拦截。例如,某些词在新闻、教育、医学、历史讨论中可能是正常表达,只有与特定动作、对象或诱导语句共同出现时,风险才会明显上升。
词库还应记录词条来源、适用场景、风险等级、启用时间、最近调整时间和对应处理动作。这样可以在出现误判时快速定位是哪条规则造成问题,而不是直接修改整套系统。
第三步:使用短语和模式规则识别变体
单个关键词适合发现明显内容,但对拆分表达、词语组合和固定话术的识别能力有限。可以针对常见结构设置短语规则,例如“引导动作+联系方式”“承诺收益+付款要求”“针对特定对象的侮辱表达”等。对格式变化明显的内容,可以使用正则或模式匹配,但规则应尽量短小、可解释,并设置边界条件。
正则表达式不宜写得过于宽泛,否则可能把大量正常文本一并拦截;也不应把所有可能变体都堆进一条超长规则,否则维护和排查都会变得困难。较好的方式是将字符规范化、词条匹配、短语匹配和结构判断拆开执行,再汇总结果。
第四步:加入上下文判断和风险评分
关键词命中只能说明“出现了某种表达”,不能直接证明整段内容违规。系统可以结合前后文、词语距离、出现次数、是否包含诱导动作、内容所属栏目、用户是否重复发布等因素进行评分。评分达到高风险阈值时拦截,处于中间区间时进入复核,低于阈值则放行或记录抽检。
例如,一个易误判词单独出现时可以不处理;如果它与明显的交易诱导、骚扰对象、危险操作或未成年人相关表达在较短范围内同时出现,就应提高风险等级。具体阈值需要根据业务样本持续调整,不宜直接照搬其他系统的数值。
推荐的检测顺序:原文保留 → 文本规范化 → 关键词和短语匹配 → 上下文分析 → 风险分级 → 拦截、提醒、限流或人工复核 → 记录结果并定期复盘。
如何减少误判和漏判
为每条规则准备正例和反例
每新增一条规则,至少应准备两类测试内容:一类是确实需要处理的命中样本,另一类是包含相似词语但实际正常的反例。反例可以来自新闻标题、知识问答、文学作品、医学说明、历史讨论或用户正常交流。没有反例的词库很容易不断扩大,最终影响正常发布。
测试时不要只验证“能否拦截”,还要检查命中位置是否准确、提示是否清楚、是否能保留原文用于复核,以及修改后重新提交是否会产生相同问题。对于面向儿童或青少年的场景,应额外测试昵称、评论、图片文字和外部复制内容等入口。
区分“检测命中”和“处理决定”
检测模块只负责指出可能存在风险,处理模块再根据等级决定动作。不要让某个关键词命中后直接删除全部内容,也不要让所有内容都进入人工审核。将两者分开后,可以独立调整词库、阈值和处置方式,排查问题时也更容易判断是“没有检测到”,还是“检测到了但处理不合适”。
处理图片、音频和视频中的文字
如果内容不只包含文字,纯关键词过滤会漏掉图片内文字、语音转写内容和视频字幕。具备相应能力时,可以先通过文字识别或语音转写提取可检测文本,再使用同一套词库和上下文规则。不过,识别结果可能存在错字、漏字和断句问题,因此高风险命中仍应保留人工复核,不能把识别结果当作绝对结论。
常见问题排查方法
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 明显内容没有被拦截 | 未做文本规范化,词库缺少变体,或规则只支持完全匹配 | 查看原文与标准化文本,检查分词、短语边界和规则是否启用 |
| 正常内容频繁被拦截 | 单词规则过宽,缺少上下文条件,或风险阈值过低 | 收集误判样本,增加允许场景和反例,改为组合判断 |
| 相同内容有时拦截、有时放行 | 不同入口使用的词库、版本或处理顺序不一致 | 核对规则版本、缓存、字符编码和各端调用流程 |
| 修改一个词后仍然无法发布 | 文本中还有其他命中项,或标准化后仍保留风险片段 | 展示具体命中位置和规则编号,让用户逐项修改 |
| 人工审核压力过大 | 中低风险内容全部转人工,缺少分级和自动放行条件 | 按风险区间分流,对稳定的低风险样本进行抽检 |
提示语、日志和权限同样重要
过滤失败不一定是规则问题,也可能是用户不知道如何修改。拦截提示应尽量说明“内容包含需要调整的表达”,并在安全范围内指出大致位置或内容类型,不必展示完整的敏感词表,以免被反复试探。对于误判,应提供申诉或反馈入口,并允许审核人员记录最终结果。
日志中可以保存规则编号、风险等级、处理动作、时间、内容入口和复核结果,但应按照业务需要控制保存范围,避免无关收集。原始内容属于需要谨慎管理的数据,应限制访问权限,并设置合理的保存周期。词库编辑、规则上线和阈值修改最好经过审核,避免单人误操作造成大面积误拦截或漏放。
一套可落地的实施建议
- 先确定内容类型、使用人群和需要处理的风险范围。
- 建立分级词库,同时收集容易误判的正常表达。
- 对文本做有限度规范化,并保留原文用于复核。
- 先用关键词和短语规则覆盖高确定性风险,再逐步加入上下文判断。
- 将拦截、提醒、限流、人工审核和放行设置为不同动作。
- 用真实样本持续测试漏判率和误判率,规则每次调整都保留版本记录。
- 定期检查图片、音频、视频和不同发布入口是否使用了同等的检测流程。
总的来说,可靠的不良信息关键词过滤方法是一个持续维护的内容安全流程,而不是一次性制作关键词黑名单。先用规范化和分层规则处理确定性问题,再用上下文、人工复核和样本复盘解决复杂情况,才能在减少漏判的同时控制误伤,并让过滤结果更容易解释、调整和长期维护。














