生成易于记忆的随机标识符

Car*_*org 5 random nlp mnemonics

正如所有开发人员所做的那样,我们不断处理某种标识符作为日常工作的一部分.大多数时候,它是关于错误或支持票.我们的软件在检测到错误后,会创建一个包含时间戳和版本号格式的包,这是一种创建合理唯一标识符的便宜方式,可避免混淆包.示例:" 错误报告20101214 174856 6.4b2 ".

我的大脑在记住数字方面并不擅长.我希望拥有的是一种生成易于记忆的字母数字标识符的简单方法.

在python中创建如下所示的算法大约需要5分钟,这会产生一半的可用结果:

import random

vowels = 'aeiuy' # 0 is confusing
consonants = 'bcdfghjklmnpqrstvwxz'
numbers = '0123456789'

random.seed()

for i in range(30):
    chars = list()
    chars.append(random.choice(consonants))
    chars.append(random.choice(vowels))
    chars.append(random.choice(consonants + numbers))
    chars.append(random.choice(vowels))
    chars.append(random.choice(vowels))
    chars.append(random.choice(consonants))
    print ''.join(chars)
Run Code Online (Sandbox Code Playgroud)

结果如下所示:

re1ean
meseux
le1ayl
kuteef
neluaq
tyliyd
ki5ias
Run Code Online (Sandbox Code Playgroud)

这已经相当不错了,但是我觉得它们仍然很容易忘记它们是如何精确拼写的,所以如果你走到一个同事办公桌并想要查看其中一个,那么仍然有可能遇到困难.

我知道对文本执行三元分析的算法(比如你用德语为它们提供整本书),并且可以生成外观和感觉像德语单词的字符串,因此通常更容易处理.但是,这需要大量数据,并且使其稍微不适合仅为此目的而嵌入应用程序中.

您知道任何已发布的解决此问题的算法吗?

谢谢!

卡尔

Jen*_*ens 2

我不确定这是否回答了您的问题,但也许想一下您需要多少个唯一的错误报告编号。

只需使用四个字母的大写字母数字键(例如“BX-3D”),您就可以获得 36^4 = 170 万个错误报告。

编辑:我刚刚看到你的样本。如果您使用音节而不是辅音和元音,也许结果会大大改善。