1. A method for compressing a string of symbols comprising the steps of: searching a dictionary for a symbol received in the string of symbols; and upon detecting the symbol is not stored in the dictionary, learning the symbol by storing the symbol in the dictionary; and transmitting the symbol in a code word.