Python调用百度智能云API实现地址识别

1作者介绍

陈燕,女,西安工程大学电子信息学院,2025级研究生

研究方向:计算机视觉

电子邮件:575290751@qq.com

董柯帆,男,西安工程大学电子信息学院,2025级研究生,张宏伟人工智能课题组

研究方向:机器视觉与人工智能

电子邮件:867068473@qq.com

2 算法介绍

2.1 什么是百度智能云API?

百度智能云API是百度面向开发者提供的应用程序编程接口,将自然语言处理、地图定位等AI算法封装在云端,开发者无需自行训练模型,通过代码即可调用对应的AI能力。

以本项目使用的地址识别API为例,只需传入一段混杂的地址文本,接口就能自动拆分出姓名、电话、省市区等结构化信息。

2.2 什么是智能地址识别

智能地址识别是自然语言处理(NLP)与地理信息(GIS)结合的技术,能够从杂乱的非结构化地址文本中,自动提取出收件人、联系方式、行政区划、详细地址等规范信息。

该技术广泛应用于快递录单电商订单处理等场景,能够减少人工录入成本,提升地址信息的标准化程度。

2.3地址识别的原理?

地址识别的核心流程可分为四步:

  1. 初始化默认值:为所有输出字段设置默认值,避免异常输入导致程序崩溃。
  2. NLP文本抽取:调用百度NLP接口,从原始文本中拆分出姓名、电话、省市区县等基础要素。
  3. 地址文本清洗:擦除已提取的姓名、手机号等无关内容,得到纯净的地址字符串。
  4. 地理编码补全:调用百度地图接口,将纯净地址转换为经纬度坐标;若NLP提取的省市信息缺失,通过坐标反向补全行政区划。

3 API获取

1.浏览器搜索“百度智能云官网”:

2.登录百度智能云官网,完成实名认证

3.搜索“自然语言处理”→ 进入控制台→ 创建应用并开通“地址识别”服务:

4.在应用列表页面获取AppIDAPI Key(AK)和Secret Key(SK):

(注:由于本项目涉及经纬度获取,需同时在百度地图开放平台申请地图服务,获取地图AK)

注意:AK/SK是密钥,妥善保存,不要上传到公开代码仓库

4 代码实现

地址识别核心代码baidu_address_detection_v2.py的详细解释如下所示。

右键运行app_server.py后端服务文件,在浏览器中打开前端HTML页面,即可进入智能地址识别工具界面。

在输入框中输入测试文本,点击“一键拆解”按钮,运行结果如下:

运行结果如下:

①识别标准完整地址,所有字段均准确提取,结果如图所示。

②识别缺失省市的残缺地址,程序自动补全对应行政区划,结果如图所示。

③识别仅含地标和电话的极简文本,可准确定位对应区县街道,结果如图所示。

④识别不含姓名、电话的纯地址文本,对应字段显示默认值,程序正常运行,结果如图所示。

⑤输入空字符串或空格时,触发输入拦截,程序报错,结果如图所示。

⑥输入无效乱码文本时,程序返回默认结果,无崩溃异常,结果如图所示。

⑦断网状态下点击解析,前端提示异常,结果如图所示。

5 问题分析

在运行测试过程中,出现了接口调用失败、程序无法正常展示结果的问题:

这是由于百度智能云免费版地址识别接口有严格的调用频率限制,短时间内多次请求就会触发超限限制。解决方法如下:

  • 在百度智能云控制台领取更高额度的免费调用次数,或开通按量计费提升调用上限。
  • 在后端代码中加入异常捕获,触发限流时向前端返回友好提示,避免程序直接崩溃。成功运行结果如下: