RegEx Tokenizer将文本拆分为单词,数字和标点符号

Sno*_*llz 2 python regex tokenize nltk

我想要做的是将文本分成他的终极元素.

例如:

from nltk.tokenize import *
txt = "A sample sentences with digits like 2.119,99 or 2,99 are awesome."
regexp_tokenize(txt, pattern='(?:(?!\d)\w)+|\S+')
['A','sample','sentences','with','digits','like','2.199,99','or','2,99','are','awesome','.']
Run Code Online (Sandbox Code Playgroud)

你可以看到它工作正常.我的问题是:如果数字位于文本的末尾会发生什么?

txt = "Today it's 07.May 2011. Or 2.999."
regexp_tokenize(txt, pattern='(?:(?!\d)\w)+|\S+') 
['Today', 'it', "'s", '07.May', '2011.', 'Or', '2.999.'] 
Run Code Online (Sandbox Code Playgroud)

结果应该是:['今天','它',''s','07.可能','2011','.','或','2.999','.']

我需要做些什么来获得上面的结果?

sam*_*ias 8

我创建了一个模式,试图在单词,数字中包含句点和逗号.希望这可以帮助:

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', '.']
Run Code Online (Sandbox Code Playgroud)