敏感词过滤是随着互联网社区发展一起发展起来的一种阻止网络犯罪和网络暴力的技术手段,通过对可能存在犯罪或网络暴力可能的关键词进行有针对性的筛查和屏蔽,很多时候我们能够防患于未然,把后果严重的犯罪行为扼杀于萌芽之中。
随着互联网社区和UGC应用的不断发展变化,敏感词过滤系统也经历了不断的发展演进,有如下多种过滤方式:
01. 敏感词替换
敏感词替换是较早出现的一种敏感词过滤方式,即系统不会在用户端进行敏感词过滤和校验,而是把这个工作放在数据入库之前完成,在数据写入数据库之前,系统根据已经制定的规则把所有敏感词替换为设定好的符号或文字,这个过程是不可逆的。
这种技术手段对于阻止网络暴力成效显著,用户在阅读其他人的发布信息时,不会再看到那些刺眼的侮辱性的字眼,但又不会太过于破坏发布者的本意,同时也不会对用户阅读造成很大干扰和障碍,尤其是在聊天室或群组等场景中表现优异。
但这种过滤方式仍然可能会对普通用户造成“隐性骚扰”,因为我们基本可以凭借上下文来基本猜出那些被替换成“***”的本来面目。
02. 敏感词屏蔽
敏感词屏蔽就是发布的信息里的敏感词被直接去除,再写入数据库,这种方式能最大程度上避免对普通用户的“隐性骚扰”,但随之而来的代价就是可能会造成发布信息的可读性下降,甚至影响到阅读体验。
03. 用户端阻止发布
用户端阻止发布是指系统在用户发布信息时对信息进行本地或服务器端敏感词校验,一旦发现用户发布的信息有词汇符合敏感词过滤条件,即阻止用户的发布操作并返回提示信息,提示用户有敏感词不符合发布要求,并要求用户修改自己发布的信息。
这种过滤方式能够最大程度上降低系统自身的安全风险并显著降低人工审核的成本,在用户输入昵称,输入简单介绍时效果最佳。
04. 系统人工审核
在UGC内容不是特别多或搭配AI识别敏感词的情况下,系统可以允许用户首先发布自己的信息,再使用AI辅助方式找出存在敏感词风险的发布信息,由人工进行审核,符合条件或者被“误伤”者放行,属于恶意发布信息的则人工删除并通知发布者。
这是一种对用户体验伤害最小的,最人性化的敏感词过滤方式,但随之而来的可能也是冷人咋舌的人工成本。
05. “小黑屋”
系统允许用户发布信息,但用户发布后使用AI辅助方式找出存在敏感词风险的发布信息并批量导入“小黑屋”,然后通知发布者进行修改,一直到系统不再提示有敏感词风险为止。
这种方式能够保证用户端发布时的体验的流畅性,但因为没有人工审核参与,敏感词风险通知的发送是异步的,用户可能在发布后离开应用,过很长时间返回后,发现发布的信息被关入“小黑屋”,还要自己主动排查猜测屏蔽原因,这种挫折感和用户体验问题也是非常严重的。
06. 仅发布者可见
有些UCG社区采用了这种敏感词风险控制机制,命中了敏感词的文章或信息,系统暗暗地把信息设置为仅发布者自己可见,而发布者可能还为自己的信息没有浏览和点击而疑惑不解,这真是让发布者“死得不明不白”,这种过滤机制真是非常奇葩,但它却真实地存在很多应用中。
综上,敏感词过滤是一种阻止网络暴力和网络犯罪的非常有效的手段,但有时候它也会因为其关键词而误伤用户,造成一些让人啼笑皆非的问题,比如下面这个流传甚广的段子:
半夜IDC急电,“你的网站有涉嫌的关键词,请立即删除!”站长立即从被窝里爬起,冒着零下10度的严寒上网,找那个违法关键词。最后找到的是这样一条信息:转让一台独立服务器。
在用户发布比较大段的文字或文章时,特别是一些UCG社区,例如美食评论、酒店居住体验、活动体验、游记等等,庞大的敏感词库+过于苛刻的匹配规则+用户端阻止发布就可能会误伤到普通用户,对普通用户的使用体验造成严重伤害。
而且随着各应用的系统不断改进升级和扩充自己的敏感词库,恶意发布者的规避敏感词过滤的手段也在不断升级进步,特别是在缺少人工审核的情况下,发布者很容易就可以通过某些技术手段,如加密、替换字符、谐音字、同义字来规避这种过滤。
这是一场没有硝烟的战争,这是一种无声的军备竞赛,系统和恶意发布者之间相互博弈,最后造成的结果就是:关键词库越来越庞大,庞大到已经干扰到了普通用户正常发布UGC内容的程度了。
我有个朋友就是这种军备竞赛的牺牲者,她在忍无可忍的情况下在朋友圈发布了这样的动态:
她在口碑上想要发布自己的美食分享,但系统总是提示有敏感词,但敏感词是什么?系统却又不告诉她,最后她凭着自己的不懈努力,终于发现是这个美食店的一款【法式禽兽汉堡】里的“禽兽”二字命中了敏感词库,所以被阻止发布。
而我自己也曾经多次在不同的UCG社区碰到过类似问题,特别是在移动端,这种敏感词过滤机制简直是“反人类”的“劣币驱逐良币”过滤机制,因为优质用户才会输入较长的文字信息,又因为文字信息很长,导致命中敏感词的风险急剧上升,而又因为文字信息很长,导致排查敏感字非常困难,查理芒格曾说“如果你告诉我将会死在哪个地方,我以后就绝对不会去那儿”,但这些系统却绝口不提我们会死在哪儿,让我们没有目标地瞎转乱撞,很多时候,精疲力尽的用户会选择放弃发布信息,甚至进而影响它对整个应用的使用体验,从而放弃整个应用。
我曾经在一个书评应用上发布一篇读后感时,被系统冰冷地提示“不符合发布要求”,为了找出那个该死的敏感词,把所有的文字全选拷贝放到编辑软件里,然后一段一段拷贝到书评应用中,等我尝试到第3段时,系统冷冷地提示我:“您已保存提交太多次,请休息一会儿”,那一刻,我确定我是崩溃的。
所以,系统在设计敏感词过滤体系的时候,肯定是要综合考虑公司将会付出的成本和用户体验,但如果单纯为了成本和审核等级考虑,而把所有的风险和责任都推到用户这一边,我不认为这是一种明智的做法。