如何使用指标比较人名的相似性?

Vam*_*har 5 java algorithm heuristics string-metric

我特别致力于一个允许拼写错误和别名的 人的功能.我做了一些研究,发现字符串度量和语音库也有很多算法.

我已经尝试了一些,其中Jaro Winkler给出了一些好的结果,如下所示.

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
Run Code Online (Sandbox Code Playgroud)

以上是Apache commons Library的实现.我想知道是否有更好的实现可以更好地实现目的.任何帮助表示赞赏.

编辑:@newuserua_ext @Trasher谢谢,我感谢你的时间.我已经完成了与此相关的所有StackExchange问​​答.并发布了这个关注人名的问题.

小智 0

考虑双变音位。我们成功地使用它来找到与名称“听起来相似”的匹配项。您可以在 Apache Commons 中找到 Java 的实现:

https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/language/DoubleMetaphone.html