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 · 34 天前 · 3691 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    搜索完了它会自动将坐标放进 URL,取出来就是,也没什么免费额度之说。
    fhsan
        28
    fhsan   33 天前   ❤️ 1
    建议 google 地图 api,分词十分不靠谱
    lichdkimba
        29
    lichdkimba   33 天前   ❤️ 1
    地球上至少 80%的人不会打中文地址吧。。。。。
    loliordie
        30
    loliordie   33 天前   ❤️ 1
    这个题, 使用传统方法解决最大的问题其实来源于数据质量.
    teddy2725
        31
    teddy2725   33 天前   ❤️ 1
    搞点高质量数据用 fasttext 训练一个文本分类模型来做
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1102 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:31 · PVG 03:31 · LAX 12:31 · JFK 15:31
    ♥ Do have faith in what you're doing.