Система сбора и классификации данных о семейных конфликтах. Этот инструмент представляет собой Telegram-бота для асессоров, который позволяет размечать реальные текстовые сценарии ссор по трем ключевым осям: Стадия, Причина и Настрой.
Собранный датасет в формате .csv предназначен для последующего обучения NLP-модели (например, ruBERT) для автоматического анализа отношений и предложения психологических рекомендаций.
Чтобы обеспечить точность обучения, каждая ситуация размечается по следующим параметрам:
- Агрессия — злость, прямые обвинения, использование грубых слов.
- Тревога — страх потери отношений, чувство вины, поиск поддержки.
- Апатия — эмоциональное выгорание, отсутствие сил бороться, безнадежность.
- Конструктив — спокойный анализ ситуации, поиск решения и логика.
- Быт — уборка, обязанности, домашние дела.
- Деньги — бюджет, траты, работа, долги.
- Границы — контроль, критика, нарушение личного пространства.
- Внимание — игнорирование, нехватка общения, зависимость от гаджетов/игр.
- Секс — интимная жизнь, измены, физическая холодность.
- Ревность — подозрения, проверки телефона, бывшие партнеры.
- Дети — разногласия в воспитании и уходе.
- Родня — вмешательство родителей и родственников.
- Друзья — влияние окружения, приоритет компаний над семьей.
- Личность — характер, темперамент и привычки партнера.
- Напряжение — скрытое недовольство, накопление обид.
- Скандал — острая фаза, активная перепалка, крики.
- Бойкот — фаза молчания и игнорирования после конфликта.
- Цикл — хроническая проблема, повторяющаяся «по кругу».
- Разрыв — финальная стадия, мысли о разводе или расставании.
- Python 3.11+
- Docker (опционально)
pip install -r requirements.txtСоздайте файл .env в корне проекта и добавьте ваш токен бота:
TOKEN=your_telegram_bot_token_here
Поместите ваш исходный файл с текстами ссор в /data/raw_dialogs.csv. Файл должен содержать колонки id и text.
docker build -t hearts-lab .
docker run -d --name hearts-collector -v $(pwd)/data:/app/data --env-file .env hearts-laРезультат работы асессоров сохраняется в файл labeled_data.csv. Каждая строка представляет собой готовый размеченный объект для обучения нейросети. Файл содержит следующие поля:
| Поле | Описание | Пример |
|---|---|---|
| user_id | ID асессора в Telegram | 45023190 |
| dialog_id | Уникальный ID сценария из исходного файла | 102 |
| text | Исходный текст сообщения | "Он постоянно указывает на мои недостатки..." |
| stage | Выбранная стадия (из списка STAGES) | Цикл |
| cause | Выбранная причина (из списка CAUSES) | Границы |
| mood | Эмоциональный настрой (из списка MOODS) | Агрессия |
| timestamp | Дата и время сохранения записи | 2025-12-27 15:30:01 |
main.py— основная логика бота: управление состояниями (FSM), обработка команд и нажатий кнопок.database.py— модуль для работы с базой данных SQLite: регистрация пользователей и контроль уникальности выдаваемых диалогов.Dockerfile— инструкции для сборки легковесного образа на базе Python 3.11-alpine.data/— рабочая директория (Volume):raw_dialogs.csv— исходные данные для разметки.labeled_data.csv— результат работы (формируется автоматически).aligned_hearts.db— база данных SQLite.
Если у вас есть предложения по улучшению психологической классификации или вы хотите помочь с обучением модели ruBERT, создавайте Issue или Pull Request.
Проект находится под лицензией MIT.
Бот разработан для проекта Aligned Hearts.