最近要实现一个地址纠错的功能,想请 v2 的大佬们指点一下思路

2019-03-12 13:32:26 +08:00
 icered
目前是根据用户输入地址直接调高德 api 进行匹配,但是用户输入的内容是有一些问题的,就会导致匹配结果出问题,比如说是:
* 错别字输入
* 省市区县镇联动某一级缺失
* 多输入的关键字,如 xxx,加上街道后 **xxx 街道** 也无法匹配
* 故意输错的,如 **上海深圳市** 这样的

现在就是想把这个数据在调用匹配前处理一下,明显错误就提示一下,小错误就自动纠正一下。

ps:现在还是个实习生,技术也不怎么好,问的这个问题可能也有点泛,就想聆听大佬们的思路整理一下,比如有没有现成的一些开放 api 可以用一下啥的。感谢~
2887 次点击
所在节点    程序员
17 条回复
VoidChen
2019-03-12 15:18:31 +08:00
大学跟导师做项目的时候不是经常要做这样的处理吗。。前端输入框做个条件限制,不好限制的后端直接怼过去 try catch 一下,失败就说“输入有误,请重新输入”。。
sheny
2019-03-12 15:30:13 +08:00
上海虽然没有深圳市,但有四川路、南京路。
Wisho
2019-03-12 15:41:40 +08:00
1. 尽可能把所有合法地址的文本数据搞到手,然后自己造轮子写个 trie 树,基于 trie 树实现前缀搜索。
2. 尽可能把所有合法地址的文本数据搞到手,一把梭倒进 Elasticsearch,用 ES 支持前缀联想了解一下。
484A4B
2019-03-12 16:26:05 +08:00
不是一般前面几个都是下拉列表选择的吗?
先选省,再选市,再选区县,然后再填详细地址。
这样要是再写错就 try catch 重新输入咯。
zixiaoguan
2019-03-12 17:09:14 +08:00
往大了讲 这就属于 人工智能的一部分,
往小了说,不按照固定的格式录入 就报错就好啦。
icered
2019-03-12 17:28:07 +08:00
@VoidChen #1 有时候不报错,会返回地址,但是匹配的结果是错的,导致产生一系列问题...
icered
2019-03-12 17:29:19 +08:00
@sheny #2 只要是正确的行政区,输入匹配没问题
icered
2019-03-12 17:41:55 +08:00
@Wisho #3 是准备把国家统计局的地址爬下来,然后再把高德的地址库也弄下来,跟公司自己的地址库做比较。。 字典树可以尝试下,我看看我的水平能不能实现,哈哈,第二种属于搜索引擎了吧,开会的时候公司的大佬们觉得引擎不好做,所以就,开拓视野了,嘿嘿
icered
2019-03-12 17:44:25 +08:00
@484A4B #4 原先是有省市下拉,区 /县,街道 /镇是匹配后显示出来,听需求说觉得这样麻烦,不过这个的确是一个解决方案,会简单一些,只用处理后面的数据
icered
2019-03-12 17:48:43 +08:00
@zixiaoguan #5 是的,错别字方面我看了百度 AI 开放平台,准备试着用一下,然后后面更细一点的,只能靠其他方式识别了,现在的功能特别依赖高德的 api,像明显的上海市杭州市错误,它仍然会返回上海的坐标结果,而不是报错,所以就需要先自己处理一下了
Juszoe
2019-03-12 19:14:31 +08:00
@icered #9 下拉也不麻烦呀,现在市面上的地址选择基本都这么做的,拿个省市县区数据不难吧
liaojl
2019-03-12 19:27:47 +08:00
@sheny 还有桂林路🤣
shiny
2019-03-12 19:33:19 +08:00
如果是快递地址,可以提供个思路:使用现成的地址清洗服务。菜鸟的贵一点,一次一分钱,还有一个快宝的是免费的。
gamexg
2019-03-12 20:20:25 +08:00
以前做过一次地址纠错,印象是直接拿统计局的省市划分匹配。
匹配时移除省市县区等字,如果某一级匹配不到直接匹配全部下一级,例如:地址没有市,那么直接将整个省所有区去匹配。

爬虫爬的一批地址这么处理一遍后就只有少量建设兵团等有问题,专门处理后只有几个有问题的了。
icered
2019-03-13 08:59:27 +08:00
@Juszoe #11 下拉对于频繁操作的还是有点麻烦,实在没办法,只能继续采取下拉了,拿数据的话还是没问题的
icered
2019-03-13 09:00:32 +08:00
@shiny #13 这是个方法,以前都不知道还有地址清洗服务,哈哈
icered
2019-03-13 09:03:41 +08:00
@gamexg #14 也对,直接全匹配下一级,收下了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX