在生成同义词时防止生成类似sw字的图像

时间:2012-07-23 10:46:35

标签: algorithm language-agnostic identicon

我正在使用此PHP script来生成识别符。它使用了Don Park的原始identicon算法。

该脚本运行良好,我已将其调整为我自己的应用程序以生成同义词。问题是有时会产生交换信号。虽然纳粹标志起源于和平,但人们在看到这些符号时会冒犯它们。

我想要做的是改变算法,以便永远不会生成星号。我已经做了一些挖掘并找到了这个thread on Microsoft's website,其中一名员工说他们已经添加了一个调整以防止生成万字符,但仅此而已。

是否有人确定了调整的内容以及如何防止生成swastikas?

3 个答案:

答案 0 :(得分:9)

Jeff Atwood's introducing thread,Don Park建议:

  

Re Swastika的评论,可以通过应用专门的类似OCR的视觉分析来识别所有违规代码,然后使用遗传算法将它们压缩成有效的布隆过滤器。当过滤器返回true时,可以使用第二种类型的identicon(即4块被子)。

或者,您可以通过将{idesons'替换为unicorns来完全避免此问题。

答案 1 :(得分:9)

我觉得(快速浏览一下)Identicons始终具有四重旋转对称性。 Swastikas当然可以。如何以不同的方式重复四分之一块呢?如果你采用一个可以在当前模式中生成纳粹标记的四分之一区块,并反映出两个对角线相对的区域,那么你会获得一种太空入侵者。

基本上,没有反射对称的东西看起来很像sw字。我想如果本季内完全包含一个小的纳粹标记,那么你仍然有问题。

答案 2 :(得分:0)

我最初的涉及视觉分析的建议是在使用的特定算法的背景下,即9块被子。

如果你想尝试另一种没有Swastika问题的算法,可以尝试将墨点中的对称性引入流行的16块被子Identicons。