Для сжатия текста лучше всего семейство PPM. Т.к. текст короткий, то и порядок подойдет небольшой - 2-3. Есть много реализаций на http://compression.ru
PPM выгоден для (очень) больших текстов (> 1 Mb). Для _коротких_ текстов "сжатие", скорее всего, будет отрицательным. Для файлов в несколько Kb (HTML-странички) PPM (даже очень высоких порядков: 8..16 ) по компрессии сравним с LZ.
А почему бы сначала не преобразовать текст BWT, затем передать его MTF или DC и в итоге сжать арифметическим целочисленным кодером? BWT - http://en.wikipedia.org/wiki/Burrows-Wheeler_transform MTF - http://en.wikipedia.org/wiki/Move-to-front_transform P.S. Еще могут быть полезны: http://faqs.org.ru/progr/common/bwt.htm http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D1%8F_%D0%B1%D0%B5%D0%B7_%D0%BF%D0%BE%D1%82%D0%B5%D1%80%D1%8C P.P.S. Вместо BWT не стоит использовать преобразование ST, текст короткий и смысла особого нет.
Бессмысленно для _коротких_ сообщений. BWT практически начнет работать при размере блока в десятки килобайт. MTF - чуть раньше. Арифметика на коротких текстах проигрывает LZ (и вообще, не так много выигрывает у Хаффмановского сжатия, при этом сильно уступая по скорости).