Классификация типов личности по текстам с помощью глубокого обучения
MBTI-LSTM — исследовательский проект, использующий рекуррентные нейронные сети (LSTM) для классификации типов личности MBTI на основе текстов из социальных сетей.
LSTM модель извлекает косвенные признаки личности через анализ последовательностей в тексте:
- Стиль написания
- Выбор слов
- Синтаксические паттерны
- Структура предложений
BiLSTM архитектура: 128→64 нейронов с attention
Научная база: Опубликованные статьи РИНЦ
Google Colab: Обучение на GPU
# Клонировать репозиторий
git clone https://github.com/mueqee/MBTI-LSTM.git
cd MBTI-LSTM
# Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Установить зависимости
pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
# Загрузить NLTK данные
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('wordnet'); nltk.download('omw-1.4')"# Скачать датасет с Kaggle
./scripts/download_kaggle_data.sh# Запустить обучение
python scripts/train.py \
--data_path data/raw/mbti_dataset.csv \
--num_epochs 50 \
--batch_size 32 \
--learning_rate 0.001Для быстрого обучения на GPU notebook: LSTM_Training_Colab.ipynb
| Дихотомия | Точность | F1-Score |
|---|---|---|
| I/E (Интроверсия/Экстраверсия) | 0.77 | 0.84 |
| N/S (Интуиция/Сенсорика) | 0.86 | 0.87 |
| T/F (Мышление/Чувствование) | 0.62 | 0.83 |
| J/P (Суждение/Восприятие) | 0.60 | 0.82 |
| Среднее | 0.71 | 0.84 |
| Дихотомия | Желаемая точность | Желаемый F1 | Действительная* точность | Действительный* F1 |
|---|---|---|---|---|
| I/E | 0.77 | 0.84 | 0.7043 | 0.3507 |
| N/S | 0.86 | 0.87 | 0.8195 | 0.4196 |
| T/F | 0.62 | 0.83 | 0.5799 | 0.4196 |
| J/P | 0.60 | 0.82 | 0.5276 | 0.4196 |
| Среднее | 0.71 | 0.84 | 0.6578 | 0.4196 |
*После пересбора модели и первых итераций
Входной текст (max 500 токенов)
↓
Embedding Layer (300d)
↓
BiLSTM Layer 1 (128)
↓
BiLSTM Layer 2 (64)
↓
Dropout (0.2)
↓
Полносвязный слой (64)
↓
Выход (4 дихотомии)
Параметры модели: ~12M обучаемых весов
MBTI-LSTM/
├── src/ # Основной код
│ ├── data/ # Обработка данных
│ ├── models/ # LSTM архитектура
│ ├── training/ # Обучение и метрики
│ └── api/ # API для инференса
├── scripts/ # Скрипты запуска
├── notebooks/ # Jupyter notebooks
├── config/ # Конфигурации
├── data/ # Датасеты
├── checkpoints/ # Сохраненные модели
├── docker/ # Docker конфигурация
├── docs/ # Документация
└── papers/ # Научные публикации
- Самойлова Л. (2024). "Прогнозирование личностных характеристик MBTI с использованием рекуррентной нейронной сети LSTM и текстовых данных социальных сетей". Вестник Науки, 6(75).
- Python
- PyTorch
- NLTK / spaCy - обработка текста
- scikit-learn - метрики и разбиение данных
- pandas / numpy - работа с данными
- Docker - контейнеризация (в процессе)
- Базовая архитектура LSTM с диссера
- Pipeline обработки данных
- Система обучения с ранней остановкой
- Полная русификация кода
- Google Colab интеграция
- Эксперименты с гиперпараметрами
- Attention механизм
- Предобученные эмбеддинги (Word2Vec/FastText)
- MLflow для трекинга экспериментов
- FastAPI для инференса
- Сравнение с BERT/RoBERTa
- Веб-интерфейс
- Production deployment
MIT License - см. LICENSE
- Датасет: Kaggle MBTI Dataset
- Научный руководитель: к.т.н., доцент Гулевич Т.М.
- GitHub: @mueqee
- Telegram: @mueqee
- ORCID & Google Scholar: СамойловаЛ
Создано с ❤️ для исследований в области анализа личности