1. An adaptive method of compressing character data by a computer wherein said data is divided into words and separators, comprising the steps of: initializing all counts and creating empty dictionaries in the computer for the words and separators; determining by the computer for each event in a data stream whether said event is a word or a separator; determining by the computer for each word event whether said word is in the dictionary of words compiled from previously encountered words or is a new word; determining by the computer for each separator event whether said separator is in the dictionary of separators compiled from previously encountered separators or is a new separator; encoding by the computer said event with a predetermined new word or new separator symbol followed by encoding by the computer the characters in the word or separator if said event is a new word or a new separator; maintaining in the computer a count of all word events and a count of all separator events as said events are encoded; maintaining in the computer individual counts for each occurence of a word and for each occurence of a separator; using by the computer the ratio of the number of times a word has been encountered to the total number of words encountered as an estimate of the probability of that word; using by the computer the estimated probabilities with a coding scheme to code the word event; using by the computer the ratio of the number of times a separator has been encountered to the total number of separators encountered as an estimate of the probability of that separator; using by the computer the estimated probabilities with a coding scheme to code the separator event; and repeating the above steps for all events in said data stream.