
Ask HN: Apply machine learning to fuzzy matching? - TXV
I would like to receive some input from the wise guys here on this topic.<p>So let&#x27;s say that I have an MDM system (Master Data Management), whose primary application is to detect and prevent duplication of records.<p>Every time a sales rep enters a new customer in the system, my platform runs a check on existing records, computes the Levenshtein or Jaccard or XYZ distance between pair of words or phrases or attributes, considers weights and coefficients and outputs a similarity score, and so on.<p>Your typical fuzzy matching scenario.<p>I would like to know if it makes sense at all to apply machine learning techniques to optimize the matching output, i.e. find duplicates with maximum accuracy. 
And where exactly it makes the most sense.<p>- optimizing the weights of the attributes?<p>- increase the algorithm confidence by predicting the outcome of the match?<p>- learn the matching rules that otherwise I would configure into the algorithm?<p>- something else?<p>Also my understanding is that weighted fuzzy matching is already a good enough solution, probably even from a financial perspective, since whenever you deploy such an MDM system you have to do some analysis and preprocessing anyway, be it either manually encoding the matching rules or training an ML algorithm.<p>So I&#x27;m not sure that the addition of ML would represent a significant value proposition.<p>Any thoughts are appreciated.
======
papaf
I have no experience with fuzzy matching but it sounds a lot like finding
Nearest Neighbours to me. It could be techniques used with Nearest Neighbours
also help with your problem:

Multidimensional scaling is a nice way to visualise distances between objects:
[https://en.wikipedia.org/wiki/Multidimensional_scaling](https://en.wikipedia.org/wiki/Multidimensional_scaling)

A review of Nearest Neighour techniques might be interesting:
[https://arxiv.org/abs/1007.0085](https://arxiv.org/abs/1007.0085)

Also, if you stick with just a similarity score, something like a ROC curve
can help to pick a cutoff:
[https://en.wikipedia.org/wiki/Receiver_operating_characteris...](https://en.wikipedia.org/wiki/Receiver_operating_characteristic)

