0

我正在导入一个城市列表,并根据此列表中的值,执行进一步的操作。然而,这个列表是手动输入的,这使得它很容易出错。

我想知道是否有某种类型的打字错误识别(比如谷歌使用“你的意思是 x 吗?”)。

我尝试检查部分城市文本,但这会产生比它解决的更多的错误(因为城市的一部分也可能作为另一个城市的一部分出现)。

好消息是,我有一个记忆中正确城市的列表,所以也许它可以与一个模式匹配?

我的问题是:dotNet 中是否有处理这些问题的子框架框架?如果没有,有人可以指出我正确的方向吗?

以下是手动输入列表中唯一值的示例(标有 X 的字段不正确,应映射到正确的字段):

GDANSK
HELSINGBORG
HRADEC KRALOVE
HRADEC KRALOVE 7    x
HRADEC KRALOW       x
HYLLYKALLIO
JARVSO   
JERVSO              x
KATOWICE
KOTKA
KRAKOW
KULJO
LOIMAA
LULEA
MINSK
MINSK CEZ           x
MOLNDAL
NORRKOPING
NORROPING           x
NYBORG
NYIERGYHAZA
NYIREGYHAZA         x
OSLO
OSTRAVA
OULU
PILZEN              x
PLZEN
POZNAN
PRAHA
PRESOV
PUNANE
RIGA
RISKOV              x
RISSKOV
RODDING
SANDEFJOR           x
SANDEFJORD
SARPSBORG
ST PETERSBURG
4

1 回答 1

2

我会提出某种基于编辑距离的匹配。Levenshtein 距离广泛用于拼写检查器和字符串匹配算法:

看看这篇关于 Levenshtein_distance 的维基百科文章

这是C# 实现的链接

您想要做的是,在没有完全匹配的情况下,显示在您的已知城市列表中找到的前 N ​​个最近的 Levenshtein 匹配项。

于 2013-11-07T13:23:46.233 回答