Этот репозиторий содержит лабораторную работу №4 по курсу машинного обучения в университете ИТМО, посвященную обработке текстовых данных и построению классификатора отзывов.
В данной лабораторной работе проводится анализ и классификация отзывов пользователей с платформ Wildberries и FunPay. Основной акцент сделан на предобработке текстов, построении эмбеддингов и применении рекуррентных нейронных сетей для классификации отзывов на положительные и отрицательные.
src/: Директория с исходным кодомwildberries/: Код для работы с данными Wildberriesresult.ipynb: Jupyter ноутбук с основной реализацией и анализомparse_cards.py: Скрипт для сбора данных о товарахparse_feedback.py: Скрипт для сбора одиночных отзывовparse_feedbacks.py: Скрипт для массового сбора отзывов
funpay/: Код для работы с данными FunPaytest4.py: Скрипт для сбора отзывов с FunPay
models/: Директория с сохраненными моделямиdata/: Директория с даннымиREADME.md: Описание проекта (вы читаете этот файл)
-
Сбор данных:
- Парсинг отзывов с Wildberries с использованием API
- Парсинг отзывов с FunPay через веб-скрапинг
-
Предобработка текста:
- Приведение к единому регистру и содержанию
- Удаление стоп-слов с использованием NLTK
- Лемматизация с использованием PyMorphy2
- Tokenization с использованием BPE (Byte Pair Encoding)
-
Балансировка данных:
- Undersampling - RandomUnderSampler
- Oversampling - RandomOverSampler
-
Построение модели:
- Embedding слой для представления слов
- Двунаправленный LSTM для анализа последовательностей
- Механизм внимания (Attention) для выделения важных частей текста
- Batch Normalization и Dropout для регуляризации
-
Визуализация эмбеддингов:
- PCA (метод главных компонент)
- t-SNE (t-distributed Stochastic Neighbor Embedding)
- UMAP (Uniform Manifold Approximation and Projection)
-
Клонируйте репозиторий:
git clone https://github.com/your-username/text-GameTrue.git cd text-GameTrue -
Установите необходимые зависимости:
pip install -r requirements.txt
-
Запустите 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.