我正在寻找一个允许对两个字符串进行智能比较的库/类。最好的结果是给出两个字符串如何相似的百分比。我正在比较公司名称,记录在不同存储库中的地址,因此名称中存在许多拼写错误或不一致的地方。
要比较的示例字符串:
"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的结果是:
这样,您知道GoodCompany
,Good Company Ltd
和GoodCompanyLLC
是相似的,而Food Company
拼写错误或完全不相关(KTKMPN
既包含在KTKMPNLTT
和KTKMPNLK
中,又包含在FTKMPNLTT
中)。
在here中查找其他算法比较。
关于c# - 智能字符串比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16713292/