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

问题描述 投票:0回答:3

我期待以下代码;令牌化

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")
python nlp nltk tokenize
3个回答
1
投票

一个非常好的正则表达式:

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

这个话题在以前解决过:Here

,您可以使用https://regex101.com以交互方式测试正则表达式


0
投票

使用str.split()

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

OUTPUT:

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

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.