恶意检查促销代码



我有一个有点不寻常的脏话相关问题。

现在我们已经习惯了对用户生成的内容进行亵渎性过滤——任何方法都是不完美的,但像CleanSpeak和WebPurify这样的产品做得足够好。

然而,我们目前面临的问题是,我们一直在构建一个引擎来运行基于促销代码的比赛,这些比赛将在国际上使用。我们可以检查这些代码在拉丁美洲西班牙语或马来语中是否都是亵渎性的(至少在第一种情况下是这样),以确保我们不会发送相当于FUCK23PEN15之类的代码。

我们试着在谷歌上搜索并询问我们认识的人,但我们找不到一个简单的方法来获取es-419ms的脏话列表来过滤代码。由于每个区域实际上有数百万个代码,我们宁愿进行离线检查,也不愿为每个代码使用API(这在带宽和使用费方面都很昂贵)。

我知道这有点遥不可及,但有人知道不同语言的脏话列表的好来源吗?

#disclaim:我们知道没有脏话过滤是完美的,它对用户生成的内容基本上是徒劳的,我们已经阅读了SO#273516:你如何实现一个好的脏话过滤?——这不是我们要问的。

用其他语言构建或查找列表非常耗时且困难(相信我,我们已经在Inversoft构建了许多列表)。你可能会更好地调整代码生成器(从我可以看出,你的代码是生成促销代码,而不是人类)。

调整生成器的最好方法是确保代码不能根据大多数欧洲语言中辅音和元音的普遍使用来容易地形成单词。波兰语和其他语言会让事情变得有点危险,但它通常是有效的。

一般来说,大多数以元音开头的代码后面都是另一个元音或非连接辅音(比如没有"u"的"q")。如果代码以辅音开头,那么下一个字符是同一个辅音或使用概率较低的辅音。例如,如果以"s"开头,则添加"g"是一个不错的选择。

您也可以使用wiktionary或其他类似的来源(如Linux字典文件)来构建一种统计方法。通过提取字符相邻的概率,您应该能够生成在任何语言中都不会成为单词的准确代码。

然而,如果我误解了你的问题,而你没有以编程方式生成代码,你可以完全忽略我的回答。:)

我也有同样的想法。在尝试为我正在做的项目生成6个字符的代码时。我决定减少明显的porfain代码的可能性,所以我从我最初的36代代码中删除了我在尽可能多的"坏"单词中发现的元音。给我留下了一个更像28进制的系统,它不包括a,e,i,o,u,1,0。删除了1和0,以减少某些字体中与I、L、O的字符之间的混淆到目前为止,我还没有看到一个"profan"代码生成。尽管28号基地有十亿个独特的组合。我不能担保其他语言,甚至没有考虑过…

最新更新