At Decision Science News, we have all kinds of numbers memorized: IP addresses, passport numbers, phone numbers, bank account numbers, logarithms, etc. Once you have stuff like this memorized, you’ll realize how much of a hassle it was to look all this stuff up all the time. Besides, it’s fun.

0 z, s, soft-c ‘z’ is the first letter of zero1 t, th, d ‘t’ has one downstroke2 n ‘n’ has two legs (downstrokes)3 m ‘m’ has three legs (downstrokes)4 r ‘r’ is the last sound in fouR5 l ‘l’ or L is the Roman numeral 506 soft-g, j, sh, ch ‘g’ when turned around gives ‘6’7 k, q, hard-c, hard-g ‘k’ is made of two 7’s back-to-back8 f, v ‘f’ when written in script looks like ‘8’9 p, b ‘p’ when turned around gives ‘9’

Then, when you want to remember a number, you simply replace the digits with sounds and try to make a vivid phrase. Any vowels or sounds not included in the chart are ignored when you are reading back the phrase. For example, suppose you want to memorize Jenny’s phone number: 867-5309.

Here’s how we might do it:

Change 867 to sounds, such as “f”, “sh” and “k”

Change 5309 to sounds, such as “l”, “m”, “s” and “b”

Now insert vowels and letters not on the chart in order to generate a vivid phrase from those sounds.

We came up with the following dialog involving a parent and child at the dinner table:

–“Fish, ok?”
–“Lame! *sob*”

In this mini play, we have “f”, “sh”, “k” “l”, “m”, “s” and “b” in order, and can easily reconstruct 867-5309. Remember, when reading it back, you ignore all vowels and letters that aren’t in the chart.

The only start-up cost is memorizing the chart, but that’s not hard. There’s even a training tool so you can practice until you have the associations down pat.

Of course, since there can be a few possible sounds for each letter, you need to play around a bit to find a phrase that works for you. To generate possibilities for long numbers, we’ve written the following python script.

NOTE 1: In this code, we’ve simplified the digit-sound method to include fewer letters since we always get confused with hard vs soft letters. We find the simplified method works just fine for us.
NOTE 2: This code is written in a hackish, randomized way that generates wasteful dupes. However, we don’t care since it doesn’t output the dupes, it runs super fast, and if you have a huge number of possibilities, you don’t want to see them all anyway. That said, if people have better implementations, we’re open for suggestions. Thanks to Dan Reeves for tightening up the code a bit!
NOTE 3: You can take the output of this program and hunt for words that fit the patterns with a linux call like this.
grep -E ‘^l[aieouy]*m[aieouy]*n[aeiouy]*$’ wordlist.txt
Where you are looking for words that match “l”, “m”, “n” and wordlist.txt is a list of words, one per line. You can find many wordlists here.

12 Comments

Eep, Dan, I’m all for quick, brute-forcey hacks so I won’t complain about the dupiness but that genString is hurting my eyes. Allow me to blow your mind with the most elegant feature of Python: list comprehensions!

Here’s a nicer version of the part that generates a single random mnemonic:

You’ve actually sold me on this now. I tried it on my passport number and sure enough, it’s burned into my brain a couple days later. (And the mapping back to numbers works reliably too.)

One question: Do you recommend going by phonetics or orthographics (or whatever the fancy linguistic term is for the opposite of phonetics)?

For example, would you translate “nation” to “212” or “262”?

The mapping seems phonetics-oriented, like how phonemes that are the same except for voicing (s & z, t & d, ch & j, k & g, f & v, p & b) are treated as equivalent. So maybe that’s an argument for focusing on the phonetics (nation->262) but I’ll probably go with whatever you consider tried and true.

@Daniel. Glad you like it. The next time you fill in a landing card or form without having to get up and look for your documents you’ll have a special thrill.

As a sidenote, I use the phonetics to help me remember the mappings. For instance t is easy to remember b/c it looks like a 1, but d is harder, so I use the fact they both tap the tongue on the roof of the mouth to remember they are a pair. Similarly, p looks like a backwards 9 and is easy to remember but b is harder; nonetheless p and b are easy to remember as a pair b/c they are both closed-lip plosives.

However, to your question, I don’t use the phonetics *alone* to make mnemonics. I look for mnemonics that have *both* the phonetics and the spelling that fit into my (simplified) chart.

So, I’d never use chimera /kimeeruh/ in a mnemonic because the k sound suggests a 7 but the spelling suggests a 6. Similarly, I wouldn’t use “nation” for 262 or 212 … too much chance I might get confused later. For the record, I might use “nosh on!” for 262. Or, keeping with the same theme, “nacho! now!”.

I will come up different mnemonics for 262 depending on the numbers that follow it, in order to make a story. One tip, suggested by both a scientific article by L. Standing in 1973 and a recent book by magician Derren Brown, is to use a striking image. Brown suggests lewd mnemonics are more memorable and I have to agree.

I followed your link to the source and they say unequivocally that it’s only phonetics that matter. So “nation” is “262” and “debt” is “11” not “191”. I had also been worried about double letters and avoided those initially, but it’s now clear. For example, “letter” is “514” not “5114”.

Btw, you mention the similarity of, for example, “p” and “b”. It’s more than similarity: all of those pairs (s/z, t/d, ch/j, k/g, f/v, p/b) are actually indistinguishable when whispered. Handy for saying your lewd mnemonics to yourself under your breath!

@Daniel. Nation is 262, I thought that was clear. My point is that I would never *use* nation to encode 262, as it is an accident waiting to happen. I don’t want to make myself take a version of the Stroop Task every time I decode a number. Accordingly, I make mnemonics in which the spelling and phonetics are in line with my simplified chart.

The fact that nation is 262 would be relevant if this system were a language for communicating numbers to other people. However, for me, a single user who wants to minimize error and effort, it is irrelevant since I would not create such technically correct but begging-for-trouble mnemonics in the first place.

Ah, I hadn’t considered the Stroop angle. I figured if there was no ambiguity then I’d just go with the official rules.

I’m still kind of inclined that way, given that this system has centuries of history. Your Stroop argument is compelling but maybe the potential confusion is surmountable with practice and that might be worth it if it gives you more flexibility to generate memorable (ie, lewd) phrases.

@Danny To each his own. The numbers I choose to remember include some I want to get exactly right so I choose play it safe. Or I should say I’ve chosen to play it safe after experimenting with this system for several years. Also, as I mention in the post (where I say “if you have a huge number of possibilities, you don’t want to see them all anyway”), I think it’s better to have some constraints on the possible space of mnemonics. It’s easier to be creative when you have some constraints in effect (a little something I picked up doing improv).