3
我有这样的文字如何在python中使用NLTK从原始文本中提取地址?
'''嗨,山姆D.理查兹先生住在这里,44西22街,新 纽约,NY 12345。你现在可以联系他吗? '如果您需要任何帮助,请致电 我12345678'''
。如何使用NLTK从上述文本中提取地址部分?我试过Stanford NER Tagger
,它只给我New York
作为位置。如何解决这个问题?
我有这样的文字如何在python中使用NLTK从原始文本中提取地址?
'''嗨,山姆D.理查兹先生住在这里,44西22街,新 纽约,NY 12345。你现在可以联系他吗? '如果您需要任何帮助,请致电 我12345678'''
。如何使用NLTK从上述文本中提取地址部分?我试过Stanford NER Tagger
,它只给我New York
作为位置。如何解决这个问题?
绝对正则表达式:)
喜欢的东西
import re
txt = ...
regexp = "[0-9]{1,3} .+, .+, [A-Z]{2} [0-9]{5}"
address = re.findall(regexp, txt)
# address = ['44 West 22nd Street, New York, NY 12345']
说明:
[0-9]{1,3}
:1至3位数,地址号码
(space)
:在之间的空间号码和街道名称
.+
:街道名称,任意数量出现
,
任何字符:逗号和城市之前的空间
.+
:城市,对任何出现次数
,
的任何字符:一个逗号和一个空格前的状态
[A-Z]{2}
:正好两个大写字母从A到Z
[0-9]{5}
:5位
re.findall(expr, string)
将返回找到的所有出现的数组。
大多数人会试一试[正则表达式](https://docs.python.org/2/howto/regex.html)。除此之外,对SO的简短搜索会给你很多[灵感](http://stackoverflow.com/questions/14087116/extract-address-from-string)。 – patrick
谢谢!这给了我一些开始。 – ngrj
接受答案请 – Alex