Algorithms for edit distance give a measure of the distance between two strings.
Question: which of these measures would be most relevant to detect two different persons names which are actually the same? (different because of a mispelling). The trick is that it should minimize false positives. Example:
Obaama Obama => should probably be merged
Obama Ibama => should not be merged.
This is just an oversimple example. Are their programmers and computer scientists who worked out this issue in more detail?