【问题标题】:Address Splitting with NLP使用 NLP 进行地址拆分
【发布时间】:2021-03-24 10:18:46
【问题描述】:

我目前正在开展一个项目,该项目应识别地址的每个部分,例如“str. Jack London 121, Corvallis, ARAD, ap. 1603, 973130”,输出应如下所示:

street name: Jack London; 
no: 121; city: Corvallis; 
state: ARAD; 
apartment: 1603; 
zip code: 973130

问题在于,并非所有输入数据的格式都相同,因此某些元素可能会丢失或顺序不同,但可以保证是地址。

我查看了互联网上的一些资源,但其中很多仅适用于美国地址 - 例如 Google API Places,问题是我将在另一个国家/地区使用它。

正则表达式不是一个选项,因为地址可能变化太大。

我也想过 NLP 使用命名实体识别模型,但我不确定这是否可行。

你知道什么是开始的好方法吗?也许可以帮助我一些提示?

【问题讨论】:

  • 如果您觉得我的回答有用,能否将其标记为已接受(答案左侧的灰色勾号)?

标签: python nlp street-address named-entity-recognition


【解决方案1】:

Data Science Stack Exchange 论坛中有一个similar question,只有一个答案建议使用 SpaCy。

detecting addresses using Stanford NLP 上的另一个问题详细介绍了检测地址及其组成部分的另一种方法。

有一个LexNLP 库具有以这种方式检测和拆分地址的功能(sn-p 从库上的TowardsDatascience article 借用):

from lexnlp.extract.en.addresses import address_features
for filename,text in d.items():
    print(list(lexnlp.extract.en.addresses.address_features.get_word_features(text)))

还有一个相对较新的(2018 年)和“研究”代码 DeepParse(和 documentation)用于深度学习地址解析,伴随着 IEEE article(付费专区)或 Semantic Scholar

对于培训,您将需要使用一些大型地址语料库或使用生成的虚假地址,例如Faker图书馆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    相关资源
    最近更新 更多