От сырых данных к структурированным выводам
За публичной базой данных The Detained работает выделенный Python ML-микросервис — страновые модели доступные через REST API — для оценки рисков по делам, прогнозирования трендов арестов, обнаружения координированных кампаний и подготовки статистики, на которую могут ссылаться юристы — по России, Беларуси, Грузии и Центральной Азии. Каждая оценка ссылается на исходные записи, по которым она рассчитана.
Каждое дело попадает в многоэтапный пайплайн. Каждый этап описан ниже — раскройте «Как это работает» на любом этапе для просмотра используемых техник.
5,400+
Задокументированных дел
7
Стран отслеживается
10
Организаций-источников
25+
API-эндпоинтов
Десятиэтапный пайплайн
Дело входит сверху, выходит снизу. Каждый этап добавляет структуру, доказательства или контекст, на которые опирается следующий.
Автоматический сбор данных
Система непрерывно собирает данные из ведущих правозащитных источников. Скрипты синхронизации поддерживают актуальность нашей PostgreSQL-базы по новым арестам, преследованиям, приговорам и местам содержания заключённых в покрываемых регионах.
- Primary sources: OVD-Info and Political Prisoners Support. Memorial (Russia), Viasna (Belarus), Political Prisoners of Georgia and Civil Georgia, Open Dialogue Foundation and RFE/RL regional services (Central Asia), Uzbek Forum for Human Rights, and Mediazona
- Secondary sources: court record aggregators and direct family / legal counsel reports
- Structured database with a normalized schema for prisoners, cases, articles, locations, and outcomes
- Automated sync runs daily to detect new arrests, status changes, and releases; every record keeps its source URL
- Geolocation enrichment for coordinate standardization and region mapping
- Native-to-English machine translation (Russian & Belarusian) with the original text preserved alongside
Распознавание именованных сущностей
Многоязычное распознавание сущностей без дообучения (GLiNER) извлекает из неструктурированных описаний дел участников процесса — судей, прокуроров, адвокатов и суды — что позволяет статистически анализировать саму судебную систему.
- Zero-shot named-entity recognition using GLiNER (multilingual gliner_multi-v2.1) — extracts judges, prosecutors, courts, and defense counsel from case text in Russian, Belarusian, and English
- Rule-based validation (name morphology, patronymic patterns) filters low-quality extractions before anything is stored
- Per-judge analytics: average and maximum sentence, case count, and deviation from same-country peers
- Statistical fingerprinting per actor: article-by-article sentencing compared against peers using Mann-Whitney U tests — flagged only when the actor has ≥3 cases and peers ≥5
Классификация рисков XGBoost
Наши базовые модели используют XGBoost для предсказания двух ключевых вероятностей по каждому делу: уровня срочности (нужны ли немедленные адвокационные действия) и риска пыток в заключении. Россия и Беларусь обучаются как отдельные модели, чтобы правовые паттерны не смешивались между странами.
- Gradient-boosted tree classifiers (XGBoost, logistic objective) trained per country, with a global model as fallback
- Inputs: age, gender, arrest location, case category, and criminal articles (multi-label encoded); text-augmented torture model adds TF-IDF features from case summaries
- Class imbalance handled with positive-class weighting; decision thresholds tuned on held-out data rather than assumed at 0.5
- Probabilities calibrated post-hoc (isotonic regression, or Platt scaling on small classes) so a "70%" means 70%
- Every prediction ships with exact TreeSHAP attributions — the per-feature breakdown of why the model scored a case the way it did
- Case-page priority score is a weighted blend: urgency (0.45), torture signal (0.20), sentence severity (0.35)
Атрибуция технологий слежки
Выделенный классификатор предсказывает вероятную технологию слежки, использованную для идентификации и задержания политзаключённого — выявляя паттерны государственной инфраструктуры слежки по регионам и типам дел.
- Every case is labeled with what the prosecution's evidence primarily rests on — online speech, financial support, device evidence, informant testimony, physical presence — with a confidence score and a verbatim source quote, so each label can be checked against the record
- A gradient-boosted classifier trained on labeled cases predicts the likely capture vector for new ones (features: arrest location, case category, arrest year and month)
- Output is a full probability distribution over vectors, not a single guess
- Aggregated by region and over time, this exposes how enforcement actually finds people — e.g. the share of cases resting on online speech alone
Обнаружение раздутых обвинений
Эта модель выявляет прокурорский беспредел, измеряя разрыв между тем, что человек реально сделал (по описаниям дел), и предъявленными обвинениями. Отдельные шкалы тяжести существуют для УК России и Беларуси.
- Severity mapping: criminal articles scored on a 1–10 scale, maintained per legal framework (Russian and Belarusian codes)
- A TF-IDF text classifier estimates the probability that the underlying act was non-violent from the case description
- Inflation score = charged severity × P(non-violent act) — high when a severe article is stacked on conduct the record describes as peaceful
- A keyword safeguard caps the non-violent probability when the record itself describes violence
- Example: an anti-war post charged under Art. 207.3 "military fakes" (severity 8) with a clearly non-violent record scores near the top of the scale
Предсказание исхода
По признакам дела модель предсказывает вероятную длину приговора. Логарифмически-преобразованная регрессия гарантирует положительные предсказания и доверительный интервал, помогая юристам предвидеть исходы.
- Gradient-boosted regression on log-transformed sentence length (guarantees positive predictions), features: articles, case category, gender, location, age, and charge severity
- Outputs: expected sentence in years with a confidence band, compared against similar documented cases
- A separate Isolation Forest model flags statistical outliers across sentence length, charge severity, age, and charge count — surfacing disproportionate punishments without assuming what "normal" looks like
- Cases whose actual sentences deviate far from the model's expectation are flagged for review as possible political escalation
Прогноз трендов Prophet
Модели временных рядов Facebook Prophet прогнозируют тренды арестов до 90 дней вперёд — с отдельными моделями для глобальных трендов, России и Беларуси.
- Prophet time-series models on daily arrest counts, per country and per high-use article, with automatic changepoint detection
- A curated calendar of repression events (2022 invasion and censorship laws, mobilization, the 2020 Belarus crackdown, Navalny's death) enters the models as exogenous regressors
- Forecasts are backtested before publication — models that fail an accuracy gate are not served — and confidence bands are widened by conformal calibration
- Repression-wave detection runs separately: 7-day rolling z-scores on locations and articles, alerting when a spike exceeds two standard deviations
Обнаружение тем и кампаний
Двойное тематическое моделирование выявляет тематические кластеры в делах — от антивоенной речи до кампаний религиозных преследований. Это раскрывает координированные стратегии репрессий, невидимые на уровне отдельных дел.
- Two independent topic layers: TF-IDF + non-negative matrix factorization for fast monthly tracking, and BERTopic (MiniLM sentence embeddings + UMAP + HDBSCAN) for deeper semantic clusters
- Prosecution-template detection embeds every case summary with sentence-transformers (all-MiniLM-L6-v2) and clusters summaries whose cosine similarity exceeds 0.85 — surfacing near copy-paste indictments
- Template clusters are strong evidence of assembly-line prosecution: distinct defendants, near-identical case language
- Monthly topic tracking shows how the focus of repression shifts over time (e.g. war-censorship charges surging after February 2022)
Сетевой анализ дел
Мы строим сети сходства, связывающие дела по общим обвинениям, месту, времени и тактике. Алгоритмы обнаружения сообществ выявляют кластеры, раскрывающие координированные кампании репрессий — группы людей, которых преследуют одновременно.
- Case-similarity graphs built per country so domestic patterns stay distinct
- Edges use a transparent, fixed-weight composite: shared criminal articles (40%, Jaccard), same case category (20%), same location (20%), temporal proximity (20%) — a deliberate design choice: every edge is explainable, none depend on a black box
- Edges below a 0.3 similarity floor are dropped; communities are found with greedy modularity maximization (networkx)
- Each community is profiled — dominant charges, geographic center, time span — and labeled for the case-network explorer
- Clusters are leads for investigating coordinated campaigns, not proof of coordination on their own
Юридические инструменты для убежища
Самые значимые результаты: статистические доказательства преследований, индивидуальные оценки риска для соискателей убежища, поиск сравнительных дел и генерация документов — для поддержки реальных судебных процессов.
- Persecution Evidence Score: for any filter (category, location, article), aggregate statistics with Wilson confidence intervals on torture rates and regression-tested temporal trends — numbers a filing can cite with the math shown
- Sentencing-disparity analysis: minority vs. majority-region sentence distributions compared with Mann-Whitney U tests, reported only where p < 0.05
- Personal Risk Score: a transparent weighted heuristic (documented case density matching the applicant's profile, adjusted by torture rates and trend direction) — explicitly a structured estimate, not a trained model
- Comparative Case Finder: weighted multi-factor search for the closest documented precedents
- Report generation: statistical sections are computed directly from the database and inserted without passing through a language model, so the model cannot alter those figures; the connecting prose IS model-drafted, is not reviewed by us before you see it, and may misstate what the tables show — every generated report says so at the top, and the numbers still need checking against the primary source
Как читать метки: бейдж срочности и задокументированный риск
§ 02.11На сайте встречаются две разные метки, и они намеренно не совпадают. Одна — редакционный контекст, задаваемый при документировании дела; другая — модельная оценка, пересчитываемая по материалам дела.
The urgency level, in four steps
A triage flag, not the modeled score described alongside. When a case is first documented, our extraction pipeline reads the source reporting and proposes one of four levels, answering a single question: how time-sensitive does this case appear in the source record? Editors review and can override the flag at any time, and cases with too little reporting default to “No acute risk reported” until reviewed. Card badges appear only for the first two levels.
- ACUTE RISK REPORTEDthe record describes an immediate threat: reported torture or abuse, denied medical care, a hunger strike, or a disappearance
- ACTIVE PROCEEDINGSan active, fast-moving case: pre-trial detention, an ongoing trial, or heavy charges pending
- NO ACUTE RISK REPORTEDserving a sentence with no acute risk described; also the default while reporting is still too thin to judge
- REDUCED EXPOSUREreleased pending trial, a non-custodial or suspended sentence, or close to release. Never "unimportant."
The level is only as good as the source reporting behind it: thin records read as calmer than they may be. In the dataset these levels are stored as critical, high, medium and low.
Documented Risk — the percentage score
Independently of the badge, in-house XGBoost classifiers score each case’s documented risk: a weighted blend of modeled urgency (45%), sentence severity (35%), and the documented-mistreatment signal (20%), with a floor so a case with reported abuse can never read low on a short sentence. Probabilities are calibrated so a “70%” means 70%, and every score opens into TreeSHAP factor panels showing exactly what moved it.
The score measures what our sources document, never the importance of a case or a person — a lower number means fewer documented risk factors, not a lesser injustice.
The two labels are independent by design. The badge is editorial context fixed at documentation time; Documented Risk is recomputed from the record and can disagree with it. When they disagree, that disagreement is information — open the “Why this score?” panels on the case page to see why.
Архитектура системы
Четыре отдельных этапа. Данные текут от источников вверху к публичной платформе внизу; каждый этап можно заменить или масштабировать независимо.
Слой 01 / 04
Источники данных
Слой 02 / 04
Приём и проверка
Слой 03 / 04
Анализ и модели
Слой 04 / 04
Публичная платформа
Данные текут в одну сторону — от исходной документации к публичному анализу. Оценки никогда не перезаписывают исходные записи.
Замечание о предсказательных моделях
Вероятностные, не детерминированные
Оценки риска и прогнозы — это статистические оценки на основе исторических данных, а не предсказания того, что произойдёт с конкретным человеком.
Смещение отчётности
Наши данные отражают то, что смогли задокументировать правозащитные мониторы, а не всё, что произошло. Оценка пыток, например, показывает, сообщалось ли о пытках по делу — регионы со слабой отчётностью будут выглядеть безопаснее, чем есть. Где возможно, мы говорим об этом прямо.
Помощь, а не замена
Пайплайн помогает исследователям и юристам с приоритизацией. Он не заменяет человеческое суждение, проверку адвокатом или живой опыт семей и свидетелей.
Постоянная переобучаемость
Каждая модель переобучается по мере поступления новых данных. Классификация «высокий риск» отражает статистическое сходство с прошлыми делами — исход для конкретного человека может отличаться.
Оценки уверенности классификации
Если метка дела сопровождается оценкой уверенности (например, «conf 0.85»), это самооценка модели извлечения по шкале 0–1: насколько приведённая дословная цитата подтверждает метку. Это не оценка достоверности самих фактов. Значения ≥ 0.8 означают, что основание названо в цитате явно; 0.6–0.8 — метка выведена из сильного контекста; ниже 0.6 — лишь предположение: перед использованием сверьтесь с источником. Каждая оцененная метка сопровождается цитатой и ссылкой на источник.