Python 正则表达式标记器,用于将文本拆分为单词、数字和标点符号

Python 正则表达式标记器,用于将文本拆分为单词、数字和标点符号,python,regex,nltk,tokenize,Python,Regex,Nltk,Tokenize,我想做的是把一篇文章分成他的终极元素 例如: 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','ar

我想做的是把一篇文章分成他的终极元素

例如:

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','.']
你可以看到它工作得很好。我的问题是:如果数字在文本末尾会发生什么

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.'] 
结果应该是: ['Today'、'it'、's'、'07.May'、'2011'、'或''2.999'、'


要得到上面的结果,我必须做些什么?

我创建了一个模式,试图在单词、数字中包含句点和逗号。希望这有助于:

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', '.']

谢谢,这正是我想要的。:-)不要导入*。坏习惯。