# ☁️ Облако тегов тем чата — v1.8

**Версия:** v1.8
**Дата:** 26 февраля 2026 г.
**Статус:** ✅ Реализовано

---

## 📋 Описание

Анализ тем чата с автоматической классификацией сообщений. Бот определяет тему каждого сообщения (лифты, парковка, уборка, соседи и т.д.), формирует облако тегов, показывает статистику и тренды тем.

---

## 🎯 Возможности

- ✅ 18 тем для классификации (лифты, парковка, уборка, соседи, вода, свет...)
- ✅ Авто-классификация каждого сообщения
- ✅ Облако тегов с процентами
- ✅ Топ тем за период
- ✅ Статистика по конкретной теме
- ✅ Еженедельный отчёт
- ✅ Тренды тем по дням

---

## 📱 Команды

### Для администраторов:

| Команда | Описание | Пример |
|---------|----------|--------|
| `/topics [дни]` | Облако тегов | `/topics 7` |
| `/top_topics [дни] [лимит]` | Топ тем | `/top_topics 7 5` |
| `/topic_stats <тема>` | Статистика темы | `/topic_stats лифты` |
| `/weekly_report` | Еженедельный отчёт | `/weekly_report` |
| `/topics_list` | Список всех тем | `/topics_list` |

---

## 🎯 Темы для классификации

| Тема | Emoji | Ключевые слова |
|------|-------|---------------|
| 🛗 Лифты | 🛗 | лифт, лифты, кабина, шахта |
| 🚗 Парковка | 🚗 | парковк, машина, автомобиль, шлагбаум |
| 🧹 Уборка | 🧹 | уборк, грязн, мусор, подъезд |
| 👥 Соседи | 👥 | сосед, шум, громко, музыка, ремонт |
| 💧 Вода | 💧 | вод, кран, труб, протечк, засор |
| ⚡ Электричество | ⚡ | свет, электричеств, розетк, проводк |
| 🔥 Отопление | 🔥 | отоплен, батаре, радиатор, тепло |
| 🔑 Домофон | 🔑 | домофон, ключ, карта, доступ |
| 🗑️ Мусор | 🗑️ | мусор, контейнер, баки, вывоз |
| 👶 Дети | 👶 | ребенок, дети, коляск, площадк |
| 🐕 Животные | 🐕 | собак, кошк, питомец, лают |
| 📢 Объявления | 📢 | объявлен, продам, куплю, отдам |
| 😠 Жалобы | 😠 | жалоб, недовольн, возмущен, требую |
| 🙏 Благодарности | 🙏 | спасиб, благодар, молодец, хорошо |
| ❓ Вопросы | ❓ | вопрос, подскажите, помогите, кто знает |
| 💡 Предложения | 💡 | предлагаю, давайте, идея |
| 📅 Собрание | 📅 | собран, встреч, голосован, опрос |
| 🏢 УК | 🏢 | ук, управляющ, жкх, диспетчер |

---

## 🎯 Сценарии использования

### Сценарий 1: Облако тегов

**Админ:**
```
/topics
```

**Бот:**
```
☁️ Облако тем чата (за 7 дн.)

Всего сообщений: 500
Распознано: 400 (80%)

🛗 Лифты: ████████████░░░░░░ 60% (240)
🚗 Парковка: ██████░░░░░░░░░░░░ 30% (120)
🧹 Уборка: ████░░░░░░░░░░░░░░ 20% (80)
👥 Соседи: ██░░░░░░░░░░░░░░░░ 10% (40)
💧 Вода: ██░░░░░░░░░░░░░░░░ 10% (40)
```

---

### Сценарий 2: Топ тем

**Админ:**
```
/top_topics 7 5
```

**Бот:**
```
🔥 Топ тем за 7 дн.

1. 🛗 Лифты: 60% (240 сообщ.)
2. 🚗 Парковка: 30% (120 сообщ.)
3. 🧹 Уборка: 20% (80 сообщ.)
4. 👥 Соседи: 10% (40 сообщ.)
5. 💧 Вода: 10% (40 сообщ.)
```

---

### Сценарий 3: Статистика темы

**Админ:**
```
/topic_stats лифты
```

