gpt4 book ai didi

c# - 如何处理不同名称的城市名称

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:30 25 4
gpt4 key购买 nike

我有以下任务。我有一张银行照片 list ,上面有拍摄城市。我正在尝试编写导入这些程序的程序。问题是同一个城市可以有不同的写法:

  • 简单情况:REYKJAVÍK 或 Reykjavik。可以通过不变的不区分大小写的比较来解决。
  • 更难的情况:Lviv 或 Lvov - 可以使用 Levenstein 距离解决。对于这种情况,如果城市以相同的字母开头并且距离小于或等于 1 - 我们可以匹配。
  • 更难的案例:布鲁塞尔 vs 布鲁塞尔。
  • 只是另一个:m.Wroclaw(读作弗罗茨瓦夫市)

最后,我需要将所有这些城市“同义词”映射到一些共同点。

因此我的问题是 - 您能否建议如何实现这一点?

我尝试了什么:

  1. 不区分大小写的比较 + 转换为不变量 - 有助于案例 #1。
  2. Levenshtein 距离,用于查看两个字符串有何不同。真的没有多大帮助。 3 或更大的距离可能意味着这是同义词(例如 Kyiv 和 m.Kiev)或完全不同的城市(例如 Řím 和 Rimini,都是意大利,相同的语言环境)。即使了解城市所在的国家/地区也无济于事。
  3. 尝试使用城市字典 + 找到最接近的术语(标准:相同的长度和相同的首字母,最小距离)。在 7% 的情况下,我仍然有错误。
  4. 使用 Google Places API 查找城市并将其返回到一个语言环境。仍然无效 - 布鲁塞尔和布鲁塞尔对于谷歌来说似乎不同,尽管它们都位于比利时。

如有任何建议,我们将不胜感激。

附言您认为在 99% 的情况下有可能正确地绘制城市 map 吗?

最佳答案

处理这个问题的老派方法是我们在大约十年前完成的——创建一个带有查找的数据库表。假设我们可以确定可能的变化(并不总是一个好的假设,但我们当时拥有的最好的假设)我们可以进行查找并仅存储“正确”的变化(如最常见和/或我们想要的) .这涉及预先做一些研究和步法,但可以带来很好的结果。而且,如果数据库设置正确,您可以在数据中弹出时继续添加更多变体。

99% 会很难,因为变化是未知的。

关于c# - 如何处理不同名称的城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50684279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com