亵渎过滤器导入



我希望在基于导轨的应用程序中编写基本的亵渎过滤器。只要用户提交适当的属性,这将使用搜索和替换机制。我的问题是,对于那些以前写过这些的人,是否有一个CSV文件或某些数据库,可以将亵渎单词列表导入到我的数据库中?我们正在提交将用自己代替亵渎的单词。我们或多或少需要一个亵渎,种族诽谤和任何不完全评级PG-13的数据库才能触发。

正如锡人所建议的那样,这个问题很困难,但这并非不可能。我已经建立了一个名为CleanSpeak的商业亵渎过滤器,该过滤器处理上述所有内容(Leet语音,语言规则,白名单等)。CleanSpeak能够在低端服务器上每秒过滤20,000条消息,因此可以构建功能良好并表现良好的东西。我要提到的是,CleanSeak是大约3年持续发展的结果。

我告诉每个人都希望尝试解决语言过滤器的所有事情。

  1. 除非您有小列表,否则不要使用正则表达式,并且不介意很多事情。正则表达式相对较慢,很难管理。
  2. 确定您是否要处理结合,变形和其他语言规则。这些经常为项目增加大量时间。
  3. 确定您需要哪种类型的性能以及是否可以在字符串上进行多个通行证。您使过滤器的速度越慢。
  4. 了解Scunthrope和clbuttic问题,并确定如何处理这些问题。这通常需要某种形式的语言智力和白名单。
  5. 意识到白道现在具有不同的含义。您不能再将其用作单词定界符(这是此的b e c a u s e)
  6. 请小心对标点符号处理,因为它可以用于绕过过滤器(L.I.K.E TH --- IS)
  7. 了解人们如何使用ASCII艺术和Unicode替换字符(/= V-这些是斜线)。有很多Unicode字符看起来像英语字符,您将需要适当地处理这些字符。
  8. 了解人们一直将单词砸在一起(喜欢)并弄清楚您是否想处理。

您可以在stackoverflow上搜索我对其他线程的评论,因为我可能会在这里忘记的那些线程。

这是您可以使用的:CMU网站的进攻/亵渎单词列表

基于个人经验,您知道这是徒劳的练习吗?

如果某人想注入亵渎性,那么在某种程度上有许多无辜的单词,而在另一种情况下亵渎,因此您必须编写上下文解析器以避免使用黑色清单的简洁单词。快速浏览CMU的列表显示了我从不认为粗鲁/粗鲁/社会上不可接受的单词。您会看到有很多单词可能是专有名称或名词,国家,爱情条款等。而且,有多种使用L33T Speak等将算法丢弃的方法。搜索Wikipedia和互联网,您可以构建字母变体的表。

查看CMU的列表,并想象如果除了正确的字母外,每个a还可以是4o可能是0或CC_4,e可以是3s也可以是CC_8,则列表将有多长时间。而且,这是一个非常非常短的例子。

我被要求执行类似的任务,并编写了代码来生成单词的L33T变体,并根据Internet上可用的几个亵渎/进攻列表生成了单词的热门单词。运行发电机并通过文件的1/4多一点之后,我的DB中有超过100万个条目。那时我拔了该项目的插头,因为搜索所花费的时间,即使使用Perl的Regex ::组装,也很荒谬,尤其是因为它仍然很容易愚弄。

我建议您与任何要求的人进行长时间的交谈,并询问他们是否了解所涉及的编程问题,以及准确性和成功的低样本,尤其是在长期的情况下,或者当他们意识到您时可能的客户反弹'对它们进行审查。

我有一个已经添加到的(稍微添加一点),但这是:https://github.com/rdp/sensible-cinema/blob/master/master/lib/subtitle_profanity_finder.rb

最新更新