I almost找到了这个问题的答案这个线程 https://stackoverflow.com/questions/5214177/regex-tokenizer-to-split-a-text-into-words-digits-and-punctuation-marks(样本偏差的答案);但是我需要将一个短语拆分为单词、数字、标点符号和空格/制表符。我还需要它来保留这些事情发生的顺序(该线程中的代码已经这样做了)。
所以,我发现的是这样的:
from nltk.tokenize import *
txt = "Today it's 07.May 2011. Or 2.999."
regexp_tokenize(txt, pattern=r'\w+([.,]\w+)*|\S+')
['Today', 'it', "'s", '07.May', '2011', '.', 'Or', '2.999', '.']
但这是我需要产生的列表:
['Today', ' ', 'it', "'s", ' ', '\t', '07.May', ' ', '2011', '.', ' ', 'Or', ' ', '2.999', '.']
正则表达式一直是我的弱点之一,所以经过几个小时的研究,我仍然感到困惑。谢谢你!!