我正在寻找一个允许对两个字符串进行智能比较的库/类。最好的结果是给出两个字符串如何相似的百分比。我正在比较公司名称,记录在不同存储库中的地址,因此名称中存在许多拼写错误或不一致的地方。

要比较的示例字符串:

 "Good Company Ltd." vs. "GoodCompany"
 "Baker Street 2" vs. "Baker Str. 2"

如果得到相似度百分比的结果,则可以作为智能合并此类数据的输入。

您知道有什么好的库可以进行这种智能字符串比较吗?

最佳答案

Levenshtein在这种情况下不合适。修剪后的“Good Company Ltd”和“GoodCompany”的距离为3,而“Good Company Ltd”和“Food Company Ltd”的距离为1,但含义完全不同。我建议使用Metaphone or Double Metaphone算法。

使用online metaphone comparer的结果是:



这样,您知道GoodCompanyGood Company LtdGoodCompanyLLC是相似的,而Food Company拼写错误或完全不相关(KTKMPN既包含在KTKMPNLTTKTKMPNLK中,又包含在FTKMPNLTT中)。

here中查找其他算法比较。

关于c# - 智能字符串比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16713292/

10-14 08:01