Skip to content

RomanS123/CommAnalyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Анализ комментариев под видео на YouTube

Описание проекта

Данное приложение представляет собой десктопное приложение для анализа комментариев под видео на YouTube. Пользователь вводит ссылку на видео, после чего приложение загружает комментарии через API YouTube, классифицирует их с помощью нейросети и визуализирует результаты анализа в виде круговой диаграммы и графика.

Тема проекта

Тема проекта: Разработка десктопного приложения для анализа настроений комментариев под видео на YouTube с помощью нейросетей.

Информация об авторе проекта

  • ФИО: Шевчук Роман Иванович
  • Номер группы: Б05-253

Реализуемый функционал

  1. Ввод ссылки на видео
  2. Загрузка комментариев через API YouTube
  3. Классификация комментариев по настроению
  4. Перевод комментариев на английский
  5. Визуализация результатов анализа
  6. Настройка 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           # Список зависимостей

Развёрнутое описание архитектуры

Архитектура приложения построена на модульном принципе и состоит из следующих компонентов:

1. Пользовательский интерфейс (MainWindow)

Описание: Управляет взаимодействием пользователя с приложением.
Ключевые функции:

  • Поле ввода: для ввода ссылки на YouTube-видео.
  • Кнопка "Search": запускает процесс анализа комментариев.
  • Кнопка "Settings": позволяет добавить или обновить YouTube API-ключ.
  • Круговая диаграмма: визуализирует распределение позитивных и негативных комментариев.
  • График PCA: отображает скрытые состояния LSTM.

Основные методы:

  • show_search_results() — загружает комментарии и запускает их анализ.
  • create_result_view() — визуализирует результаты анализа с помощью диаграмм.
  • open_settings() — открывает окно для добавления API-ключа.

2. Модуль работы с YouTube API (YouTubeAPI)

Описание: Класс для загрузки комментариев с YouTube.

Методы:

  • get_comments(video_url)
    • Извлекает ID видео из URL.
    • Загружает комментарии через API YouTube.
    • Возвращает список комментариев.

Особенности:

  • Управление nextPageToken для загрузки большого числа комментариев.
  • Очистка комментариев от лишних символов с помощью re.

3. Модуль классификации настроений (SentimentClassifier)

Описание: Отвечает за анализ тональности комментариев. Использует LSTM-модель, предобученную на текстах для классификации.

Основные методы:

  • preprocess(text)
    • Токенизация текста с использованием словаря.
    • Преобразование текста в числовые индексы для подачи в модель.
  • classify_batch(texts)
    • Классификация группы комментариев.
    • Возвращает список значений (0 — негативный, 1 — позитивный).

4. Модуль визуализации результатов

Описание: Визуализация данных с использованием matplotlib и PCA.

Функции:

  • Круговая диаграмма (Pie Chart):
    • Построение диаграммы для отображения доли позитивных и негативных комментариев.
  • PCA-график:
    • Снижение размерности скрытых состояний LSTM до 2D.
    • Визуализация с цветовой шкалой для отображения тональности комментариев.

5. Модуль настройки API-ключа

Описание:
Позволяет пользователю добавить или обновить ключ YouTube API через интерфейс.

Ключевые компоненты:

  • Файл api_key.json: сохраняет ключ для последующего использования.
  • Окно "Settings": реализовано через PyQt5 QDialog.

Основные методы:

  • save_api_key() — сохраняет ключ в JSON-файл.
  • load_api_key() — загружает ключ при старте приложения.

Инструкция по запуску проекта

  1. Клонируйте репозиторий и установите зависимости:

    git clone <ссылка на репозиторий>
    cd CommAnalyzer
    python -m venv venv
    source venv/bin/activate      # Для Linux/Mac
    venv\Scripts\activate         # Для Windows
    pip install -r requirements.txt
  2. Добавьте API-ключ YouTube:

    • Получите ключ на Google Cloud Console.
    • Добавьте ключ в файл data/api_key.json:
      {
          "api_key": "ВАШ_YOUTUBE_API_КЛЮЧ"
      }
    • Или добавьте ключ через кнопку "Settings" в приложении.
  3. Запустите приложение:

    cd app
    python MainWindow.py
  4. Использование приложения:

    • Введите ссылку на видео в поле ввода.
    • Нажмите кнопку "Search" для анализа комментариев.
    • Результаты отображаются в виде:
      • Круговой диаграммы с долей позитивных и негативных комментариев.
      • PCA-графика скрытых состояний LSTM.

Поддерживаемые версии Python

Python 3.8 и выше


About

Python project at MIPT 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages