【发布时间】:2019-06-06 10:00:09
【问题描述】:
我正在做一个地址解析项目,我需要检测地址的各个组成部分,例如城市、州、邮政编码、街道编号等。
我写了一个正则表达式来过滤掉处理所有用户输入的邮政编码。
sample_add = "16th main road btm layout 560029 5-6-00-76 56 00 78 560-029 25 -000-1"
regexp = re.compile(r"([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])")
print(re.findall(regexp, sample_add))
Output :- [560029, 560076, 560078, 560029, 250001]
这可以识别这些地址的postal_codes,但是,当像下面这样的地址出现时,它会结合Street nos并将其解释为邮政编码,
Ex. `sample_add_2 = "House no 323/46 16th main road, btm layout, bengaluru 560029"
在这种情况下,邮政编码被识别为 323461,而正确的应该是 560029。
【问题讨论】:
-
问题与
machine-learning无关 - 请不要向标签发送垃圾邮件(删除并添加了regex和python)。 -
它基本上是机器学习项目数据预处理的一部分,我有一个带标签的地址数据集,然后我用它来训练我的模型来预测新地址的组成部分跨度>
-
在调试时可能需要帮助,例如,随后在宇宙飞船中使用的排序算法这一事实并不能证明这个问题是关于
space-engineering...
标签: python regex nlp postal-code natural-language-processing