# 🎬 MovieMood — Рекомендатор фильмов по настроению
## 📖 Описание
Веб-приложение на Flask, которое анализирует эмоциональную окраску введённого пользователем текста и рекомендует подходящий фильм. Проект использует современные NLP-модели для анализа тональности и генерации текста на русском языке.
## ✨ Возможности
- 🔍 **Анализ тональности:** Автоматическое определение настроения (позитивное, негативное, нейтральное) с помощью `ruBERT`.
- 🎭 **Генерация рекомендаций:** Подбор одного популярного фильма на основе выявленного настроения с помощью `ruGPT-3 Medium`.
- 🌐 **Простой веб-интерфейс:** Минималистичная форма ввода и наглядное отображение результата.
- 🎨 **Гибкое оформление:** Все стили вынесены в отдельный CSS-файл для удобной кастомизации.
- 🇷🇺 **Оптимизация под русский язык:** Все модели обучены на русскоязычных корпусах.
## 🛠 Технологический стек
| Компонент | Технология / Библиотека |
|-----------|------------------------|
| Backend | `Flask` |
| NLP | `transformers`, `torch`|
| Sentiment | `blanchefort/rubert-base-cased-sentiment` |
| Generation| `sberbank-ai/rugpt3medium_based_on_gpt2` |
| Frontend | HTML5, CSS3 |
| Язык | Python 3.8+ |
## 📦 Установка и запуск
1. **Склонируйте репозиторий и перейдите в папку:**
```bash
git clone https://github.com/ваш-username/moviemood.git
cd moviemood
Создайте виртуальное окружение (рекомендуется):
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
Установите зависимости:
pip install flask transformers torch
Запустите приложение:
python app.py
⚠️ При первом запуске модели будут автоматически загружены из Hugging Face. Это займёт несколько минут и потребует ~1.5–2 ГБ свободного места на диске.
http://127.0.0.1:5000Настроение: хорошее. Рекомендация: «Название фильма»moviemood/
├── app.py # Основной файл Flask-приложения
├── templates/
│ └── index.html # HTML-шаблон главной страницы
├── static/
│ └── style.css # Файл стилей для оформления интерфейса
└── README.md # Документация
💡 Как подключить стили в
index.html(если ещё не сделано):<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">Flask автоматически раздаёт содержимое папки
static/по маршруту/static/.
Файл static/style.css отвечает за внешний вид страницы. Вы можете:
В исходном коде есть несколько синтаксических ошибок, которые необходимо исправить:
# Было (ошибка):
model = AutoModelForCasualLM.from_pretrained(...)
# Стало:
model = AutoModelForCausalLM.from_pretrained(...)
` не поддерживаются в re.search. Замените их на двойные кавычки:
m = re.search(r"«([^»]{2,100})»", generated_text)
promt → prompt (рекомендуется для читаемости).После внесения правок приложение запустится без ошибок.
debug=True в app.run().gunicorn app:app или waitress.device="cuda" (при наличии GPU) или настройте кэширование моделей.MIT License
Есть вопросы, предложения или нашли баг? Создайте Issue в репозитории или свяжитесь с автором.
2 commits
Python
59.5%
HTML
22.5%
CSS
18.0%
# 🎬 MovieMood — Рекомендатор фильмов по настроению
## 📖 Описание
Веб-приложение на Flask, которое анализирует эмоциональную окраску введённого пользователем текста и рекомендует подходящий фильм. Проект использует современные NLP-модели для анализа тональности и генерации текста на русском языке.
## ✨ Возможности
- 🔍 **Анализ тональности:** Автоматическое определение настроения (позитивное, негативное, нейтральное) с помощью `ruBERT`.
- 🎭 **Генерация рекомендаций:** Подбор одного популярного фильма на основе выявленного настроения с помощью `ruGPT-3 Medium`.
- 🌐 **Простой веб-интерфейс:** Минималистичная форма ввода и наглядное отображение результата.
- 🎨 **Гибкое оформление:** Все стили вынесены в отдельный CSS-файл для удобной кастомизации.
- 🇷🇺 **Оптимизация под русский язык:** Все модели обучены на русскоязычных корпусах.
## 🛠 Технологический стек
| Компонент | Технология / Библиотека |
|-----------|------------------------|
| Backend | `Flask` |
| NLP | `transformers`, `torch`|
| Sentiment | `blanchefort/rubert-base-cased-sentiment` |
| Generation| `sberbank-ai/rugpt3medium_based_on_gpt2` |
| Frontend | HTML5, CSS3 |
| Язык | Python 3.8+ |
## 📦 Установка и запуск
1. **Склонируйте репозиторий и перейдите в папку:**
```bash
git clone https://github.com/ваш-username/moviemood.git
cd moviemood
Создайте виртуальное окружение (рекомендуется):
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
Установите зависимости:
pip install flask transformers torch
Запустите приложение:
python app.py
⚠️ При первом запуске модели будут автоматически загружены из Hugging Face. Это займёт несколько минут и потребует ~1.5–2 ГБ свободного места на диске.
http://127.0.0.1:5000Настроение: хорошее. Рекомендация: «Название фильма»moviemood/
├── app.py # Основной файл Flask-приложения
├── templates/
│ └── index.html # HTML-шаблон главной страницы
├── static/
│ └── style.css # Файл стилей для оформления интерфейса
└── README.md # Документация
💡 Как подключить стили в
index.html(если ещё не сделано):<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">Flask автоматически раздаёт содержимое папки
static/по маршруту/static/.
Файл static/style.css отвечает за внешний вид страницы. Вы можете:
В исходном коде есть несколько синтаксических ошибок, которые необходимо исправить:
# Было (ошибка):
model = AutoModelForCasualLM.from_pretrained(...)
# Стало:
model = AutoModelForCausalLM.from_pretrained(...)
` не поддерживаются в re.search. Замените их на двойные кавычки:
m = re.search(r"«([^»]{2,100})»", generated_text)
promt → prompt (рекомендуется для читаемости).После внесения правок приложение запустится без ошибок.
debug=True в app.run().gunicorn app:app или waitress.device="cuda" (при наличии GPU) или настройте кэширование моделей.MIT License
Есть вопросы, предложения или нашли баг? Создайте Issue в репозитории или свяжитесь с автором.
2 commits
Python
59.5%
HTML
22.5%
CSS
18.0%