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