微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 NLP 进行地址拆分

如何解决使用 NLP 进行地址拆分

我目前正在开展一个项目,该项目应识别地址的每个部分,例如来自“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,问题是我会将其用于其他国家/地区。

Regex 不是一个选项,因为地址可能变化太多。

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

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

解决方法

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

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

有一个 LexNLP 库,它具有以这种方式检测和拆分地址的功能(从库上的 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(付费专区)或 {{3} }.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。