1. A computer implemented method for variant string matching, comprising: comparing with a computing device two unidentical strings in a training variant string pair, the two unidentical strings representing the same item from training data in a memory, to determine if they include an identical substring pair and a first unidentical substring pair including a first unidentical substring and a second unidentical substring; determining if the first unidentical substring pair is in the training data; entering the first unidentical substring pair into the training data as a first variant string pair if it is not in the training data; comparing with the computing device the two unidentical strings to determine if they include an interchangeable substring pair and a second unidentical substring pair including a third unidentical substring and a fourth unidentical substring; determining if the second unidentical substring pair is in the training data; and entering the second unidentical substring pair into the training data as a second variant string pair if it is not in the training data.