すべての開発者がそうであるように、私たちは日常業務の一環として、常にある種の識別子を扱っています。ほとんどの場合、それはバグまたはサポート チケットに関するものです。当社のソフトウェアは、バグを検出すると、タイムスタンプとバージョン番号からフォーマットされた名前を持つパッケージを作成します。これは、パッケージの混同を避けるために合理的に一意の識別子を作成する安価な方法です。例: 「バグ レポート 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)
結果は次のようになります。
re1ean
meseux
le1ayl
kuteef
neluaq
tyliyd
ki5ias
これはすでに非常に優れていますが、正確なスペルを忘れがちなため、同僚のデスクに歩いて行き、それらの1つを調べたい場合、まだ困難な可能性がある.
私は、テキストに対してトリグラム分析を実行し (たとえば、ドイツ語で本全体を与えたとします)、ドイツ語のように見える文字列を生成して、一般的に扱いやすいアルゴリズムを知っています。ただし、これには大量のデータが必要であり、この目的のためだけにアプリケーションに埋め込むには少し適していません。
この問題を解決する公開されたアルゴリズムを知っていますか?
ありがとう!
カール