1. A computer-implemented method of compressing a set of data, the method comprising: generating a plurality of input patterns based on the set of data; generating, for each of the plurality of input patterns, a set of probability values associated with a set of sequences of input patterns, wherein each probability value indicates a likelihood that an input pattern has a same cause as a sequence of input patterns; assigning, to each of the plurality of input patterns, a sequence of input patterns based on a probability value that indicates a highest likelihood that the input pattern has the same cause as the sequence of input patterns; generating, for each of the plurality of input patterns, an index which associates the input pattern to the sequence of input patterns to which it is assigned; and storing the index generated for each of the plurality of input patterns in association with the set of data.