【高分】如何判断一个地址字符串中除行政区划外的详细地址从第几个字符开始?

software_artisan 2016-07-30 10:44:20
例如:『北京海淀中关村大街16号』里面『中关村大街16号』是从第4个字符开始。
...全文
2375 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Psycheeeee 2017-03-01
  • 打赏
  • 举报
回复
问下楼主,你的匹配算法是如何实现的,可否提供一些思路,谢谢!
software_artisan 2016-08-02
  • 打赏
  • 举报
回复
人工处理的部分确实可以这么干!这样就全自动了。嗯嗯
software_artisan 2016-08-02
  • 打赏
  • 举报
回复
引用 14 楼 diaodiaop 的回复:
这个我觉得我有办法,..可能就是麻烦一些. 你可以先用地址 请求地图接口 那么地图接口会给你返回 这个地址的GPS信息 也就是精度纬度. 然后 你在通过精度纬度 在去调用地图接口 他会给你返回 这个GPS的详细地址. 他返回的就是标准的了...
好办法!除了速度不快,还有免费接口调用次数有限外。。。
by_封爱 2016-08-02
  • 打赏
  • 举报
回复
这个我觉得我有办法,..可能就是麻烦一些. 你可以先用地址 请求地图接口 那么地图接口会给你返回 这个地址的GPS信息 也就是精度纬度. 然后 你在通过精度纬度 在去调用地图接口 他会给你返回 这个GPS的详细地址. 他返回的就是标准的了...
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
好吧。。。举个栗子: 1、一个字符串『北京海淀中关村大街18号』,我可以识别成『北京市』+『市辖区』+『海淀区』+『中关村大街18号』 2、一个字符串『北京海淀中关村大街18号』,我可以识别成『北京市』+『市辖区』+『海淀区』+『海淀中关村大街18号』 我的问题是第二种情况下,在最后的部分不能去掉『海淀』二字,不是你们说的哪些啊
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
好吧,搞了4级行政区划数据库。。。脏数据已经减少到了一个可以接受的程度。通过20w条数据的测试,适配率已经高达99.8%。因为要求清洗后的数据绝对准确,所以没法用任何概率性的方法。剩下的就交给人处理了,我也是没办法了。 麻蛋,国家统计局居然有到村、居委会的5级行政机构的数据!然而页面上放出来的只有3级,需要从一个很不起眼的入口进去才能查到5级的数据。。。虽然城市里面一般只能适配到区县一级,但农村里面后面2级基本都能适配到。
  • 打赏
  • 举报
回复
你这个还是找AI吧,对于人来说 『海淀区』和『海淀』可以很容易的理解成一个,但对于电脑这种说1就是1的东东来说,这是件很困难的事情 如果标准化只是需要一次性的话,可以考虑半人工半程序处理,即你的区域表要有对应的别名表,就以『海淀区』为例,『海淀』就是它可能的名字之一,然后以别名表进行筛选,成功查询到的,那么就自动处理掉,否则人工处理
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
引用 4 楼 shingoscar 的回复:
我只能说:那就复杂了 如果数据已经是录入的,应该先做个标准化处理,比如搜索到“北京”,后面没有“市”,就给补上 如果是等待别人输入的,那就把行政区域的部分做成下拉菜单,详细地址才是手工输入
我要做的就是你说的标准化处理啊!!!!
wanghui0380 2016-08-01
  • 打赏
  • 举报
回复
前面已经说了,准确的判定基本没有,只能采取概率分析,当然概率分析本身也只是说“模糊AI”,也就是是大概,可能,估计这个“东莞广东省”是笔误,是数据 本来就是一个概率判定,上面那个你认为是胀的,因为他后面跟了镇,村 如果说我写的是“东莞广东省XXX设备研究院”呢,你认为他是不是脏数据??我认为可以不是,因为从概率上来说,东莞可能就存在一个牌子叫“广东省XXX设备研究院”的研究院,你认为这可不可能 所以,前面说可以使用贝叶斯概率统计来玩
Poopaye 2016-08-01
  • 打赏
  • 举报
回复
我觉得手工的现在应该也搞定了
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
引用 9 楼 wanghui0380 的回复:
你知道为啥,京东/淘宝都不会让你手填,即使你有全名地址,京东,淘宝们都会让你在系统里去选择,因为那是标准滴。京东们没能力解决么?? 常规是可以搞,问题怕特殊。比老家有个地方叫董市县,呵呵,你告诉我这是市还是县??如果按你说滴还少写一个县,直接写董市你不更晕 ps:如果你非要这样搞,也行。参考朴素贝叶斯分析,当然即使是贝叶斯也只是概率分析,也就是他可能有9成为县,8成为市,6成是街道,他并没有一个说他就是什么,只能说他可能是什么
这个地址不是自己的,是别人给的,而且这个别人不是一个,是好几十个。。。。。所以呢,想要统一格式还不如祈求天上掉下一个林妹妹来得实际点。行政区划的格式化已经接近完美解决,就是详细地址有点脏。。。。。。业务上倒也不是不能接受,反正详细地址总是给人看的。但是,这个没解决就是没解决,自己过不去罢了。贴个最脏的详细地址吧 原始字符串:广东东莞广东省东莞市虎门镇卢屋细卢村四区路3号5楼 处理后:{"Code":"200","Data":"{\"Province\":\"广东省\",\"City\":\"东莞市\",\"County\":null,\"Street\":\"东莞广东省虎门镇卢屋细卢村四区路3号5楼\"}","Message":"接口调用成功","Name":"OK","Successful":true} 红字部分就是未清洗的脏数据
wanghui0380 2016-08-01
  • 打赏
  • 举报
回复
你知道为啥,京东/淘宝都不会让你手填,即使你有全名地址,京东,淘宝们都会让你在系统里去选择,因为那是标准滴。京东们没能力解决么?? 常规是可以搞,问题怕特殊。比老家有个地方叫董市县,呵呵,你告诉我这是市还是县??如果按你说滴还少写一个县,直接写董市你不更晕 ps:如果你非要这样搞,也行。参考朴素贝叶斯分析,当然即使是贝叶斯也只是概率分析,也就是他可能有9成为县,8成为市,6成是街道,他并没有一个说他就是什么,只能说他可能是什么
Poopaye 2016-07-31
  • 打赏
  • 举报
回复
我只能说:那就复杂了 如果数据已经是录入的,应该先做个标准化处理,比如搜索到“北京”,后面没有“市”,就给补上 如果是等待别人输入的,那就把行政区域的部分做成下拉菜单,详细地址才是手工输入
  • 打赏
  • 举报
回复
比如说山西有一个叫做临沂的地方,并不是山东省临沂市,在许多断章取义的数据中都会产生误会。但是你只要随便问一问那些客服,如何避免这类问题,就知道了许多业务知识。 这类问题是纯粹业务问题。技术无用!
software_artisan 2016-07-30
  • 打赏
  • 举报
回复
我现在可以识别出海淀就是海淀区,但没法知道后面的如『中关村大街16号』这样的详细地址和前面的表示区县的『海淀』从哪分隔。
software_artisan 2016-07-30
  • 打赏
  • 举报
回复
这个表是有的,但表里面是『海淀区』不是『海淀』。有的地址字符串是『北京市海淀区中关村大街16号』这种比较规范的,这种很好搞!而有的是『北京北京市海淀中关村大街16号』这种很不规范的写法。
Poopaye 2016-07-30
  • 打赏
  • 举报
回复
那得先有一份完整的行政区域列表,只要依次用IndexoOf判断一下就知道了

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