将城市名称缩短为人类可读代码的算法

时间:2012-04-12 09:56:13

标签: string algorithm url geolocation

我正在使用此项目的网址中的区域和城市。现在许多地区和城市可能有很长的名字,而缩短的地区/城市信息的组合可能会导致模糊不清。

是否有一种简单的方法可以自动缩短单词的方式,使它们仍然有意义且可读,但缩短而不仅仅是缩短结尾?

喜欢将Bremerhaven变成Brmhvn或康涅狄格州New Haven到NewHvn-Cnctct?

3 个答案:

答案 0 :(得分:3)

http://www.maxmind.com/app/worldcities

可免费提供世界城市列表中的2797245个城市

我会设计类似于

的网址格式
{Country TLD}/{Abbreviation for state, province or prefecture}/{Trim of county or district}/{Trim of city}

一些例子,

  • www.example.com/US/NY / - /纽约
  • www.example.com/US/NY/ Westcheste / MtVernon(Mount Vernon in Westchester County, New York - 县修剪为10个第一个字符。城市名称中的常用词语缩写为
  • www.example.com/DE/Bavaria/Munich
  • www.example.com/JP/Tohoku/Miyagi/Sendai(Sendai

对于该地区,您可能需要考虑使用ISO 3166 code。所以,慕尼黑和仙台的上述例子看起来像是

  • www.example.com/JP/Tohoku/ JP-04 /仙台
  • www.example.com/DE/ DE-BY /慕尼黑

其他线索

希望它有所帮助。

答案 1 :(得分:2)

如果你想让较短的版本对人类有意义,我认为这是非常复杂的,因为它不能很明显地代表全名。

例如:我自己的赫尔辛堡市。鉴于这个名字,我会将它分成每个音节一个字母。 Hel-Sing-Borg - > HSB。 但我从未见过有人使用这个缩写。我认识的每个人都使用HBG。

简而言之,我认为制作一个能够为任何特定游戏制作逻辑首字母缩写词的功能相当容易,但很难尝试制作一个人类可识别的功能。

如果您只想从名称中删除一些字母,那可能会容易得多,但您可能希望与英语教授交谈,以了解您可以删除哪些名称而不影响可读性。但这是有可能的,而且很可能是关于我们如何阅读您可以参考的单词的公开研究。

答案 2 :(得分:2)

您可能更好地建议采用现有的代码列表而不是自己编写代码。例如,您可以使用IATA codeszip/postal codes,甚至是电话拨号代码(找到您自己的链接)。