我们中的许多人都需要处理用户输入、搜索查询以及输入文本可能包含亵渎或不受欢迎的语言的情况。通常情况下,这需要过滤掉。

在哪里可以找到各种语言和方言的粗口?

源代码中是否有包含好的列表的api ?或者可能是一个API,用一些参数简单地说“是的,这是干净的”或“不,这是脏的”?

有什么好方法可以捕捉那些试图欺骗系统的人,比如$$、azz或a55?

如果您为PHP提供了解决方案,则会有加分。:)

编辑:回答简单地说,避免程序问题:

我认为,当用户可以使用公共图像搜索来查找添加到敏感社区池的图片时,这种过滤器是有一席之地的。如果他们可以搜索“阴茎”,那么他们可能会得到很多照片,是的。如果我们不想要照片,那么阻止这个词作为搜索词是一个很好的把关者,尽管不可否认这不是一个万无一失的方法。真正的问题是首先获得单词列表。

我指的是一种方法来判断单个令牌是否脏,然后简单地禁止它。我不会费心去阻止那种完全滑稽的“长脖子长颈鹿”的说法。你在那里什么也做不了。:)


当前回答

不喜欢。

因为:

Clbuttic 亵渎不是OMG邪恶 亵渎不能被有效地定义 大多数人很可能不喜欢被“保护”免受亵渎

编辑:虽然我同意评论者所说的“审查制度是错误的”,但这不是这个答案的本质。

其他回答

不喜欢。这只会导致问题。我个人有一次使用脏话过滤器的经历是,有一次我在IRC频道上提到我“要去汉考克的桥上呆几个小时”或类似的事情,就被踢/禁止进入。

我同意hanclininto在讨论中发表的文章。我通常使用正则表达式来匹配输入文本。这是徒劳的努力,就像你最初提到的那样,你必须明确地在你的“阻止”列表中解释网络上流行的每一种写作技巧。

另一方面,当其他人在讨论审查的道德问题时,我必须同意在网络上有某种形式是必要的。有些人只是喜欢发表粗俗的文章,因为它可以立即冒犯到很多人,而且作者完全不需要思考。

谢谢你的建议。

HanClinto规则!

看看CDYNE的亵渎过滤器Web服务

测试网址

注意本地化问题:在一种语言中是脏话的词在另一种语言中可能是完全正常的词。

目前的一个例子是:ebay使用字典的方法从反馈中过滤“坏词”。如果你试图输入德语翻译的“this was a perfect transaction”(“das war eine perfekte Transaktion”),ebay将会因为用词不当而拒绝反馈。

为什么?因为“was”的德语单词是“war”,而“war”在ebay的“坏词”词典中。

所以要注意本土化问题。

我有点晚了,但我有一个解决方案,可能对一些读到这篇文章的人有用。它是用javascript而不是php编写的,但这是有原因的。

完全披露,我写了这个插件…

不管怎样。

我采用的方法是允许用户“选择加入”他们的亵渎过滤。基本上,默认情况下允许使用脏话,但如果我的用户不想读,他们也可以不读。这也有助于解决“l33t sp3@k”问题。

这个概念是一个简单的jquery插件,如果客户端的帐户启用了脏话过滤,服务器就会注入这个插件。从这里开始,就只有几行简单的文字,用来掩盖誓言。

这是演示页面 https://chaseflorell.github.io/jQuery.ProfanityFilter/demo/

<div id="foo">
    ass will fail but password will not
</div>

<script>
    // code:
    $('#foo').profanityFilter({
        customSwears: ['ass']
    });
</script>

结果

***将失败,但密码不会