有一个python正则表达式来查找街名,后跟一个或多个人,后跟门牌号吗?

2024-09-30 05:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从中提取文本数据的图像数据集。我有一个字符串的文本,但现在想把这个文本分离成一个更结构化的形式。你知道吗

数据如下所示:

Camden Row,Camberwell, S.E—A. Massey, M.D.4.

Campden Hill, Kensington.
(Hornton House).

Campden Hill Road, Kensington.
James, M.D. 6.

Canning Town. E—R. J. Carey (Widdicombe-
co ee

Cannon Street. E.C.—R. Cresswell, 151.

Cannon Street Road. E.—R. W. Lammiman, 106.
—J. R. Morrison, 57.—B. R. Rygate, 126.—
J. J. Rygate, M.B. 126.

Canonbury N. (see foot note)—J. Cheetham, M.D.
(Springjield House),

Canonbury Lane, N.—H. Bateman,
Roberts, 10.—J. Rose, 3.

如你所见,它包括一个街道名称,后跟一个代表(N/S/E/W/NW/SE等)的字母,然后是人名和门牌号。你知道吗

到目前为止,我一直在使用python-NLTK。我能够使用以下方法提取街道、名称和数字作为单个实体:

tagged = nltk.pos_tag(tokens)

我想要实现的是一个列表:

[street name, person, house_number]

例如:

[[Cannon Street Road, R. W. Lammiman, 106][Cannon Street Road, J. R. Morrison, 57]]

我的计划是用街道名称作为开始的锚,然后用数字作为结束的锚,但由于每条街道上有多个门牌号,所以这有点复杂。你知道吗

有人能推荐一个方法/正则表达式来解决这个问题吗?你知道吗

如果是的话,谢谢你! 詹姆斯。你知道吗


Tags: 数据文本名称street街道housemorrisoncannon
1条回答
网友
1楼 · 发布于 2024-09-30 05:23:50

如果格式一致,可以拆分字符串。你知道吗

text = "Cannon Street Road. E.—R. W. Lammiman, 106.—J. R. Morrison, 57.—B. R. Rygate, 126.—J. J. Rygate, M.B. 126."
text = text.split("—")
infos = list()
streetname = text[0]

for i in text[1:]:
    infos.append([streetname, i])

print(infos)

结果是: 坎农街路。E.,'R.W.Lammiman,106.,['坎农街路]。E.,'J.R.Morrison,57.'],['坎农街路。E.,“B.R.Rygate,126.”,[“Cannon Street Road。E.,'J.J.Rygate,M.B.126.']]

相关问题 更多 >

    热门问题