1. A method for determining patterns in a data sequence, comprising the steps of: constructing a compatibility matrix which provides a probability between an actual occurrence of an item and an observed occurrence of that or another item between each item in the data sequence; generating candidate patterns, the candidate patterns including items in the data sequence; checking the candidate patterns against the data sequence to determine a match value based on the compatibility matrix; and determining significant matches based on candidate patterns having the match value above a threshold.