Автор оригинала: Vineet Sharma.
Обо мне
Я Винет Шарма, опытный разработчик программного обеспечения со степенью магистра в области искусственного интеллекта в Университете Билефельда. В настоящее время я работаю в ИТ-фирме под названием NT-ware (дочерняя компания Canon). В своей карьере разработчика программного обеспечения я получил возможность изучать различные технологии и создавать замечательные проекты.
Проблема, которую я хотел решить
Существует множество приложений, которые хороши для поиска рецептов на основе определенных критериев, таких как кухня, аллергия, ингредиенты и т.д., Но ни одно из них не может быть использовано в качестве планировщика меню для группы людей. Итак, я создал это приложение с особым акцентом на том, как планировать меню из рецептов для группы людей (друзей или семьи).
Что такое приложение для планирования меню
Приложение, которое я создаю, можно, конечно, использовать для поиска рецептов. Кроме того, можно было бы вести список людей с их списком аллергий, любимых ингредиентов, и когда пользователь решит спланировать еду или приготовить для них, тогда будут предложены соответствующие рецепты, которые удовлетворяют потребности планируемых людей. Он также учится предлагать рецепты, основанные на предыдущих выборках.
Технический стек
Python (Django, scikit-learn ), Javascript(React), Spoonacular(api рецептов), PostgreSQL(база данных)
Процесс создания приложения для планирования меню: Что находится в меню?
В самом начале я начал создавать интерфейс с помощью React, чтобы получить представление о том, как он будет представлен пользователю. Поскольку я работал над ним в одиночку, не было необходимости создавать каркасы. Как только у меня сложилось представление о том, как будет выглядеть приложение, я начал создавать бэкэнд. База данных состояла из базы данных пользователей, которая состояла из двух таблиц, т. е. пользователей и кухонь. Разные пользователи с их аллергией, любимыми ингредиентами, любимой кухней и возрастом хранились в таблице персон. Другая таблица Рецептов, как следует из названия, должна была содержать рецепты, т. е. название, изображение, ингредиенты, этапы приготовления и т.д.
Когда пользователь ищет рецепт, сначала рецепт ищет из таблицы рецептов, когда совпадения не найдены, затем в API Spoonacular был отправлен запрос на получение рецептов и сохранен локально в базе данных. На основе результатов поиска было отмечено, что параметры, выбранные пользователем, и выбранный рецепт были введены в алгоритм машинного обучения, который затем может быть использован для определения порядка соответствия рецептов по таким критериям, как кухня, ингредиенты и т.д.
Проблемы, с которыми я столкнулся
Проблемы заключались в очистке результатов, поступающих из базы данных Spoonacular, было замечено, что в некоторых рецептах не было изображения вместе с ним, поэтому эти результаты должны были быть отфильтрованы, а в некоторых шаги рецептов должны были быть организованы. Обучение модели машинного обучения также было сложным, так как не было реальных пользовательских данных, но я заставил некоторых моих друзей использовать ее, а затем получил набор данных, основанных на их шаблонах использования, которые можно было использовать.
Основные уроки
Это приложение помогло мне узнать, как интегрировать машинное обучение в разработку программного обеспечения. и дал мне приложение, которое я мог бы использовать ежедневно, так как я часто готовлю друзей для своих друзей, и мне не нужно искать рецепты для каждого из них явно. Тем не менее, я также хотел бы интегрировать это в будущем с большим количеством API, чтобы получить лучший выбор рецептов. Модель машинного обучения также должна контролироваться для проверки ее производительности.