Я ожидаю следующий код; токенизировать
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")
См. stackoverflow.com/questions/55619297/…
Довольно хорошо сформированное регулярное выражение:
[\d.,]+|[A-Z][.A-Z]+\b\.*|\w+|\S
Эта тема была решена ранее в: Здесь!
, Вы можете протестировать регулярное выражение в интерактивном режиме с помощью https://regex101.com
Этот шаблон работает: pattern=r'[\w]+[\s]+[\d?]+[\w]|\w+\S'
Ваше регулярное выражение неверно. Вы соответствуете любой последовательности букв, цифр или пробелов. Вместо этого вы имели в виду это:
pattern=re.compile(r"\w+\s\d+|\w+")
Или, что то же самое, вы можете написать это как r"\w+(?:\s\d+)?"
.
Использовать
split()
вместо этого?