V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wdg8106
V2EX  ›  Python

根据地址识别出国家,大家有好的建议吗

  •  
  •   wdg8106 · 2020-09-26 11:49:29 +08:00 · 5062 次点击
    这是一个创建于 1517 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如:"首尔市江南区永东大路亚洲会议塔" 目前想到的是 先分词,然后再找一份世界主要城市国家映射表进行匹配 用 jieba 分词,得到的结果是首尔 /市 /江南 /区 /永 /东大路 /亚洲 /会议 /塔 接下来依次用这些词在映射表中匹配,第一个匹配到就返回

    但是目前还没找到靠谱的国家城市映射表,大家有做过的,诚心求教~~

    31 条回复    2020-09-27 17:26:34 +08:00
    opengps
        1
    opengps  
       2020-09-26 12:00:23 +08:00 via Android   ❤️ 2
    用地图的 api
    huayumo
        2
    huayumo  
       2020-09-26 12:37:33 +08:00   ❤️ 1
    这种分词不行,说实话我也在考虑这种,来大数据分类每个市县的新闻,国内的直接行政区来分类,国外的感觉应该也一样,别用分词的,行政区划的比较准
    BrettD
        3
    BrettD  
       2020-09-26 12:54:30 +08:00 via iPhone   ❤️ 1
    加拿大也有地方叫伦敦
    imn1
        4
    imn1  
       2020-09-26 12:56:06 +08:00   ❤️ 1
    没必要分词,地址一般都是有顺序的,要么大到小,要么小到大,你的目的只是城市-->国家,找到一端前 N 个字符就够了
    找 geo 数据库就有映射表了,网上有 open 的
    hakono
        5
    hakono  
       2020-09-26 13:15:12 +08:00 via Android   ❤️ 1
    谷歌地图 api,很好用
    需求数量多了的话需要收费就是了
    记得做好缓存之类的
    shiji
        6
    shiji  
       2020-09-26 13:24:52 +08:00 via iPhone   ❤️ 1
    美国有三个城市都叫纽瓦克
    美国也有城市叫温哥华

    单靠分词肯定不行
    wdg8106
        7
    wdg8106  
    OP
       2020-09-26 13:39:59 +08:00
    @huayumo 国内是直接用行政区来分的,效果还可以,国外的找来下没找到
    wdg8106
        8
    wdg8106  
    OP
       2020-09-26 13:43:08 +08:00
    @BrettD 这种感觉没法避免,碰到了就只能按比较常见的算了
    wdg8106
        9
    wdg8106  
    OP
       2020-09-26 13:43:40 +08:00
    @imn1 多谢,我试试看
    wdg8106
        10
    wdg8106  
    OP
       2020-09-26 13:45:18 +08:00
    @hakono 多谢,那我先自己判断下,判断不出来的再调 api...
    wdg8106
        11
    wdg8106  
    OP
       2020-09-26 13:48:33 +08:00
    @shiji 嗯,我也遇到过像 韩国国际广场这种 分出来带韩国 但明显不是的
    Ptu2sha
        12
    Ptu2sha  
       2020-09-26 14:47:52 +08:00   ❤️ 1
    国内我还遇到 去过 A 市登记了家庭地址
    然后 A 市的某个派出所就打电话来 因为我家地址某部分和他们辖区匹配上了。。。
    xuanbg
        13
    xuanbg  
       2020-09-26 16:15:37 +08:00   ❤️ 1
    非结构化的地址自动处理成结构化地址是有一定的错误率的,楼主你把错误的抛出来人工处理或者干脆丢弃就行。
    wdg8106
        14
    wdg8106  
    OP
       2020-09-26 17:17:04 +08:00
    @xuanbg 了解的,只要错误率不太高就可以接受了
    ericbize
        15
    ericbize  
       2020-09-26 17:22:32 +08:00 via iPhone   ❤️ 1
    丢到谷歌地图, 获取经纬度
    helloworld000
        16
    helloworld000  
       2020-09-26 18:54:53 +08:00   ❤️ 1
    https://nominatim.org/

    或者直接用 selenium 去 googlemap 里搜
    bellchu
        17
    bellchu  
       2020-09-26 19:17:46 +08:00 via iPhone   ❤️ 1
    我很多年前一名的时候有人问我是不是去澳洲,我说不是啊。对面很疑惑的看着我问,“那你为什么申请资料寄到悉尼?”
    bellchu
        18
    bellchu  
       2020-09-26 19:18:02 +08:00 via iPhone   ❤️ 1
    *移民
    wdg8106
        19
    wdg8106  
    OP
       2020-09-26 21:17:13 +08:00
    @bellchu 所以你是要移民到澳大利亚吗...哈哈
    bellchu
        20
    bellchu  
       2020-09-26 21:19:16 +08:00   ❤️ 1
    @wdg8106 加拿大的 case 很多都是邮寄悉尼的。加拿大,新斯科舍省,悉尼市。
    wdg8106
        21
    wdg8106  
    OP
       2020-09-26 21:23:32 +08:00
    @helloworld000 多谢,我在网上下了个城市国家信息表,还是想先从这方面入手,如果精确度不够再考虑谷歌 api
    wdg8106
        22
    wdg8106  
    OP
       2020-09-26 21:24:15 +08:00
    @bellchu 哦哦 长见识了 ....
    bellchu
        23
    bellchu  
       2020-09-26 21:29:01 +08:00   ❤️ 1
    你可以优先 extract 字段中的邮编,可以相对准确的判断国家。
    uuiitwp
        24
    uuiitwp  
       2020-09-26 23:51:53 +08:00 via Android   ❤️ 1
    典型的地理编码 /逆地理编码问题
    Pythondr
        25
    Pythondr  
       2020-09-27 00:11:03 +08:00 via iPhone   ❤️ 1
    一般的地图服务都有地址标准化的 API,可以看下高德开放平台
    cheng6563
        26
    cheng6563  
       2020-09-27 01:24:57 +08:00   ❤️ 1
    google 地图的 api,免费额度不够可以多开几个账号均衡负载
    winterbells
        27
    winterbells  
       2020-09-27 08:16:40 +08:00 via Android   ❤️ 1
    我们之前用的是谷歌地图搜索

    搜索完了它会自动将坐标放进 URL,取出来就是,也没什么免费额度之说。
    fhsan
        28
    fhsan  
       2020-09-27 08:19:12 +08:00   ❤️ 1
    建议 google 地图 api,分词十分不靠谱
    lichdkimba
        29
    lichdkimba  
       2020-09-27 11:26:22 +08:00   ❤️ 1
    地球上至少 80%的人不会打中文地址吧。。。。。
    loliordie
        30
    loliordie  
       2020-09-27 16:30:39 +08:00   ❤️ 1
    这个题, 使用传统方法解决最大的问题其实来源于数据质量.
    teddy2725
        31
    teddy2725  
       2020-09-27 17:26:34 +08:00   ❤️ 1
    搞点高质量数据用 fasttext 训练一个文本分类模型来做
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:30 · PVG 06:30 · LAX 14:30 · JFK 17:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.