Skip to content

Telegram bot for training ruBERT-tiny2 neural network. Users classificate situations and make clean dataset

Notifications You must be signed in to change notification settings

lamerous/AlignedHearts-TrainBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

❤️ Aligned Hearts Lab: Dataset Collector

Static Badge Develop Platform Status

Python Telegram SQLite Pandas Docker

Система сбора и классификации данных о семейных конфликтах. Этот инструмент представляет собой Telegram-бота для асессоров, который позволяет размечать реальные текстовые сценарии ссор по трем ключевым осям: Стадия, Причина и Настрой.

Собранный датасет в формате .csv предназначен для последующего обучения NLP-модели (например, ruBERT) для автоматического анализа отношений и предложения психологических рекомендаций.


🧠 Психологическая модель классификации

Чтобы обеспечить точность обучения, каждая ситуация размечается по следующим параметрам:

1. 🎭 MOODS (Настрой автора)

  • Агрессия — злость, прямые обвинения, использование грубых слов.
  • Тревога — страх потери отношений, чувство вины, поиск поддержки.
  • Апатия — эмоциональное выгорание, отсутствие сил бороться, безнадежность.
  • Конструктив — спокойный анализ ситуации, поиск решения и логика.

2. 🎯 CAUSES (Причины конфликта)

  • Быт — уборка, обязанности, домашние дела.
  • Деньги — бюджет, траты, работа, долги.
  • Границы — контроль, критика, нарушение личного пространства.
  • Внимание — игнорирование, нехватка общения, зависимость от гаджетов/игр.
  • Секс — интимная жизнь, измены, физическая холодность.
  • Ревность — подозрения, проверки телефона, бывшие партнеры.
  • Дети — разногласия в воспитании и уходе.
  • Родня — вмешательство родителей и родственников.
  • Друзья — влияние окружения, приоритет компаний над семьей.
  • Личность — характер, темперамент и привычки партнера.

3. 📈 STAGES (Стадия ссоры)

  • Напряжение — скрытое недовольство, накопление обид.
  • Скандал — острая фаза, активная перепалка, крики.
  • Бойкот — фаза молчания и игнорирования после конфликта.
  • Цикл — хроническая проблема, повторяющаяся «по кругу».
  • Разрыв — финальная стадия, мысли о разводе или расставании.

🚀 Быстрый запуск

1. Требования

  • Python 3.11+
  • Docker (опционально)

2. Установка зависимостей

pip install -r requirements.txt

3. Настройка окружения

Создайте файл .env в корне проекта и добавьте ваш токен бота:

TOKEN=your_telegram_bot_token_here

4. Подготовка данных

Поместите ваш исходный файл с текстами ссор в /data/raw_dialogs.csv. Файл должен содержать колонки id и text.

5. Запуск через Docker

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.


📄 License

Проект находится под лицензией MIT.


Бот разработан для проекта Aligned Hearts.

About

Telegram bot for training ruBERT-tiny2 neural network. Users classificate situations and make clean dataset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published