[英]How can I get a percent accuracy match when comparing two strings of an address?
我正在尝试比较两个名称和地址列表以查看唯一数据。 我可以轻松地提取出两个列表中所有这些完全相同的字符串,然后我留下了不同但可能是同一个人的姓名和地址。 IE:
列表中的条目 1 Smith J Ph234567 34 Smith st
列表中的条目 2 Smith John Ph234567 34 Smith st
要么
列表中的条目 1 Smith J Ph234567 34 Smith Rd
清单 2 中的条目 Smith J Ph234567 34 Smith Road
我想为看起来彼此相似的条目添加一个标签,例如 80% 匹配。
嵌套 Foreach 循环不起作用,因为它们匹配每个单词或字母(取决于您如何将它与其他每个单词或字母一起写在字符串中。
For 循环不能作为一个更改工作 J vrs John 在更改后为每个条目创建错误。
我是用 vb.net 写的,但也可以从 C# 翻译
这类问题一般通过计算字符串之间的编辑距离来解决。 例如,从 Levenshtein 距离开始。
这将为您提供一个分数(将一个字符串转换为另一个字符串所需的“编辑操作”的数量)。 要将其转换为百分比标识,您需要通过较大字符串的长度对其进行标准化(类似于percent = (largerString.Length - editDistance) / largerString.Length
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.