我正在开发一个函数,允许人名的拼写错误和别名。我做了一些研究,发现字符串度量和语音库也有相当多的算法。
我尝试过一些,其中雅罗·温克勒给出了一些很好的结果如下。
compareStrings("elon musk","elon musk")) --> 1.0
compareStrings("elonmusk","elon musk")) --> 0.98
compareStrings("elon mush","elon musk")) --> 0.99
compareStrings("eln msuk","elon musk")) --> 0.94
compareStrings("elon","elon musk")) --> 0.89
compareStrings("musk","elon musk")) --> 0.0 //This is bad, but can fix that.
compareStrings("mr elon musk","elon musk")) --> 0.81以上是来自Apache .I的实现,它想知道是否有更好的更好的实现。任何帮助都是非常感谢的。
编辑:@newuserua_ext @Trasher,谢谢,非常感谢。我已经看过了所有与此相关的StackExchange问答。并把这个问题集中在人名上。
发布于 2016-12-09 07:12:37
考虑一下双元电话机。我们成功地使用它来找到名字的“声音一样”匹配。您可以在Apache中找到一个实现:
发布于 2016-12-09 07:16:09
一种可能是Levenshtein距离,它测量给定特定允许操作的字符串的编辑距离。它可以或多或少地用动态规划进行有效的评估,但并不真正适合于确定语音相似性。
https://stackoverflow.com/questions/41053309
复制相似问题