中文地址识别api的使用测试,快递地址自动补全,自动识别省市区,地址清洗,到底哪个好用?

3 篇文章 0 订阅

关于地址解析中文地址识别api接口的文章,看这一篇应该够了.


补充关于 小程序智能识别快递收货地址,自动解析出省市区等信息,让地址标准化格式的实现(使用腾讯云api)  代码分享查看连接


最近有个项目中要做到自动填写省市区电话姓名的效果.

以往填写地址都是手动选择  先上下拉动选择河北省--->再通过上下拉动选择沧州市--->再通过下拉选中东光县--->切换到姓名输入框输入姓名--->切换到电话输入框输入电话-----等等这一系列的操作.

市面上已经有这样的app可以实现地址自动识别.就是从微信或者从其他地方复制过来一个地址(格式可能是错乱的),粘贴到输入框就可以自动填写省市区电话邮编姓名等.会去掉一些没有用的信息之类的.

比如:顺丰在线下单app(虽然识别烂的很)

仔细研究了一下,实现这个功能的方法可以是正则也可以是机器算法之类的.写了几篇演草纸后,决定放弃造轮子,于是翻遍全网,搜到了如下几个 伸手党拿来主义的方案,下面我们来对比一下接入上手难易度,跳一下坑,再爬出来告诉你们,对比下识别效率,羊毛量,优缺点之类的各方面.

都有哪些?


先给伸手党一个我的评测(排名不按优良先后):

天行

百度

快递100内两款中的快递100官方的

快递100内两款中的绿图标的

smartParsePro

快宝

腾讯云内两款中的绿图标的

腾讯云内两款中的蓝图标的

京东万象-地址清洗(太贵直接放弃)

菜鸟物流云(一年前折腾一个月没给处理,一年后我也不想提了)

 

第4和第7个实际上是同一个.就是在不同的平台


名称上手难易度是否免费免费每天用量支持多条反馈速度功能性识别准确推荐指数
天行一般总免费5000次15一般553
百度一般不免费一般583
快递100官方简单不免费一般553
快递100绿图标简单不免费8109
smartParsePro复杂免费无限316
快宝一般不免费1000一般536
腾讯云绿图标简单不免费81010
腾讯云蓝图标简单不免费一般8108

但是腾讯云的secret跟其他所有的我测试这些云api一样,我没找到更换的地方.虽然更新不会频繁,可能以后官方会出重置功能吧.总的来说就是上面这样了.我更推荐绿图标那个,速度,识别准确度,地区编码,邮编,也带清洗,都不错,价格也是这些当中除了开源项目最优方案,具体选快递100平台还是腾讯云平台看个人了.我觉得还是大厂稳定性应该没问题,所以腾讯吧.

下面逐一进行测试:


天行api:

我进来以后一看,升级高级会员?那就一定是一个收费的了.不管了.看看能不能测试一下先.

果不其然,就知道不花钱也许用不了.那就申请下试试

要经过验证邮件,然后申请接口.验证了邮件以后不知道以后会有啥问题.也许只是为了安全.

赠送的5000次,你要每天只能用15次的用完...不过申请倒是没有人工审核之类的,直接秒过,可以直接测试

识别后的json如下

{
  "code": 200,
  "msg": "success",
  "newslist": [
    {
      "mobile": "13800138000",
      "name": "马云",
      "province": "浙江省",
      "city": "杭州市",
      "district": "滨江区",
      "postcode": "310052",
      "detail": "浙江省杭州市滨江区网商路699号"
    }
  ]
}

以上是他的默认测试内容,

但是通常我们的顾客给的地址是本土化的地址,就是说只告诉你一个区就好了然后是详细地址门牌号之类的.两个人聊天时候或者是在物流发货之类的,不可能傻子一样的跟一个本地人,报一个本地地址还告诉别人咱们是那个省,哪个市,所以,解决需求才是我们要做的.还有,有的时候人们习惯把电话和地址之类的不管前后的直接说出来不会根据格式写的.这就是人,自由度高.

给他加点难度,信息混排,缺省能否补全?:东光县科技园南路444号马晓姐13243214321

结果,识别的一塌糊涂

{
  "code": 200,
  "msg": "success",
  "newslist": [
    {
      "mobile": "13243214321",
      "name": null,
      "province": null,
      "city": null,
      "district": null,
      "postcode": null,
      "detail": "东光县科技园南路444号马晓姐"
    }
  ]
}

Pass,不用接入了,继续寻找下一个

如果你好奇,可以注册试试:

https://www.tianapi.com/signup.html

坑:

注册页面随便写了个昵称提示注册过了,然后改了昵称再点注册,验证码就不能刷新了...但是那都是小事儿,刷新一下重新填写就好.

地址混排不支持

