不良信息关键词过滤,核心不是简单建立一张“敏感词表”,而是把文本统一处理、分类匹配、上下文判断和结果处置连成一套规则。实际操作时,可按照“明确过滤范围—整理关键词库—规范化文本—分级匹配—输出处理结果—持续复核”的顺序搭建。这样既能拦截明显的不良内容,也能减少正常语句被误判。
一、先确定要过滤的信息范围
在整理关键词之前,先明确系统需要处理哪些内容,以及发现后要采取什么动作。范围过宽,容易造成误拦截;范围过窄,则无法覆盖实际场景。通常可以按照业务需求建立以下几类词库:
- 广告与骚扰类:批量推广、恶意引流、刷屏、虚假优惠和无关营销内容。
- 诈骗与诱导类:冒充身份、虚假承诺、索要验证码、诱导转账或要求提供账户信息的表达。
- 违法违规类:涉及非法交易、违法服务、恶意组织活动等内容。
- 色情与低俗类:明显色情表达、淫秽描述、未成年人相关的违规内容。
- 暴力与伤害类:鼓动伤害、极端威胁、展示严重暴力行为或教唆危险行为的内容。
- 隐私与个人信息类:公开或索取身份证件、联系方式、住址、账户凭证等敏感信息。
每个类别不要只保存关键词,还应记录词条来源、适用场景、严重等级、处置方式和最近更新时间。相同词语在新闻讨论、知识解释和实际诱导中可能含义不同,因此分类信息比单纯增加词条数量更有价值。
二、建立可维护的关键词库
1. 按风险等级分层
建议把词库至少分为三层。高风险词命中后可直接拦截或进入人工复核;中风险词需要结合上下文判断;低风险词只作为提示信号,通常不宜单独拦截。对于可能出现在正常语境中的词语,应设置“观察词”或“组合词”,避免因为单个词命中而影响正常内容。
| 字段 | 作用 |
|---|---|
| 词条或词组 | 保存需要识别的表达形式 |
| 所属类别 | 区分广告、诈骗、色情、暴力、隐私等类型 |
| 风险等级 | 决定拦截、审核或放行策略 |
| 匹配方式 | 指定精确匹配、组合匹配或模糊匹配 |
| 例外场景 | 记录新闻、科普、历史讨论等正常用法 |
| 处置动作 | 设置拒绝发布、修改后提交或转人工审核 |
2. 同时保存词组和组合规则
单个词条只能发现局部信号,组合规则才能判断完整意图。例如,某个普通词语单独出现时没有明显问题,但与“立即、付款、账号、验证码”等诱导性表达同时出现,风险就会明显提高。因此词库中应同时保存单词、短语、词语组合和上下文条件。
组合规则可以围绕“对象+行为”“承诺+要求”“渠道+联系方式”等关系设计。规则不必写得过于复杂,但要明确哪些词必须同时出现、哪些词需要在一定距离内出现,以及哪些表达可以降低风险等级。
三、过滤前先做文本规范化
直接对原始文本进行匹配,容易漏掉插入空格、标点、大小写变化或全角半角混用的内容。规范化的目的,是把表达形式统一后再进行识别,而不是改变原文展示给用户的内容。
- 统一字符形式:处理全角与半角字符、大小写、繁简体和常见符号差异。
- 清理无意义字符:识别多余空格、换行、重复标点、不可见字符和异常控制符。
- 保留原文副本:规范化文本只用于检测,原始内容用于展示、申诉和人工复核。
- 处理重复表达:对连续重复的字符、数字或标点进行压缩,同时保留足够信息供规则判断。
- 统一分词边界:中文可同时使用连续字串匹配和分词结果,避免只依赖单一分词方式。
对于谐音、拆字、字母数字混写等变形表达,可以建立有限的归一化映射,但不宜无限扩展。过度替换容易把正常词语变成错误命中,较稳妥的做法是将变形特征作为加分信号,与原始关键词、上下文和行为信息共同判断。
四、组合多种匹配方法
精确匹配:处理明确词条
精确匹配适合识别边界清晰、风险等级较高的完整词组。它速度快、结果容易解释,适合作为第一层过滤。词条数量较少时,可以使用集合或索引保存;词条数量较大时,则应采用适合多模式匹配的数据结构,减少逐条扫描造成的性能消耗。
模糊匹配:发现变形表达
模糊匹配用于识别标点插入、字符重复、空格分隔或轻微变形。使用时应设置相似度阈值和最大匹配距离,不能把“相似”直接等同于“违规”。模糊命中通常更适合提高风险分数或转入审核,不宜在所有场景中直接拦截。
上下文匹配:判断实际含义
上下文匹配是降低误判的关键。系统可以检查关键词前后一定范围内的词语、句子语气、是否包含交易或联系方式、是否存在明确指令等。例如,内容是在解释某类不良信息,还是在主动发布、招揽和传播,处置结果应当有所区别。
可以采用简单的加权方式:高风险词命中获得较高分,多个相关词共同出现时增加组合分,否定、引用、科普说明等正常语境特征则降低分数。最终将结果分为“通过、提示修改、人工审核、直接拦截”四档,比只有“通过或拒绝”更容易适应复杂文本。
五、设计清晰的过滤结果
| 结果 | 适用情况 | 处理方式 |
|---|---|---|
| 通过 | 没有命中规则,或仅命中低风险观察词 | 正常发布并保留检测记录 |
| 提示修改 | 存在轻微风险或可能造成误解的表达 | 提示用户调整内容后重新提交 |
| 人工审核 | 命中中风险组合、模糊变形或复杂上下文 | 暂缓发布,由审核人员确认 |
| 直接拦截 | 命中明确高风险规则,且语境清晰 | 拒绝发布并返回简洁原因 |
返回给用户的提示应说明问题类型和修改方向,避免直接展示完整的内部规则或敏感词表。系统内部则应保存命中的类别、规则编号、文本位置、处理时间和最终结果,方便后续复盘。
六、用测试样本校准误判与漏判
关键词过滤上线前,至少要准备三组样本:明确需要拦截的内容、明确应当放行的正常内容,以及需要人工判断的边界内容。测试时不只看“命中数量”,还要观察误拦截率、漏检率、审核转入率和平均处理时间。
- 误拦截样本:新闻标题、课程说明、法律咨询、历史资料和对不良现象的批评讨论。
- 漏检样本:加入空格、符号、重复字符或多种表达方式的测试文本。
- 边界样本:只出现单个普通词,但结合上下文后可能形成诱导或违规含义的内容。
每次调整规则后,都要重新运行旧样本,确认新规则没有破坏原有结果。对于被人工审核推翻的判断,应记录为新增例外、调整等级或补充组合规则,而不是简单地把相关词条全部删除。
七、上线后的维护方法
词库需要持续维护,建议按固定周期查看命中日志和人工审核结果,合并重复词条,删除长期无效规则,并为新出现的表达补充同义词和组合模式。更新时应先在测试环境验证,再逐步发布到正式环境;高影响规则最好保留版本号,便于出现问题时回退。
最终,一套实用的不良信息关键词过滤方法应当形成闭环:先按场景建立分层词库,再进行文本规范化,随后通过精确匹配、模糊匹配和上下文规则计算风险,最后输出通过、提示、审核或拦截结果。关键词负责发现线索,规则负责理解关系,人工复核负责处理复杂边界,三者配合才能让过滤结果更稳定。
lagdijuafcgcm0zetr6qmflupnja














