Выход:
я есть словарь слов с их частотами следующим образом.
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)
Как избежать использования таких подстрок и рассматривать только один полный токен, такой как «молоко». Пожалуйста, помогите мне.