2.13M

Презентация_диплом

1.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования «Гродненский государственный университет имени Янки Купалы»
Факультет математики и информатики | Кафедра фундаментальной и прикладной математики
Разработка мобильного приложения
«Книга рецептов»
с рекомендательной системой для
персонализированного подбора блюд
Дипломная работа
Студент 4 курса, специальность «Прикладная
математика»
Сенкевич Роман Андреевич
Научный руководитель:
Смотрицкий К.А.
Доцент, канд. физ.-мат. наук, доцент
Гродно, 2026

2.

Актуальность и цель исследования
АКТУАЛЬНОСТЬ
Рост аудитории кулинарных мобильных
приложений и объёма рецептурного контента
Существующие системы персонализации либо
обезличены, либо требуют постоянного
подключения к интернету
Необходимость решения проблемы «холодного
старта»
Востребованность on-device вычислений и
офлайн-работы приложений
ЦЕЛЬ
Разработать и интегрировать в мобильное
приложение автономный модуль рекомендаций,
формирующую персонализированный топ-3
рецептов на основе семантического анализа
ингредиентов и поведения пользователя.
ЗАДАЧИ
Парсинг и предобработка ингредиентов
Векторизация рецептов (Word2Vec + TF-IDF)
Интеграция Python-модуля в Android (Chaquopy)
Гибридное ранжирование и диверсификация
Решение проблемы «холодного старта»
2

3.

Объект, предмет и методы исследования
ОБЪЕКТ
Мобильное приложение «Книга рецептов» на платформе Android, реализованное на языке программирования
Java
ПРЕДМЕТ
Методы персонализированного подбора рецептов на основе семантического анализа ингредиентов и неявной
обратной связи пользователя в условиях офлайн-работы
МЕТОДЫ
Контентная фильтрация · Word2Vec-эмбеддинги · TF-IDF-взвешивание · Косинусное сходство · Теговая оценка ·
Агрегация по неявным событиям
3

4.

Технологический стек и архитектура приложения
Frontend / Mobile
Java · Android SDK
Локальные данные
SQLite + SQLiteAssetHelper
ИИ / ML
Облачные сервисы
Firebase AI Logic (Gemini)
ML Kit Translation
Python: Word2Vec, TF-IDF
Firebase Realtime Database
Firebase Authentication
Cloudinary (изображения)
Архитектура
Слой
представления (UI)
Слой данных
Утилиты и модели
MainScreen, AddScreen,
SearchActivity, ActivityProfile и др.
DatabaseHandler (SQLite)
Firebase Realtime Database
Cloudinary · Glide
VectorUtils · RecommendationManager
tfidf_android.py (Chaquopy)
User · Recipe · Event · Tags
4

5.

Ключевые экраны приложения
Профиль
Просмотр
рецепта
пользователя
Авторизация
Главный экран
Добавление
Регистрация
рецепта
Анкета
Поиск рецептов
История
Избранное
приготовлений
Оценка
рецептов
Фильтры
и
ИИ-ассистент
5

6.

Архитектура рекомендательной системы
ОФЛАЙН (Python / PC)
ON-DEVICE (Android / Java)
1. Датасет рецептов (CSV)
1. Загрузка артефактов из assets/
2. ingredient_parser → текстовые токены
2. tfidf_android.py (Chaquopy)
3. Word2Vec CBOW (Gensim)
▶ 3. buildUserVector (90 дней)
4. TfidfEmbeddingVectorizer.fit()
4. Фильтр аллергий + isCook
5. Векторы → SQLite
5. calculateFinalScore (65/35)
6. IDF-веса → .joblib
6. recommendTopK (min-heap K=50)
7. Слова → word_vectors.npz
7. Жадная диверсификация → топ-3
6

7.

Парсинг ингредиентов и векторизация рецептов
ПАРСИНГ (ingredient_parser)
1
safe_parse_ingredient_list()
2
TfidfEmbeddingVectorizer
TfidfEmbeddingVectorizer - это гибрид двух техник:
Удаление пунктуации
ПРИМЕР:
1.
3
Токенизация (пробел / дефис)
2.
4
Приведение к нижнему регистру
5
Лемматизация (NLTK WordNet)
6
Фильтр единиц мер и стоп-слов
7
Дедупликация токенов
Word2Vec - дает смысловые векторы слов
(семантические эмбеддинги)
TF-IDF - оценивает важность слов в
документах
Проблема, которую решает класс:
Word2Vec сам по себе не знает, какие слова
важнее в контексте рецепта
TF-IDF сам по себе не понимает смысловую
близость слов
Решение: Объединить их, чтобы взвешенные
векторы Word2Vec учитывали важность слов.
7

8.

Поток данных рекомендательного модуля
ФОРМУЛА ВЫЧИСЛЕНИЯ
ПОЛЬЗОВАТЕЛЬСКОГО ВЕКТОРА:
English     Русский Правила