Попробуйте различные известные алгоритмы машинного обучения. Я бы предложил сначала использовать байесовский классификатор, поскольку он прост в реализации и часто работает довольно хорошо. Если это не работает, попробуйте что-нибудь более сложное, например, Нейронные сети или SVM.
Основная проблема будет заключаться в выборе набора функций в качестве входных данных для вашего метода. Для этого вы должны посмотреть, какая информация является уникальной. Например, если у вас есть рецепт под названием «Куриный салат», «куриная» часть не будет особенно интересна, поскольку она также присутствует в ингредиентах и ее проще собирать оттуда. Таким образом, вы должны попытаться найти набор ключевых слов, которые дают новую информацию (то есть часть салата). Попробуйте найти хороший набор ключевых слов для этого. Возможно, это можно каким-то образом автоматизировать, но, скорее всего, вам будет лучше, если вы сделаете это вручную, поскольку это нужно сделать только один раз.
То же самое относится и к описанию. Поиск правильного набора функций - всегда самая трудная часть для такой задачи.
Когда у вас есть набор функций, просто обучите их алгоритму и посмотрите, насколько хорошо он работает. Если у вас нет большого опыта работы с машинным обучением, взгляните на различные методы правильного тестирования алгоритма ML (например, оставьте без тестирования и т. Д.).