比较两个地址字符串时,如何获得百分比准确度匹配?

net*_*ken 3 c# vb.net string match

我试图比较两个名称和地址列表,以查找查找唯一数据.我可以很容易地提取出所有那些在两个列表中完全相同的字符串,然后我留下的名称和地址不同但可能是同一个人.即:

列表1史密斯J Ph234567 34 Smith st

列表2中的条目Smith John Ph234567 34 Smith st

要么

列表中的条目1 Smith J Ph234567 34 Smith Rd

列表中的条目2 Smith J Ph234567 34史密斯路

我想为看起来彼此相似的条目添加标签,例如80%匹配.

嵌套的Foreach循环不起作用,因为它们匹配每个单词或字母(取决于您如何在字符串中将其与每个其他单词或字母一起写入).

For循环不能作为一个更改工作J vrs John在更改后为每个条目创建错误.

我在vb.net中写它但也可以从C#翻译

Kon*_*lph 11

通常通过计算字符串之间的编辑距离来解决这种问题.例如,从Levenshtein距离开始.

这将为您提供一个分数(将一个字符串转换为另一个字符串所需的"编辑操作"数).要将其转换为百分比标识,您需要将其标准化为较大字符串的长度(沿着某些行的长度percent = (largerString.Length - editDistance) / largerString.Length).