Классификация психологических состояний на основе текстов
Требования к окружению
Для работы над проектом вам понадобятся следующие инструменты и библиотеки:
- Python 3.8+
- PyTorch (версия зависит от вашей CUDA/CPU конфигурации)
- Transformers
- Pandas
- scikit-learn
Установка необходимых библиотек (пример):
pip install torch transformers pandas scikit-learn
Структура проекта
- train.csv — обучающий набор данных.
- valid.csv — валидационный набор.
- train.py — скрипт для дообучения (fine-tuning) модели на ваших данных.
- model — дообученная модель.
Подготовка данных
Формат CSV:
Минимум два столбца:statement
— текст, который требуется классифицировать.status
— метка класса (например, Anxiety, Depression, Normal, Suicidal и т.д.).
Удаление лишних столбцов:
Если в данных присутствует столбецUnnamed: 0
или любой другой служебный, удалите его.Предварительная очистка текста (preprocessing):
- Удаление лишних пробелов и переносов строк.
- Опционально: стемминг или лемматизация, удаление HTML-тегов, пунктуации и т.д.
Пример содержимого train.csv
(упрощённо):
statement,status
"Я очень нервничаю из-за завтрашнего экзамена",Anxiety
"Я чувствую себя нормально, но иногда беспокоюсь",Normal
...
Файлы для обучения и инференс
Требования для запуска обучения
Для корректного запуска обучения необходимо наличие двух CSV-файлов в каталоге с данными:
train.csv
- Содержит обучающие данные.
- Обязательные столбцы:
statement
– текст для классификации.status
– метка класса (например, Normal, Depression, Suicidal, Anxiety, Bipolar, Personality disorder, Stress).
valid.csv
- Содержит данные для валидации.
- Имеет ту же структуру, что и
train.csv
.
Скрипт для обучения (train.py
) ожидает, что эти два файла будут доступны по указанным путям (в корне проекта).
Инструкции по запуску инференс-скрипта
Убедитесь, что дообученная модель сохранена.
Например, если вы дообучали модель с помощьюtrain.py
, она должна находиться в папке./trained_deberta_model
(либо укажите другой путь).Запустите скрипт через командную строку.
Пример запуска:python inference.py --text "Пример текста для классификации" --model_dir "./trained_deberta_model"
Если необходимо изменить список меток, можно передать их через параметр
--labels
:python inference.py --text "Пример текста для классификации" --model_dir "./trained_deberta_model" --labels "Normal,Depression,Suicidal,Anxiety,Bipolar,Personality disorder,Stress"
Параметры:
--model_dir
– путь к директории с дообученной моделью.--text
– текст, который вы хотите классифицировать.--labels
– (опционально) список меток, разделённых запятыми.--max_length
– (опционально) максимальная длина последовательности (по умолчанию 512 токенов).
После выполнения скрипта в консоли будут выведены логиты, вероятности для каждого класса, индекс предсказанного класса и, при наличии label mapping, соответствующая метка.