我有一些任务与文本,我需要将字符串正确拆分为单词。 对于我的任务,我正在使用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