我期望以下代码; 标记化
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")
答案 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+)?"
。