I'm looking for an equivalent of the Fuzzy Lookup Add-In for Excel, which unfortunately doesn't work on my dataset (yields error Unable to set the numberformat property of the range class).

What I need is to get a list of fuzzy matches, e.g. based on Levenshtein distance, based on a dictionary. E.g. I would like to match Micael, Michael, Micheal, Michel, Miguel, Mikael and Mikal. I already have the (non matched) list of names. What I need is a service to iterate over it.

It's OK if the service only combines single matches (e.g. Michel matches Miguel, Miguel matches Michel etc. etc.), but it would be even greater if it produced a collection of synonyms, where all the matching items were collected on a row or in an array.

It would also be good if it supported configurable tokenization, so that e.g. Chr was converted to Kr at a cost of 1 (rather than 2, which would be the default).

The end goal here is to populate the Nickname search in SharePoint 2013 based on a local repository of names.

The service can run locally or online. If somebody knows how to get around the Excel bug, that would also solve the problem.

  • It's unclear to me what you need. Do you need a web-service (which is off-topic here), a library (Sharepoint is developed in C# AFAIK) or what exactly? Why not implement Levenshtein yourself? It's not so difficult. For the Chr to Kr conversion, you probably need a language specific distance algorithm like SoundEx for English or Cologne Phonetics for German. Looks like Chr/Kr is some Eastern Europe specific thing. – Thomas Weller Dec 19 '16 at 13:46
  • @ThomasWeller I guess I can do it in Python, which I have some experience with, but before I spent time on it I would make sure I didn't duplicate someone else's effort. – bjornte Dec 19 '16 at 18:31
  • I just saw a tip about OpenRefine elsewhere. I'll check that out. – bjornte Dec 21 '16 at 10:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.