Telegram Social Media Intelligence (SOCMINT / OSINT) платформа для анализа экспортированных Telegram чатов и каналов.
Telanalysis использует FastAPI для загрузки Telegram JSON-архивов, выполнения NLP и сентимент-анализа, генерации графов взаимодействий, семантического и стилометрического анализа.
- Анализ Telegram каналов и чатов
- Построение WordCloud из сообщений канала
- Частотный анализ слов и ключевых фраз
- Сентимент-анализ сообщений
- Извлечение email-адресов и телефонных номеров
- Построение графов reply-взаимодействий
- Экспорт
nodes_*.csv,edges_*.csvи JSON-графа - Семантический анализ тем и coherence
- Стилометрический анализ текста
- Временной анализ активности
Проект работает с JSON-экспортами Telegram, полученными из Telegram Desktop или других средств экспорта.
Поддерживаются:
- каналы
- супергруппы
- приватные группы
- история чатов в JSON
app/
routers/
analysis.py # маршруты загрузки и анализа
services/
channel_analyse.py
chat_analyse.py
graph_generator.py
semantic_analyse.py
stylometric_analyse.py
temporal_analyse.py
nltk_analyse.py
utils.py
static/
templates/
graphs/ # сохраняются визуальные артефакты и графы
uploads/ # загруженные JSON-файлы
config.json
requirements.txt
Dockerfile
docker-compose.yml
Используемые технологии:
- Python 3.11
- FastAPI
- Uvicorn
- Jinja2
- NLTK
- VaderSentiment
- NetworkX
- WordCloud
- Matplotlib
- JMESPath
- Создайте виртуальное окружение:
python3 -m venv venv
source venv/bin/activate- Установите зависимости:
pip install -r requirements.txt- Загрузите NLTK-данные:
python -m nltk.downloader stopwords punkt- Запустите приложение:
uvicorn app.main:app --host 0.0.0.0 --port 8000- Откройте в браузере:
http://127.0.0.1:8000
Проект содержит Dockerfile и docker-compose.yml.
Запустите:
docker compose up --buildДля фонового режима:
docker compose up --build -dОстановить контейнеры:
docker compose downТом монтирует локальные директории:
./graphs→/app/graphs./uploads→/app/uploads./config.json→/app/config.json
По умолчанию приложение доступно на http://127.0.0.1:8000.
Если на системе используется старая версия Docker Compose, можно применить
docker-compose up --build.
- Перейдите на главную страницу.
- Загрузите Telegram JSON через форму
Анализ каналаилиАнализ чата. - Дождитесь обработки и просмотрите результаты.
- Сгенерированные артефакты доступны в
graphs/.
/— главная страница/analyze/channel— анализ канала/analyze/chat— анализ чата
После загрузки JSON генерируются:
wordcloud.pngдля канального анализаnodes_*.csvиedges_*.csvдля графовой аналитики*.jsonD3-ready граф- семантические темы и ключевые фразы
- стилометрические метрики
- временные показатели активности
- извлечённые email и телефоны
Настройки читаются из config.json.
Пример:
{
"select_type_stem": "Off",
"most_com": 30,
"most_com_channel": 100
}- Загруженные файлы сохраняются в
uploads/. - Сгенерированные графы и изображения сохраняются в
graphs/. - Приложение запускается на порту
8000.
Если нужно, добавьте в config.json параметры для изменения количества анализируемых слов.
import nltk
nltk.download('stopwords')
exit()Запуск:
uvicorn app.main:app --host 0.0.0.0 --port 80Открыть в браузере:
http://127.0.0.1:80
docker build -t telanalysis .docker run -p 80:80 telanalysisdocker compose up -d --buildПосле обработки создаются:
graphs/<file>_wordcloud.png
graphs/<file>.json
graphs/nodes_<file>.csv
graphs/edges_<file>.csv
Файл:
config.json
Пример:
{
"select_type_stem": "Off",
"most_com": 30,
"most_com_channel": 100
}Параметры:
- select_type_stem — stemming NLP
- most_com — количество top words для чатов
- most_com_channel — количество top words для каналов
GET /POST /analyze/channelPOST /analyze/chatРекомендуется:
- не публиковать uploads/
- использовать reverse proxy
- ограничить CORS в production
- запускать behind VPN/reverse proxy
- использовать isolated Docker runtime
- очищать uploads и graphs
Планируемые функции:
- Neo4j integration
- Gephi export
- Multi-chat correlation
- Temporal graph analysis
- Entity clustering
- Username tracking
- URL extraction
- Telegram API integration
- ML-based anomaly detection
- Centrality metrics
- Community detection
Educational / Research Use.
#osintsan:icragency.ru