使用NLP进行地址拆分

2024-09-30 02:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从事一个项目,该项目应确定地址的每个部分,例如“杰克伦敦街121号,阿拉德Corvallis,美联社1603,973130”,输出应如下所示:

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

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

我在互联网上查阅了一些资料来源,但其中很多资料只适用于美国地址——比如谷歌API Places,问题是我会将其用于其他国家

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

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

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


Tags: 项目nonamestreetcity地址codezip
1条回答
网友
1楼 · 发布于 2024-09-30 02:30:05

在数据科学堆栈交换论坛上有一个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(付费墙)或Semantic Scholar一起使用

对于培训,您需要使用一些大型地址文库或使用Faker库生成的假地址

相关问题 更多 >

    热门问题