Токенизировать с помощью Regex Tokenizer

Я хочу токенизировать следующее предложение с помощью токенизатора регулярных выражений

MOST INTERESTED IN NUT BUTTERS

Когда я определяю свой токенизатор как

tokenizer = RegexpTokenizer(r'\w+')          

Я получаю вывод как

['MOST', 'INTERESTED', 'IN', 'NUT', 'BUTTERS']

Мой желаемый результат

['MOST', 'INTERESTED', 'IN', 'NUT BUTTERS']

Я хочу, чтобы NUT BUTTER был одним элементом. Я не понимаю, какое регулярное выражение использовать вместо этого или \w+


person Rookie_123    schedule 19.12.2017    source источник
comment
Это просто пример заявления. Есть документ, в котором есть еще много таких утверждений, и я хочу, чтобы во всех утверждениях ореховое масло оставалось прежним.   -  person Rookie_123    schedule 19.12.2017
comment
Что за схема стоит за тем, что NUT BUTTERS обращаются по-другому?   -  person Sebastian Proske    schedule 19.12.2017
comment
Я хочу подсчитать количество экземпляров ОРЕХОВОГО МАСЛА во всем документе.   -  person Rookie_123    schedule 19.12.2017


Ответы (2)


Если вы хотите использовать решение с регулярным выражением, вам нужно будет составить список слов, содержащих пробелы, которые должны быть извлечены как одно целое, и построить свое регулярное выражение следующим образом:

word space1|word space2|word space3|...|word spaceN|\w+

для вашего примера это становится:

NUT BUTTERS|\w+
person Allan    schedule 19.12.2017
comment
Я просто использовал ореховое масло в качестве примера. Могу ли я просто поместить сюда разные слова из текстового файла. Например, если в моем текстовом файле есть NUT BUTTERS MANGO APPLE. Тогда я хотел бы, чтобы все они были в выражении регулярного выражения - person Rookie_123; 19.12.2017

Вместо этого попробуйте split().

>>> str = 'MOST INTERESTED IN NUT BUTTERS'
>>> str.split(' ', 3) # 3 tells the number of splits it should do.
['MOST', 'INTERESTED', 'IN', 'NUT BUTTERS']
person Krishnachandra Sharma    schedule 19.12.2017