注册送的5000一次15个不如不送.


百度api

有一篇网友写的正反解析地址的文章,虽然都是代码,大家可以先看一下,但如果你不只是要通过读别人代码的方式来学习的话,我建议就不用看了.不如直接看官方实例

使用步骤,也是要登陆注册百度账号(大多数人应该都有的)

然后创建应用

当然你不创建应用也是可以直接测试一下效果的:

点击这里进入测试页面

这里还是使用难倒天行api的那个地址测试:

哦,又是失败的例子.百度???智能汽车???中国最大搜索引擎???

此时的我真的是一脸黑人问号

Pass,不好用,不用接入了


快递100

我以前查快递都是用快递100,因为那时候申通圆通之类的官网查询地址还需要验证码太麻烦,所以直接快递100查询.

搜到这个页面的时候,我还是觉得有希望了的,毕竟好像在快递行业摸爬滚打了很久的样子,应该可靠(也许不可靠,百度都让我大跌眼镜了......)

进来看了下,他做了个云平台,里面是有他自己的业务也有别人的.在电子商务的api下面找到了俩好像可以用的


先试试这个服务商为快递100的吧...

what? 一快钱100次?  多钱?

1/100=0.01,哦不算贵,一天我的一个客户订单两百单才2块钱.100个客户...好吧,先不想价格了,也许用钱的就稳定呢,就好用呢,不像前两个那么坑呢...

看了产品详情

就一句话介绍我也是醉了.有没有测试页面?有,仍然需要注册......

注册什么的,我很讨厌的,可是 竟然测试的时候要收费...1块钱...100次 反正一快钱也发不了家,也不会让我倾家荡产来吧.开始测试吧.

解析的仍然是一塌糊涂.一快钱废了...

反正md一快钱都花了,又把另外一个买了一下

哎?这个貌似行!

本来到这里,我应该进行下一项直接到项目和代码中接入了.但是上瘾了,既然要做一个入坑记录文章,那就把所有的都给大家踩一遍吧.这个暂时先做备用

 看了一下产品描述觉得还行,就是我想要的功能,你们要看点一下,这是连接

进入下一个


smartParsePro

这是一个开源的项目,介绍是地址智能识别Pro(支持vue、小程序)/省市区街道四级联动(支持省市区街道/电话/邮编/姓名/身份证号识别)

测试地址

同样我也给他出了那道题东光县科技园南路444号马晓姐13243214321

人名呢??????

省市区是自动给补上了,人名没了.马晓姐就不是人吗...Pass还是不能用

如果对完全开源感兴趣的,可以点此连接查看,有网友发的博文


快宝

也是一样,要注册,公司名字随便写,当然 别人也可以随便写,写完了你就用不了....

服务市场内,有地址清洗和智能解析,每天免费1000次,对一般小卖家是应该够用了吧,规模app是不可能够的了.

优点:

免费1000次每天

多行地址可以\r\n换行一起识别(不知道按照一条计费还是多条计费)

缺点:

没有测试接口的便捷地址,对接代码导入后还不能直接用,花了半小时弄好后,效果还不行.坑指数满分五颗星我给他6颗

代码粘进来后就是这样的

我知道我是采坑的,但是踩上了雷我也要把雷拆了.并且得测试一下效果如何

喏,得到的结果就是这样的,收件人姓名呢?没提取出来,是不是它不认识马晓姐,认识马小姐?测试一下.also不行~~~

所以我怀疑是不是拿了smartParsePro的代码出来卖

关于他上面宣传的可以用图片识别的方式来操作,我个人认为,应该用图片识别就行了.因为图片里面有空格之类的,虽然业务场景中有很多人输入的微信发过来的地址是没空格或者格式混排的他识别不行,但是如果业务量不大,接受人名识别可能会有问题的,可以试试.但是我个人总结一下:

过程复杂,没有测试页面,识别结果也不行,Pass,下一个


腾讯云市场Api

在百度搜索地址识别api发现

好奇进来看看,发现根本没有这个api,但是我印象中腾讯云市场,阿里云市场,都有很多api可以使用,虽然收费但是可靠性比较好,于是,搜腾讯云市场,找到以下两个接口.

嗯?第一个在快递100中看到过,效果挺不错,看看第二个

还是要注册??哦不发现可以微信扫一扫进入.

第二个的介绍说:

传入国内收货地址任意混排文本,接口将自动分词、智能匹配国内行政区,自动识别区分出省、市、区、街道、姓名、手机号等,方便用户将复制的文本内容一键填写到收货订单表单中,提高用户体验,缩短用户下单时间。

看起来不错.看了一下示例代码,也挺全面

