Pass-Join: A Partition based Method for Similarity JoinsGuoliang Li, Dong Deng, Jiannan Wang, Jianhua Feng AbstractAs an essential operation in data cleaning, the similarity join has attracted considerable attention from the database community. In this paper, we study string similarity joins with edit-distance constraints, which find similar string pairs from two large sets of strings whose edit distance is within a given threshold. Existing algorithms are efficient either for short strings or for long strings, and there is no algorithm that can efficiently and adaptively support both short strings and long strings. To address this problem, we propose a partition-based method called Pass-Join. Pass-Join partitions a string into a set of segments and creates inverted indices for the segments. Then for each string, Pass-Join selects some of its substrings and uses the selected substrings to find candidate pairs using the inverted indices. We devise efficient techniques to select the substrings and prove that our method can minimize the number of selected substrings. We develop novel pruning techniques to efficiently verify the candidate pairs. Experimental results show that our algorithms are efficient for both short strings and long strings, and outperform state-of-the-art methods on real datasets. CodeOverviewWe are happy to release our binary code of passjoin. In this version we only support self-join operation. We provide two kinds of our passjoin binary code which can be executed on 32-bit machine and 64-bit machine respectively. For further information please send an email to Dong Deng. InputRun passjoin-64 on 64-bit machine from command line: chmod +x passjoin-64 Description:
Outputpassjoin prints four lines for each similar pair (string1, string2): id1 id2 n
245 789 Description: The first line consists of the line id of string1 in file and the line id of string2 in file. The second line is string1 and the third line is string2. The fourth line is a blank line. One example output for the similar string pair (pvldb, vldb) is shown on the bottom. RequirementHave GCC 4.2.4 or higher DownloadDatasets
ContactIf you have any questions about this study, please feel free to contact Dong Deng. |