1. A method of matching pattern-based data, comprising: extracting first distinct values from a first input dataset and second distinct values from a second input dataset; generating a first pattern based on symbols appearing in the first distinct values and a second pattern based on symbols appearing in the second distinct values, the first and second patterns comprising nodes and one or more delimiters; calculating support levels for the nodes; removing one or more delimiters from the first and second patterns using the support levels; wherein removing one or more delimiters from the first pattern further comprises calculating the support level at a node by summing support values of incoming transitions to that node; initializing an expansion factor; expanding a language of the first and second patterns at the expansion factor, the expanding of the language diminishing a size of the first and second patterns and decreasing a precision of the first and second patterns, wherein a number of distinct symbols allowed by the expanded language of the first pattern divided by a number of distinct symbols allowed by the non-expanded language of the first pattern equals the expansion factor and a number of distinct symbols allowed by the expanded language of the second pattern divided by a number of distinct symbols allowed by the non-expanded language of the second pattern equals the expansion factor; incrementing the expansion factor and repeating the expanding of the language when the expansion factor is less than a predetermined value; computing a similarity of the first pattern and the second pattern using the expanded language of the first and second patterns; and matching the first input dataset with the second input dataset based on the similarity computation.