使用 NLP 进行地址拆分
Address Splitting with 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
问题是并非所有输入数据都采用相同格式,因此某些元素可能丢失或顺序不同,但保证是地址。
我在 Internet 上查看了一些资源,但其中很多仅适用于美国地址 - 例如 Google API 地方,问题是我会将其用于其他国家/地区。
Regex 不是一个选项,因为地址可能变化太大。
我也考虑过 NLP 使用命名实体识别模型,但不确定是否可行。
你知道什么是开始的好方法吗?也许可以帮我一些提示?
Data Science Stack Exchange 论坛中有一个 similar question,只有一个答案建议使用 SpaCy。
关于 detecting addresses using Stanford NLP 的另一个问题详细介绍了另一种检测地址及其成分的方法。
图书馆有一个LexNLP library that has a feature to detect and split addresses this way (snippet borrowed from 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 (and documentation) for deep learning address parsing accompanying an IEEE article (paywall) or Semantic Scholar。
对于培训,您将需要使用一些大型地址语料库或使用生成的假地址,例如Faker图书馆。
我目前正在做一个项目,该项目应该识别地址的每个部分,例如从“str. Jack London 121, Corvallis, ARAD, ap. 1603, 973130”输出应该是这样的:
street name: Jack London;
no: 121; city: Corvallis;
state: ARAD;
apartment: 1603;
zip code: 973130
问题是并非所有输入数据都采用相同格式,因此某些元素可能丢失或顺序不同,但保证是地址。
我在 Internet 上查看了一些资源,但其中很多仅适用于美国地址 - 例如 Google API 地方,问题是我会将其用于其他国家/地区。
Regex 不是一个选项,因为地址可能变化太大。
我也考虑过 NLP 使用命名实体识别模型,但不确定是否可行。
你知道什么是开始的好方法吗?也许可以帮我一些提示?
Data Science Stack Exchange 论坛中有一个 similar question,只有一个答案建议使用 SpaCy。
关于 detecting addresses using Stanford NLP 的另一个问题详细介绍了另一种检测地址及其成分的方法。
图书馆有一个LexNLP library that has a feature to detect and split addresses this way (snippet borrowed from 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 (and documentation) for deep learning address parsing accompanying an IEEE article (paywall) or Semantic Scholar。
对于培训,您将需要使用一些大型地址语料库或使用生成的假地址,例如Faker图书馆。