基本的东西都提示了 代码粘贴进来基本不用改,改了secretid和secretkey,发现代码还是有md5签名校验的地方不通的,简单修改后可以了.测试发现...需要订购...

好,订购,5块钱1000次够我测试了.但是没有免费次数

识别后的结果这样:

{"code":0,"message":"成功","result":{"street":"科技园南路444号","full_name":"马晓姐","telephone":"13243214321","mobile":"13243214321","province":"河北省","city":"沧州市","area":"东光县"}}

行,也是可以用的.识别也不错.

用此代码改了请求url,也能请求那个绿色的1块钱1000次那个.

那个绿色图片的跟这个识别的都可以.就进行一个更深入的测试吧,对比两者.

发现价格差不多,速度上,100次连续请求,绿色的用时9秒多,蓝色图标的,用时24秒.既然这绿色的表现不错,最后决定用这个绿色的不折腾了.也没有在google和baidu上查到更多的地址识别api,价钱可以接受的情况下,就不享用免费的午餐了.


我本以为阿里云市场作为国内的api综合市场领头羊,能有一个比前面更好的api(其实已经满足需求了现在)但是阿里云市场内:并,没,有,.....


前几天,有网友留言说:

京东万象-地址清洗:


我认为,如果是你们看到这个价格,也不会购买使用的.我不管他识别的多准,这个价格...识别一次,一根烟,识别20次,一盒中华没了???

 


高德API接口(地理/逆地理编码) :

显然跟我们所需要的使用场景是不一样的.完全两码事,pass


 菜鸟物流云-地址纠正服务:

我之所以之前就申请了但是没把他拿出来说,是因为,短期内接入成功的可能性很低.

我19年2月就申请过了,但是想使用这个,还是非常不容易的,首先你要追着小二屁股后面跑个一两个月,然后你还不一定能通过审核,然后,菜鸟的应用是需要发布上线的,

看这状态都是申请中和编辑中的,申请后要联系钉钉,钉钉没人回复要发工单,发工单后要再加另外的人的钉钉,再等回复之类的.

我印象中,当时是要先申请应用,再订阅内容,只能订阅10个,多了不行少了也不行,然后还有绑定资源之类的好多参数和设置,最后也是都没给处理.聊天记录和工单我就不发截图了.影响也不好.我之前其他的技术文章就吐槽过阿里的小二...

所以,我个人选择pass,你们如果要折腾,真的能成功了,我佩服

 

 


补充:

2020年05月20日12:16:39:

腾讯云的secret信息如果需要重置,联系商家或者工单即可,前两天重置过了分享给大家.

  • 27
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
要实现地址自动识别省市区,你可以使用第三方的地址库来辅助实现这个功能。一个常用的地址库是element-china-area-data,它提供了中国省市区的数据。 首先,你需要在你的Vue项目中安装element-china-area-data。你可以通过npm安装它: ```bash npm install element-china-area-data ``` 然后,在你的Vue组件中引入并使用地址库: ```javascript <template> <div> <input v-model="address" placeholder="请输入地址"> <button @click="recognizeAddress">识别地址</button> <div v-if="recognizedAddress"> <p>省份:{{ recognizedAddress.province }}</p> <p>城市:{{ recognizedAddress.city }}</p> <p>区县:{{ recognizedAddress.district }}</p> </div> </div> </template> <script> import areaData from 'element-china-area-data'; export default { data() { return { address: '', recognizedAddress: null }; }, methods: { recognizeAddress() { // 使用正则表达式提取省市区信息 const regex = /(.*?[省市自治区])(.*?[市州盟])(.*?[区县市旗])/; const matches = this.address.match(regex); if (matches && matches.length >= 4) { const province = matches[1]; const city = matches[2]; const district = matches[3]; // 判断省份、城市、区县是否在地址库中存在,如果存在则赋值给recognizedAddress if (areaData[province] && areaData[province][city] && areaData[province][city][district]) { this.recognizedAddress = { province: province, city: city, district: district }; } else { // 地址不符合规范或不存在于地址库中 this.recognizedAddress = null; console.log('地址不符合规范或不存在于地址库中'); } } else { // 地址不符合规范 this.recognizedAddress = null; console.log('地址不符合规范'); } } } }; </script> ``` 在上面的代码中,我们使用了一个输入框和一个识别按钮,当用户输入地址并点击识别按钮时,调用`recognizeAddress`方法来识别地址。我们使用正则表达式提取地址中的省份、城市和区县信息,并在地址库中进行匹配。如果匹配成功,则赋值给`recognizedAddress`变量,在页面上展示相关信息。 请注意,这只是一个简单的示例,你可以根据实际需求进行修改和扩展。另外,element-china-area-data也提供了更详细的数据,你可以根据实际需求使用更多的地址数据来实现更精确的地址识别

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Afterwards_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值