Matching This code generates hashes for names, then uses the hashes for course matching. After that, a combination of distances is used for the final matching This process needs to be tuned using a training set of matches