我希望在基于Rails的应用程序中编写基本的亵渎性过滤器。只要用户提交了适当的属性,这将使用简单的搜索和替换机制。我的问题是,对于那些之前写过这些文件的人来说,是否有一个CSV文件或一些数据库可以将亵渎词汇列表导入我的数据库?我们正在提交我们将自己取代亵渎的话。我们或多或少需要一个亵渎,种族辱骂和任何不完全被评为PG-13被触发的数据库。
答案 0 :(得分:1)
正如田人所说,这个问题很难,但并非不可能。我已经构建了一个commercial profanity filter named CleanSpeak来处理上面提到的所有内容(leet speak,phonetics,language rules,whitelisting等)。 CleanSpeak能够在低端服务器上每秒过滤20,000条消息,因此可以构建效果良好且性能良好的东西。我会提到CleanSpeak是大约3年持续发展的结果。
我告诉大家有一些想要尝试解决语言过滤器的事情。
你可以在StackOverflow上搜索我对其他线程的评论,因为我可能有更多关于我在这里忘记的线程的信息。
答案 1 :(得分:0)
答案 2 :(得分:0)
根据个人经验,你明白这是徒劳的做法吗?
如果有人想要亵渎,那么在一个上下文中会有一大堆无辜的词汇,而在另一个上下文中亵渎,所以你必须编写一个上下文解析器以避免黑名单清单。快速浏览一下CMU's list,可以看出我从不认为粗鲁/粗暴/社会不可接受的词语。你会看到有很多单词可能是专有名词或名词,国家,昵称等等。而且,有很多方法可以使用L33T说话等等来抛弃你的算法。搜索维基百科和互联网,您可以构建各种字母表。
查看CMU's list并想象如果除了正确的字母之外,每个a
也可能是4
,o
可以{ {1}}或0
,p
可以是e
,3
可以是s
。而且,这是一个非常非常简短的例子。
我被要求做类似的任务并编写代码来生成单词的L33T变体,并根据互联网上提供的几个亵渎/攻击列表生成一个单词列表。在运行生成器之后,通过文件的方式超过1/4,我的数据库中有超过一百万个条目。我在那个时候拔掉了项目的插头,因为搜索的时间,甚至使用Perl的Regex :: Assemble,都是荒谬的,特别是因为它仍然很容易被愚弄。
我建议您与任何要求的人进行长时间的交谈,并询问他们是否理解所涉及的编程问题,以及准确性和成功的可能性较低,特别是长期,或者当他们意识到您时可能的客户反对'审查他们。
答案 3 :(得分:0)
我有一个我已添加到的(混淆了一下),但这里是:https://github.com/rdp/sensible-cinema/blob/master/lib/subtitle_profanity_finder.rb