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

时间:2011-03-06 23:13:37

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

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

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

1 个答案:

答案 0 :(得分:7)

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

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', '.']
相关问题