我正在使用 Java 6。我正在寻找一种自动解析地址的方法。我不关心地址是否存在。我发现的最好的东西是 JGeocoder (v 0.4.1),但 JGeocoder 无法解析这样的地址
16th Street Theater, Berwyn Cultural Center, 6420 16th St.
有谁知道有一个可以应对挑战的免费 Java 地址解析器吗?我所说的“解析”是指区分街道、城市、州、邮政编码以及可能的场地名称的能力(上述场地名称是“16 街剧院,伯温文化中心”)。
Update:这个主题更详尽地涵盖在这个 StackOverflow 问题 https://stackoverflow.com/questions/11160192/how-to-parse-freeform-street-postal-address-into-components.
我为聪明街道 http://smartystreets.com我们解析和处理地址,然后得到答案。这就是我们所说的 ”SLAP https://github.com/smartystreets/LiveAddressSamples/blob/master/jQuery/slap.html" or 单行地址解析(或处理) https://smartystreets.com/archive/parse-and-verify-freeform-street-addresses。正式术语是命名实体识别 (NER) http://en.wikipedia.org/wiki/Named-entity_recognition.
我不是 Java 库方面的专家,但我确实知道任何内部实现都不会达到预期。以下是我帮助过的人以前遇到困难的一些常见原因:
-
谷歌/雅虎! / Bing 地图 Web 服务不允许自动查询,也不验证解析地址的准确性。
-
内部代码也只能做出最佳猜测,而无需了解现有地址(数据库)或其他类型的官方来源。我知道您想要一个可以在内部完成此操作的图书馆,但您最多只能猜测......
-
顺便说一句,正则表达式是not答案。我见过的解析地址的最好的正则表达式是通过数百行代码和几个类动态生成的。这是一团糟,并且仅适用于您想要的地址类型expect,并非所有有效的(美国)格式实际上都有。
这是一项极其复杂的任务……除非您拥有合适的工具。我们的一项服务称为实时地址API http://smartystreets.com/products/liveaddress-api,它与 Google 地图类似,可以解析地址并对地址进行地理编码,但更进一步,它经过 CASS 认证并仅返回valid地址,几乎无论输入格式如何。
我鼓励您自己做一些研究,但这可能是最有效、最可靠的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)