我们有很多需要处理的用户输入、 搜索查询和输入的文本很可能包含亵渎或不语言的情况。有时这需要被过滤掉。

其中一个可以以各种语言和方言中找到好的咒骂单词列表

还有的 Api 可用于包含好列表源吗?也许一个 API,只是说:"是的这是干净"或者"不是该脏"某些参数?

捕捉人试图欺骗系统,如 $$、 azz 或 a55 一些好的方法是什么?

奖分如果 php 提供了解决方案。:)

编辑︰ 响应说出的答案只是避免了编程的问题︰

我认为没有这种类型的筛选器的位置时,例如,用户可以使用公共形象搜索以查找到敏感社区池添加的图片。如果他们可以搜索"penis",然后他们将很可能得到很多图片的是。如果我们不想要的图片,又禁止的单词作为搜索条件是很好的网关守卫,尽管不可否认不是万无一失的方法。获取列表中的单词就是真正的问题。

我真的要引用方式算出的单个标记已更新,然后简单地禁止。我不会愿意费劲防止类似完全有趣好玩的"长 necked 的 giraffe"引用观点。您可以的任何操作。:)

2008-11-07 20:19:41
问题评论:

我看到 Jonathan 荷兰正在为 Taxonomist 徽章。:)

很可惜所有热门的答案是 existential 和 defeatist diversions 从编程挑战。与"cyborg"等机械特克岛获得蒸汽,计算的服务,成为社会的几乎所有的软件,它是更重要,比以往任何时候都有红色标记内容的启发方法并将它放到仲裁人的注意 !

Mandingo...

请谨慎的语言环境,尤其是如果您做 i18n。我试图设置 Google 组可使我本课程的学分后调用"Sanal ortamda görselleştirme",这是土耳其为"可视化虚拟媒体"。Google 已足够愚蠢,因为标题包含单词"anal"拒绝它。Sanal [tr] = 虚拟 [en] 和 Google shamelessly 指控我亵渎 !: D请不要让奇怪像这样的事情发生。

怎么样如果搜索中西班牙语单词吗?实际上可以解决 Google 图像过滤器通过这种方式 (如果您已本地化为其他语言)。

回答:

淫秽的筛选器︰ 好主意,或令人难以置信 Intercoursing 个好主意吗?

同时,一个不能忘记数不胜数历史的 Toontown 的 SpeedChat,其中甚至使用"安全词白名单"导致 14 岁迅速避开它: "我想要坚持了您 fluffy 白色的小兔子我长 necked Giraffe。

底线︰ 从根本上讲,对于任何系统中实现,没有绝对没有替代人工检查 (是否对等或其他方式)。感觉可以自由地实现的基本工具去除的偷渡式的但对于确定 troll,一定要有一种不基于算法的方法。

删除匿名和引入责任制 (一些堆栈溢出 does 哦) 的系统,帮助也是,特别是为了帮助作战John Gabriel G.I.F.T.

您还可以要求可以从哪里获得猥亵语言列表,以获得启动 — 签出一个开放源码项目是Dansguardian --请检查出其默认猥亵语言列表的源代码。此外,还有其他第三方短语列表,您可以下载代理服务器可能会对您有帮助 gleaning 点。

在响应问题中的编辑编辑︰感谢您在您尝试澄清的。在这种情况下,如果您只想做一个简单的单词筛选器,有两种方法可以做到。一是要用的所有违禁短语,要进行审查,并与它的只是执行正则表达式查找/替换创建单个长 regexp。类似的正则表达式︰

$filterRegex = "(boogers|snot|poop|shucks|argh)"

并在命中,使用preg_match()到批发测试您输入字符串上运行它

preg_replace()来遮蔽掉。

您也可以加载这些函数阵列,而不是单个长正则表达式,并且对于长的单词列表,它可能会更易于管理。Preg_replace()对于如何灵活使用数组对一些很好的示例,请参阅。

其他 PHP 编程示例,请参阅此页有些高级泛型类筛选该 *'s 出中心从监控的单词字母的单词,这个以前的堆栈溢出问题,又有 PHP 示例 (在那里主要的重要部分是基于 SQL 的筛选出的单词的方法 — leet-说补偿器可以省去如果发现它不必要)。

您还将添加:"获得单词列表最初是真正的问题。"— 除了某些以前的 Dansgaurdian 链接,您可能会发现此方便.zip 458 单词是很有帮助。

Lol,我是要到另一个位置点 !;-)

只是为了使用 'fluffy 小兔 + 1 !

@JPLemme︰ 应该是-我应已添加 [sic] 之后,因为这是 Atwood 如何拼写它。:)

正则表达式选项的单词边界包装也会导致clbuttic错误

