带数字的正则表达式标记化?

时间:2019-04-09 13:46:30

标签: python nlp nltk tokenize

我期望以下代码; 标记化

this is an example 123

进入

['this', 'is', 'an', 'example 123'] 

,但看不到数字是单词的一部分。有什么建议吗?

import re
from nltk.tokenize import RegexpTokenizer
pattern=re.compile(r"[\w\s\d]+")
tokenizer_number=RegexpTokenizer(pattern)
tokenizer_number.tokenize("this is an example 123")

3 个答案:

答案 0 :(得分:1)

一个格式正确的正则表达式:

[\d.,]+|[A-Z][.A-Z]+\b\.*|\w+|\S

此主题之前在Here中已解决!

,您可以使用https://regex101.com

交互地测试正则表达式

答案 1 :(得分:0)

使用str.split()

s = "this is an example 123"    
print(s.split(" ", 3))

输出

['this', 'is', 'an', 'example 123']

答案 2 :(得分:0)

您的正则表达式是错误的。您要匹配任何字母,数字或空格的序列。您的意思是:

pattern=re.compile(r"\w+\s\d+|\w+")

或者等效地,您可以将其写为r"\w+(?:\s\d+)?"