当前位置:  开发笔记 > 编程语言 > 正文

如何从文本字符串php识别地址位置?

如何解决《如何从文本字符串php识别地址位置?》经验,为你挑选了1个好方法。

我正在尝试使用xampp上的php从一长串文本中识别并提取任何输入地址位置(不限于US- SmartyStreet)。

我已经阅读了有关如何执行此操作的几个主题/库,这些主题/库围绕使用NLP,Google的Geocoding API和regex执行上述任务。这3个链接是一些合理的链接,可以帮助链接1,链接2,链接3 / GitHub库(似乎很有前途)。

但是,我不知道这些链接对实施是否有帮助?有人可以帮我吗?



1> 小智..:

毫无疑问,那是地址解析的圣杯。攻击该项目时应考虑的几件事。首先,每个国家/地区都可以有自己特定的地址格式。尽其所能,没有标准的寻址格式。

这里有一些地址格式的很好的汇编,但是即使它们也不总是一致的:

地址格式(按Informatica)

万国邮政联盟的地址格式

一个花了很多时间思考这种事情的家伙的地址格式

第1步-熟悉每个国家/地区的所有可能的地址格式后,您可以将相似的格式分组并为每个组创建一个正则表达式。

步骤2-这很关键。尽一切可能确定该地址可能所属的国家。这会让您知道要使用哪个正则表达式。如果您无法执行此操作,则可能会遇到许多不同的地址候选者。

第3步-使用正则表达式浏览源文本以确定地址的潜在范围,起点和终点。在美国,地址通常以门牌号开头,以邮政编码(5或9或11位数字)结尾。在德国,地址通常以街道名称开头,以城市/州或邮政编码结尾。

步骤4-现在,根据对该国家/地区的格式设置的了解,浏览候选地址以确定该地址的各个组成部分。查找以下组件:

主要号码

街道前定向(有助于获得所有可能值的索引)

街道名称(有助于获得所有可能值的索引)

街道后缀(有助于获得所有可能值的索引)

街道定向(有助于获得所有可能值的索引)

次要数字指示符(有助于获得所有可能值的索引)

次要号码

城市(有助于获得所有可能值的索引)

状态(有助于获得所有可能值的索引)

邮政编码

(还有很多,但这是一个好的开始)

步骤5-如果您只想确定看起来像地址的字符串,就可以了。将此字符串输入地理编码工具,然后获取与其对应的纬度/经度。 Google Maps或OpenStreetMap应该能够为您解决问题。

如果您想知道某个地址是否确实有效(例如,与某项匹配的权威数据集中的已知条目匹配,例如本地邮局),则需要使用一种地址验证工具,例如在地址验证工具中找到的一种简单的谷歌搜索:

Google搜索:“地址验证”

全面披露:我花了很多时间思考这个主题,试图找到解决问题的不同方法,并向很多人解释。我整天在SmartyStreets工作国际地址。

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有