Harry is a small tool for comparing strings and measuring their similarity. The tool supports several common distance and kernel functions for strings as well as some excotic similarity measures. The focus of Harry lies on implicit similarity measures, that is, comparison functions that do not give rise to an explicit vector space. Examples of such similarity measures are the Levenshtein distance and the Jaro-Winkler distance.

Harry is implemented using OpenMP, such that the computation time for a set of strings scales linear with the number of available CPU cores. Moreover, efficient implementations of several similarity measures, effective caching of similarity values and low-overhead locking further speedup the computation.

Harry complements the tool Sally that embeds strings in a vector space and allows computing vectorial similarity measures, such as the cosine distance and the bag-of-words kernel.

A tutorial is available here: http://www.mlsec.org/harry/tutorial.html

Changes to previous version:

This release feature several runtime improvements. Moreover, support for Soundex transformations and output modules for Matlab and JSON have been added. The distribution package also contains a new tutorial with examples.

This release feature several runtime improvements. Moreover, support for Soundex transformations and output modules for Matlab and JSON have been added. The distribution package also contains a new tutorial with examples.

This new release implements 21 similarity measures for strings (Option -M). It supports splitting the computation of large similarity matrices into blocks and thus allows comparing large sets of strings (Option -s as well as -x and -y). The command-line interface has been improved and several minor bugs have been fixed.