Pages

Sunday, July 25, 2010

Number chunking

I learned some excellent mental math techniques from a book I bought recently by Arthur Benjamin on mental math called Secrets of Mental Math: The Mathemagician's Guide to Lightning Calculation and Amazing Math Tricks. First I was put off by the... hm, how shall I say this, over-enthusiastic way of writing. I found that this informal way of writing did not help my motivation at all when attacking hard (relative to my skill level) problems. Later, I felt more comfortable with this style of writing, when I could hack the problems much quicker, because my ego wasn't longer in the way.

I read it before going to bed, if I can't fall asleep, because solving problems help me relax or when I'm on the throne in the morning (I'm fairly regular, hooray for me).
Do not be mislead by this, I think the book is great

Fairly early on while reading the book, I realized that I have a terrible memory for numbers. I'm quite strong on algebra but I have trouble remembering and recalling numbers. Instead of struggling with something that is hardwired into this gray gooey mass, one might as well resort to tricks of the mind. The book I mentioned is great, because it circumvents the whole nature nurture debate thing with good mental algorithms virtually anyone can learn.

So my next project is to create an python app that will help me do number chunking and unchunking. Chunking is general name for a technique to translate a seemingly unrelated group of information, into something that is more compressed, so that the chunked data is easier to remember and recall. The technique Benjamin discusses in his book is called phonetic chunking, no I call it that, actually he calls it phonetic code.

The phonetic code consists of mapping decimal numbers to certain consonant sounds:

#soundsounds likephonetic alphabet
0z,szero, soundSorry, I'm too lazy to fill this in...
1t,dtear, fat,thud,door?
2nnostril?
3mmonth?
4rrow,war?
5llove,bell?
6j,ch,shjob,cheer?
7k,glock,grow?
8f,vfun,vulva?
9p,bplastic,burp,button,pub?

Other consonants and vowels may be used freely to match words to numbers, thereby chunking them together.

I realize that there is a strong anglo-saxon English linguistic bias here, but I believe this technique is applicable to any language; even clicking ones.

The author suggests a mnemonic to remember the phonetic code by chunking those together as Tony Marloshkovips (s for final 0).

I'd like to master number chunking and unchunking by using an app at regular intervals that I write in python. Just like my mental arithmetic python app.

My first design of the algorithm goes more or less like this:
  • Generate a sample set of long integers;
  • Translate each number into the correct phonetic code;
  • Write an algorithm to map phonetic codes to words from a dictionary, optimizing on certain properties that aid the human memory, (i.e. sex, death, love, any theme that evokes strong emotion);
  • Let the user put in her own chunky words, distil the relevant phonemes from the words and translate them to numbers and compare with the numbers to be learned;
  • Randomly show word sequences for user to translate to numbers;
  • Tag frequently used words for future reference;
  • Record the time to chunk and remember/recall and unchunk long number sequences;
  • Constantly measure the semantic distance of the word used by the human user.
    Some other random ideas:The CMU pronouncing dictionary
    OCZ's neural impulse actuator
    • use dictionary.reference.com as a resource.
    • (dis)prove hypothesis that short semantic distance between words in the chunked phrase lead to improved number chunkability and recall ability;
    • (dis)prove hypothesis that words (by themselves or together) in the chunked phrase that give strongest emotional response lead to improved recall ability or chunkability (use ocz nia for this experiment);
    • Omfg, I just realized I can also used nia for my mental arithmetics training tool.

    Apparently, algorithms exist to index words phonetically, the soundex algorithm by Odel and Russel (1918) and also works on the premise that words are converted to numbers. I just realized that English may not be the best language to do this, since it has 24 letters to indicate 44 distinct phonemes, whereas for instance Russian has a better mapping of phonemes to letters. This is my gut feeling about Russian, I can read cyrillic but I don't speak the language fluently enough to give more examples. I guess someone in academia has already generated the samples of different languages to compare the phoneme to letter correspondence, in n-grams or whatnot.

    I think google has some form of prescience or something. While I was researching and reading up on soundex etc. I suddenly came accross the CMU pronouncing dictionary. This will probably prove to be handy for this application I'm thinking about.

    No comments:

    Post a Comment

    Please help to keep this blog clean. Don't litter with spam.