如果您喜欢听故事理解这些马的嘴"Fluffy 白色小兔子",现在是播客节目︰ socialmediaclarity.tumblr.com/post/70499341079/...

我不知道的任何好的库,但无论您,请确保您错误的使东西方向。我处理了岂不允许我使用用户名为"mpassell",因为它作为子字符串中包含"海量"的系统。这是讲用户的好方法 !

或 forbidding"考核中心"在飞行的宇宙飞船游戏

在我的求职面试,公司首席技术官面试我试用我在 Java 中记单词/网络游戏。从整个 Oxford 英语词典的单词列表,想到要被猜到的第一个单词是什么?

毫无疑问,大多数污染在英语语言中的单词。

某种程度上,我仍然有作业的提议,但我然后跟踪不敬词列表 (不与此不同的是),并编写了一个快速的脚本来生成错误的单词的所有新的词典 (无需查看列表)。

针对您的具体情形,我认为比较实际单词听起来象这样转使用一个单词列表的方法搜索。每个标点的样式替代需要多做一些工作,但我怀疑用户使用的频率不够高的问题。

关闭主题,但什么是最污秽的词呢?我始终认为它 c 字或者 n 一词,但我认为人们认为 f 字是

"我怀疑用户将使用的频率不够高,是一个问题"保持活动状态的愿望。一旦用户找到筛选器,它们能找到规避的各种方法。它可能很简单,用奇数放置空格等数字替换字母那样)。

亵渎内容过滤系统永远不会完美,即使程序员是 cocksure,并保留所有 nude 进展了解

话虽如此,naughty 单词任何列表很可能因为基本的问题是语言理解它是非常难与当前技术以及任何其他列表中,执行

因此,唯一可行的解决方案是双重的︰

  1. 一定要经常更新您的词典
  2. 雇用来纠正误报 (例如"clbuttic"而不是"经典") 和漏报的人工编辑器 (天哪 ! 遗漏了一个 !)

只需检测两侧,完全停止之后,不带空格的单词?

H3ll 没有手册,它仅适用于最小的情况下;我们正在处理人类在这里,和它们:) 很聪明

尽管我知道,这个问题是相当旧的但这是经常出现的问题...

还有的原因和不同需要的亵渎筛选器 (请参阅此处的维基百科条目),但它们通常小于被 100%准确的截然不同的原因;上下文准确性.

这取决于 (完全) 要达到-它是最基本的您可能要包括"七脏词"和一些...一些公司需要进行筛选的最基本的不敬︰ 基本却坚字、 Url 或甚至个人信息等,但其他人需要防止非法帐户命名 (实时 Xbox 是一个例子) 或更多...

用户生成的内容并不只是包含潜在咒骂词,它还可以包含冒犯性的参考︰

  • 性行为
  • 性取向
  • 宗教
  • 民族
  • 等等...

并有可能会以多种语言。Shutterstock 已制定了到目前为止,10 种语言的基本的脏词列出但仍基本和非常面向他们 '标记' 的需要。有大量的其他列表 web 上。

我同意接受的答案,它不是定义的科学和作为语言是不断发展的挑战,但一个 90%的捕获率优于 0%。它取决于完全是您要实现的目标-、 有的支持级别和要删除的不同类型的 profanities 是多么重要。

在构建一个筛选器,您需要考虑下列元素以及它们与您的项目︰

  • 词语/短语
  • 首字母缩写词 (FOAD/LMFAO 等)
  • 误报(文字、 位置和名称如下所示 'mishit','scunthorpe' 和 'titsworth')
  • Url (色情网站是一个明显的目标)
  • 个人信息 (电子邮件、 地址、 电话等-如果适用)
  • 语言选项 (通常,默认情况下的英语)
  • (如何,如果在所有情况下,您可以与交互用户生成的内容和如何使用它) 的裁决

您可以轻松地构建猥亵语言筛选器来捕获 90%以上的 profanities,但您将永远不会命中 100%。它是不可能的。要到达 100%,成为难近...构建复杂猥亵语言引擎处理超过 500 K 每天实时邮件过去,我会提供以下建议︰

将涉及一个基本筛选器︰

  • 生成一系列的适用 profanities
  • 开发的 profanities 派生的处理方法

将涉及中等复杂程度的文件管理器,(除了基本筛选器)︰

  • 使用复杂的模式匹配处理扩展派生 (使用高级正则表达式)
  • 处理Leetspeak (l33t)
  • 假阳性处理

复杂的筛选器将涉及数以下 (不包括中等的筛选器)︰

内容来源于Stack Overflow How do you implement a good profanity filter?
请输入您的翻译

How do you implement a good profanity filter?

确认取消