Выход:

я есть словарь слов с их частотами следующим образом.

mydictionary = {'yummy tim tam':3, 'milk':2, 'chocolates':5, 'biscuit pudding':3, 'sugar':2}

У меня есть набор строк (удалены знаки препинания) следующим образом.

recipes_book = "For todays lesson we will show you how to make biscuit pudding using 
yummy tim tam milk and rawsugar"

В приведенной выше строке мне нужно вывести только "бисквитный пудинг", "вкусный тим там" и "молоко", ссылаясь на словарь. НЕ сахар, потому что это сырой сахар.

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

mydictionary = {'yummy tim tam':3, 'milk':2, 'chocolates':5, 'biscuit pudding':3, 'sugar':2}
recipes_book = "For today's lesson we will show you how to make biscuit pudding using yummy tim tam milk and rawsugar"
searcher = re.compile(r'{}'.format("|".join(mydictionary.keys())), flags=re.I | re.S)

for match in searcher.findall(recipes_book):
    print(match)

Как избежать использования таких подстрок и рассматривать только один полный токен, такой как «молоко». Пожалуйста, помогите мне.

Ответы на вопрос(3)

Ваш ответ на вопрос