**Бот:**
```
🛗 Статистика темы: Лифты

📊 За 7 дней:
├─ Сообщений: 240
└─ Доля: 60%

📈 За 14 дней:
└─ Сообщений: 450

📅 По дням:
  20.02: 35 сообщ.
  21.02: 40 сообщ.
  22.02: 30 сообщ.
  23.02: 45 сообщ.
  24.02: 50 сообщ.
  25.02: 40 сообщ.
  26.02: 35 сообщ.
```

---

### Сценарий 4: Еженедельный отчёт

**Админ:**
```
/weekly_report
```

**Бот:**
```
📊 Еженедельный отчёт по темам чата

Период: последние 7 дней

🔥 Топ тем недели:

1. 🛗 Лифты: 60% (240 сообщ.)
2. 🚗 Парковка: 30% (120 сообщ.)
3. 🧹 Уборка: 20% (80 сообщ.)

📈 Динамика:

↗️ Лифты: +50 (🛗)
↗️ Парковка: +30 (🚗)
↘️ Уборка: -10 (🧹)

💡 Используйте /topics для детальной статистики
```

---

### Сценарий 5: Список тем

**Админ:**
```
/topics_list
```

**Бот:**
```
📋 Список тем для классификации

🛗 Лифты
   └─ Ключевые слова: лифт, лифты, лифтовая, кабина...
🚗 Парковка
   └─ Ключевые слова: парковк, машина, автомобиль...
🧹 Уборка
   └─ Ключевые слова: уборк, грязн, мусор...
...

💡 Всего тем: 18
```

---

## 🗄️ База данных

### Поле в `messages`:
```sql
ALTER TABLE messages ADD COLUMN topic TEXT
CREATE INDEX ix_messages_topic ON messages(topic)
```

---

## 🧪 Тестирование

### Чек-лист проверки:

#### 1. Облако тегов
```bash
# Админ:
/topics
```
- [ ] Облако отображается
- [ ] Проценты считаются верно
- [ ] Emoji правильные

#### 2. Топ тем
```bash
/top_topics 7 5
```
- [ ] Топ отображается
- [ ] Лимит работает

#### 3. Статистика темы
```bash
/topic_stats лифты
```
- [ ] Статистика по теме отображается
- [ ] Тренд по дням показан

#### 4. Еженедельный отчёт
```bash
/weekly_report
```
- [ ] Отчёт формируется
- [ ] Динамика считается

---

## 📁 Изменённые файлы

| Файл | Изменения |
|------|-----------|
| `database/models.py` | Поле `topic` в Message |
| `database/migrate_add_topic_field.py` | Миграция БД |
| `services/topics_analyzer.py` | Сервис анализа тем |
| `handlers/topics.py` | Хендлеры |
| `handlers/chat_monitor.py` | Авто-классификация |
| `handlers/__init__.py` | Импорт topics_router |
| `main.py` | Регистрация topics_router |

---

## 🚀 Как использовать

### Для админа:

1. **Посмотреть облако тегов:**
   ```
   /topics
   ```

2. **Посмотреть топ тем:**
   ```
   /top_topics 7 5
   ```

3. **Проверить тему:**
   ```
   /topic_stats лифты
   ```

4. **Получить отчёт:**
   ```
   /weekly_report
   ```

---

## 💡 Советы

### Настройка тем:

В `services/topics_analyzer.py`:
```python
'новая_тема': {
    'keywords': ['ключевое', 'слова'],
    'emoji': '🎯'
}
```

### Точность классификации:

- **80%+** — отличный результат
- **60-80%** — хороший результат
- **<60%** — добавьте больше ключевых слов

### Еженедельный отчёт:

Добавьте в scheduler.py:
```python
# Каждое воскресенье в 10:00
CronTrigger.from_crontab('0 10 * * 0')
```

---

## 🔧 Отладка

### Посмотреть темы в БД:
```bash
cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db

SELECT topic, COUNT(*) as count
FROM messages
WHERE topic IS NOT NULL
GROUP BY topic
ORDER BY count DESC;
```

### Логи:
```bash
tail -f logs/bot.log | grep -i "тем\|topic"
```

---

## ✅ Преимущества

| Было | Стало |
|------|-------|
| Не понятно что волнует жильцов | **Облако тегов** |
| Ручной анализ | **Авто-классификация** |
| Нет статистики | **Топ тем, тренды** |
| Нет отчётов | **Еженедельный отчёт** |

---

**Облако тегов готово! ☁️**

*Следующий шаг: тестирование на тестовой группе и фиксация версии v1.8*
