Данное приложение представляет собой десктопное приложение для анализа комментариев под видео на YouTube. Пользователь вводит ссылку на видео, после чего приложение загружает комментарии через API YouTube, классифицирует их с помощью нейросети и визуализирует результаты анализа в виде круговой диаграммы и графика.
Тема проекта: Разработка десктопного приложения для анализа настроений комментариев под видео на YouTube с помощью нейросетей.
- ФИО: Шевчук Роман Иванович
- Номер группы: Б05-253
- Ввод ссылки на видео
- Загрузка комментариев через API YouTube
- Классификация комментариев по настроению
- Перевод комментариев на английский
- Визуализация результатов анализа
- Настройка API-ключа
- PyQt5 — графический интерфейс
- requests — работа с YouTube Data API
- torch — предобученная модель LSTM
- matplotlib — построение графиков
- scikit-learn — PCA для визуализации скрытых состояний
- googletrans — перевод текста
- langdetect — определение языка комментариев
- numpy — обработка данных
CommAnalyzer/
│
├── app/
│ ├── __init__.py
│ ├── MainWindow.py # Главное окно приложения
│ ├── SentimentClassfier.py # Классификация тональности комментариев
│ ├── youtube_api.py # Загрузка комментариев через YouTube API
│
├── data/
│ └── api_key.json # Хранение YouTube API ключа
│
├── models/
│ ├── sentiment_lstm.pt # Предобученная LSTM модель
│ └── vocab.json # Словарь токенов
│
├── resources/ # Шрифты и иконки
└── requirements.txt # Список зависимостей
Архитектура приложения построена на модульном принципе и состоит из следующих компонентов:
Описание: Управляет взаимодействием пользователя с приложением.
Ключевые функции:
- Поле ввода: для ввода ссылки на YouTube-видео.
- Кнопка "Search": запускает процесс анализа комментариев.
- Кнопка "Settings": позволяет добавить или обновить YouTube API-ключ.
- Круговая диаграмма: визуализирует распределение позитивных и негативных комментариев.
- График PCA: отображает скрытые состояния LSTM.
Основные методы:
show_search_results()— загружает комментарии и запускает их анализ.create_result_view()— визуализирует результаты анализа с помощью диаграмм.open_settings()— открывает окно для добавления API-ключа.
Описание: Класс для загрузки комментариев с YouTube.
Методы:
get_comments(video_url)- Извлекает ID видео из URL.
- Загружает комментарии через API YouTube.
- Возвращает список комментариев.
Особенности:
- Управление nextPageToken для загрузки большого числа комментариев.
- Очистка комментариев от лишних символов с помощью re.
Описание: Отвечает за анализ тональности комментариев. Использует LSTM-модель, предобученную на текстах для классификации.
Основные методы:
preprocess(text)- Токенизация текста с использованием словаря.
- Преобразование текста в числовые индексы для подачи в модель.
classify_batch(texts)- Классификация группы комментариев.
- Возвращает список значений (0 — негативный, 1 — позитивный).
Описание: Визуализация данных с использованием matplotlib и PCA.
Функции:
- Круговая диаграмма (Pie Chart):
- Построение диаграммы для отображения доли позитивных и негативных комментариев.
- PCA-график:
- Снижение размерности скрытых состояний LSTM до 2D.
- Визуализация с цветовой шкалой для отображения тональности комментариев.
Описание:
Позволяет пользователю добавить или обновить ключ YouTube API через интерфейс.
Ключевые компоненты:
- Файл
api_key.json: сохраняет ключ для последующего использования. - Окно "Settings": реализовано через PyQt5 QDialog.
Основные методы:
save_api_key()— сохраняет ключ в JSON-файл.load_api_key()— загружает ключ при старте приложения.
-
Клонируйте репозиторий и установите зависимости:
git clone <ссылка на репозиторий> cd CommAnalyzer python -m venv venv source venv/bin/activate # Для Linux/Mac venv\Scripts\activate # Для Windows pip install -r requirements.txt
-
Добавьте API-ключ YouTube:
- Получите ключ на Google Cloud Console.
- Добавьте ключ в файл
data/api_key.json:{ "api_key": "ВАШ_YOUTUBE_API_КЛЮЧ" } - Или добавьте ключ через кнопку "Settings" в приложении.
-
Запустите приложение:
cd app python MainWindow.py -
Использование приложения:
- Введите ссылку на видео в поле ввода.
- Нажмите кнопку "Search" для анализа комментариев.
- Результаты отображаются в виде:
- Круговой диаграммы с долей позитивных и негативных комментариев.
- PCA-графика скрытых состояний LSTM.
Python 3.8 и выше