我目前正在从事一个项目,该项目应确定地址的每个部分,例如“杰克伦敦街121号,阿拉德Corvallis,美联社1603,973130”,输出应如下所示:
street name: Jack London;
no: 121; city: Corvallis;
state: ARAD;
apartment: 1603;
zip code: 973130
问题在于并非所有的输入数据都采用相同的格式,因此某些元素可能丢失或顺序不同,但它保证是一个地址
我在互联网上查阅了一些资料来源,但其中很多资料只适用于美国地址——比如谷歌API Places,问题是我会将其用于其他国家
Regex不是一个选项,因为地址可能变化太大
我还考虑过NLP使用命名实体识别模型,但我不确定这是否可行
你知道什么是一个好的开始,也许可以帮我一些提示
在数据科学堆栈交换论坛上有一个similar question,只有一个答案建议使用SpaCy
关于detecting addresses using Stanford NLP的另一个问题详细介绍了检测地址及其组成部分的另一种方法
有一个LexNLP库,它有一个功能,可以通过这种方式检测和拆分地址(从库上的TowardsDatascience article借用的代码片段):
还有一个相对较新的(2018年)和“研究”代码DeepParse(和documentation)用于深度学习地址解析,与IEEE article(付费墙)或Semantic Scholar一起使用
对于培训,您需要使用一些大型地址文库或使用Faker库生成的假地址
相关问题 更多 >
编程相关推荐