我有一些任務與文本,我需要將字符串正確拆分爲單詞。 對於我的任務,我正在使用Python3。Python從字符串獲取整個單詞
這種方式不適合我:
re.sub("[^\w]", " ", hotelName.lower()).split()
因爲句子中詞彙是這樣的:
"[{(St.Augst bridge), South-West]} . a - a Torreluca! B&B O'Dell! & Cabin& Wastlgasse MM-505?."
都吐盡列表:
['st', 'augst', 'bridge', 'south', 'west', 'torreluca', 'b', 'b', 'o',
'dell', 'cabin', 'wastlgasse', 'mm', '505']
但我需要以這種方式拆分術語(以節省整個術語):
["st.augst", "bridge", "South-West", "Torreluca", "B&B", "O'Dell",
"Cabin", "Wastlgasse", "MM-505"]
這意味着我需要通過拆分文本:
- 空間,
- 「」, 「!」 「?」
- 「。」如果在空格之前的單詞末尾或字符串末尾(以防止St.Augst =>「st」,「august」)
- 刪除「[」,「{」,「(」等等...
如果有人誰熟悉的正則表達式將幫助我完成該任務。這似乎是很常見的任務,從文件獲取方面。
你絕對需要手工用正則表達式來做到這一點? 否則,它可能是一些重型火炮的使用,但看看nltk,他們有tokenizers可以做這項工作 – LoicM