Регулярное выражение токенизация с числами? - PullRequest
0 голосов
/ 09 апреля 2019

Я ожидаю следующий код; токенизировать

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 ]

1 голос
/ 09 апреля 2019

Довольно хорошо сформированное регулярное выражение:

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

Эта тема была решена ранее в: Здесь !

, Вы можете проверить регулярное выражение в интерактивном режиме с помощью https://regex101.com

0 голосов
/ 10 апреля 2019

Ваше регулярное выражение неверно. Вы соответствуете любой последовательности букв, цифр или пробелов. Вы имели в виду это вместо этого:

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

Или, что эквивалентно, вы можете написать это как r"\w+(?:\s\d+)?".

0 голосов
/ 09 апреля 2019

Использование str.split():

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

OUTPUT

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