Skip to content

Сбор данных, создание и обучение модели оценки отзывов

License

Notifications You must be signed in to change notification settings

GameTrue/textClassification-IS-ML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Text Classification - ITMO University Lab 4

Этот репозиторий содержит лабораторную работу №4 по курсу машинного обучения в университете ИТМО, посвященную обработке текстовых данных и построению классификатора отзывов.


Описание

В данной лабораторной работе проводится анализ и классификация отзывов пользователей с платформ Wildberries и FunPay. Основной акцент сделан на предобработке текстов, построении эмбеддингов и применении рекуррентных нейронных сетей для классификации отзывов на положительные и отрицательные.

Содержимое репозитория

  • src/: Директория с исходным кодом
    • wildberries/: Код для работы с данными Wildberries
      • result.ipynb: Jupyter ноутбук с основной реализацией и анализом
      • parse_cards.py: Скрипт для сбора данных о товарах
      • parse_feedback.py: Скрипт для сбора одиночных отзывов
      • parse_feedbacks.py: Скрипт для массового сбора отзывов
    • funpay/: Код для работы с данными FunPay
      • test4.py: Скрипт для сбора отзывов с FunPay
  • models/: Директория с сохраненными моделями
  • data/: Директория с данными
  • README.md: Описание проекта (вы читаете этот файл)

Реализованные методы

  1. Сбор данных:

    • Парсинг отзывов с Wildberries с использованием API
    • Парсинг отзывов с FunPay через веб-скрапинг
  2. Предобработка текста:

    • Приведение к единому регистру и содержанию
    • Удаление стоп-слов с использованием NLTK
    • Лемматизация с использованием PyMorphy2
    • Tokenization с использованием BPE (Byte Pair Encoding)
  3. Балансировка данных:

    • Undersampling - RandomUnderSampler
    • Oversampling - RandomOverSampler
  4. Построение модели:

    • Embedding слой для представления слов
    • Двунаправленный LSTM для анализа последовательностей
    • Механизм внимания (Attention) для выделения важных частей текста
    • Batch Normalization и Dropout для регуляризации
  5. Визуализация эмбеддингов:

    • PCA (метод главных компонент)
    • t-SNE (t-distributed Stochastic Neighbor Embedding)
    • UMAP (Uniform Manifold Approximation and Projection)

Установка и запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/your-username/text-GameTrue.git
    cd text-GameTrue
  2. Установите необходимые зависимости:

    pip install -r requirements.txt
  3. Запустите Jupyter Notebook:

    jupyter notebook src/wildberries/result.ipynb

Основные результаты

В ходе работы было выявлено, что:

  • Модель достигает высокой точности классификации отзывов (91% на тестовой выборке)
  • Precision: 96.54%, Recall: 93.04%, F1 Score: 94.76%
  • Внедрение механизма внимания существенно улучшает качество классификации
  • Отзывы образуют хорошо различимые кластеры в пространстве эмбеддингов при использовании методов снижения размерности

Технологии и библиотеки

  • Python 3.8+
  • PyTorch
  • NLTK, PyMorphy2
  • Pandas, NumPy
  • Beautiful Soup для веб-скрапинга
  • Matplotlib, Seaborn для визуализации
  • scikit-learn
  • umap-learn
  • Byte Pair Encoding (youtokentome)

Контакты

Если у вас есть вопросы или предложения, вы можете связаться со мной через GitHub: GameTrue.

About

Сбор данных, создание и обучение модели оценки отзывов

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •