diff --git a/README.md b/README.md index a29daad..bd581bc 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,50 @@ # Pet16704 — Análise do Processo -Visualização interativa da linha do tempo dos autos vinculados **Pet16704** (STF) — um ponto por -documento, agrupado pela instituição de origem (Relatoria, PGR, Polícia Federal, Partes e Defesas, -Secretaria e Cartório) e posicionado pela data real de juntada. +Uma linha do tempo navegável de tudo que está nos autos da **Pet16704**, no STF — o processo que reúne +a investigação do colapso do Banco Master (Operação Compliance Zero). São **3.437 documentos**, de +2018 a 2026, organizados por data e por quem os produziu (STF, PGR, Polícia Federal, partes/defesas, +cartório). -**Ver a página publicada:** (preencha aqui o link do GitHub Pages depois do primeiro deploy) +![Linha do tempo da Pet16704](timeline-screenshot.png) -## Como os dados foram montados +## O que dá pra fazer aqui -1. **`docs.json`** — cruzamento de duas fontes do dump original (uma com a instituição de cada - documento, outra com data/texto completo/arquivo-fonte). Ver `pipeline/extract.py`. +- **Ver cada documento no tempo**, agrupado por quem o produziu, com busca por texto ou nº do + documento e filtro por tipo de documento ou por pessoa citada. +- **Clicar em qualquer ponto** para ler o resumo daquele documento e abrir o texto original completo + (extraído por OCR dos autos). +- **Ver o resumo do processo conexo** ao qual aquele documento pertence — são **53 processos + apensados** à Pet16704 (outros inquéritos e petições), cada um com um resumo em linguagem corrente + de quem é investigado, quem são os advogados e o que aconteceu. +- **Consultar quem é citado**: **292 pessoas** identificadas automaticamente nos textos, com o papel + de cada uma (investigado, advogado, autoridade, testemunha etc.) sempre que dava pra inferir com + segurança — sem forçar uma classificação quando o texto não dava sinal suficiente. +- Alternar para uma **visão em tabela**, pesquisável, como atalho para quem prefere não navegar pelo + gráfico. -2. **Tipo de documento** — extraído do nome do arquivo-fonte de cada documento (ex.: "Despacho", - "Petição", "Procuração", "Certidão"), normalizado com acentuação correta. +## De onde vêm os dados -3. **Pessoas mencionadas (`people.json` / `PESSOAS.md`)** — reconhecimento de entidades feito - **localmente, sem usar o Claude para o texto em si**, com o modelo - [`pierreguillou/ner-bert-base-cased-pt-lenerbr`](https://huggingface.co/pierreguillou/ner-bert-base-cased-pt-lenerbr) - (BERT treinado no corpus **LeNER-Br**, de textos jurídicos brasileiros). Rodado sobre os 3.437 - textos via `pipeline/run_ner.py`. +Os documentos originais (PDFs digitalizados dos autos) foram convertidos em texto por OCR com o +[liteparse](https://github.com/run-llama/liteparse). Os resumos de cada documento e de cada processo +conexo foram escritos por modelos de IA gratuitos rodados via [opencode](https://opencode.ai). O +reconhecimento de pessoas citadas nos textos usou um modelo especializado em português jurídico +(código e detalhes técnicos em `pipeline/`, para quem quiser conferir). - Depois da extração bruta (435 nomes distintos), foi feita uma limpeza: - - separação de nomes que o modelo juntou erroneamente com "e" (ex. "Fulano e Beltrano" → duas - pessoas), preservando sobrenomes compostos legítimos ("Castro e Silva"); - - remoção de nomes de escritórios de advocacia reconhecidos como pessoa por engano; - - descarte de fragmentos de um único token (nomes incompletos, ex. só o primeiro nome); - - junção de variações do mesmo nome por contenção de tokens (ex. "Daniel Vorcaro" → - "Daniel Bueno Vorcaro"). - - Resultado: **292 pessoas distintas**, listadas em `people.json` (formato bruto, usado pela - página) e em `PESSOAS.md` (tabelas legíveis, agrupadas por papel). O papel processual de cada - pessoa (Relator/Ministro, Outorgante/Parte, Peticionante, Advogado(a), Investigado(a), - Delegado(a) PF, Senador(a), Deputado(a), Alvo de diligência, Perito(a), Testemunha) foi inferido - por frases-gatilho perto de cada menção (ex. "Despacho do Relator X", "Procuração de X - constituindo Y", "em desfavor de X"). **63% das pessoas (185 de 292) ficaram sem papel - classificado** ("Mencionado(a)") por falta de um sinal textual próximo confiável — isso é - esperado e fica visível na própria listagem, não escondido. - - **Limitações conhecidas:** isso é reconhecimento automático de entidades em texto livre, não uma - base curada. Pode haver nomes não reconhecidos, variações da mesma pessoa não unificadas, e - classificações de papel aproximadas. Trate como um ponto de partida para busca, não como fonte - definitiva de identidade ou qualificação processual. - -4. **Recuperação de datas (`pipeline/recover_dates.py`)** — dos 615 documentos sem data de juntada - identificada no dump original, 366 tiveram uma data recuperada lendo o texto original do próprio documento em - busca da sua linha de fechamento no padrão "Cidade/UF, DD de mês de YYYY." (ex. "Brasília, 10 de - abril de 2026."). Esses casos ficam marcados com `dateInferred: true` em `docs.json` e aparecem - no resumo do documento como "data lida no texto do documento, não da juntada nos autos" — é uma - data real do documento, mas não necessariamente a data em que foi juntado ao processo. Os 249 - restantes seguem sem data (fora do gráfico, só na tabela). Duas versões mais permissivas foram - tentadas e descartadas por amostragem manual antes desta: buscar qualquer "DD de mês de YYYY" no - texto pegava datas de citação de leis/decretos ("da Lei 11.419, de 19 de dezembro de 2006") e - prazos de normas citadas ("será exigido a partir de 1º de janeiro de 2017") como se fossem a data - do documento; e um fallback numérico (`dd.mm.aaaa`) pegava números soltos de anexos técnicos - longos (um laudo de vistoria, a validade de um CRECI) sem relação com a data real. Exigir uma - cidade e vírgula imediatamente antes da data eliminou os falsos positivos encontrados. - -5. **Autos vinculados (`resumos/parte1/`, `resumos/parte2/`)** — resumos em markdown dos processos conexos citados - ao longo da Pet16704 (Inq 5026, Inq 5035, Inq 5050, Inq 5070, Rcl 88121 e diversas Petições — - PET 15198, 15375, 15478 etc.), um arquivo por processo mais um `INDEX.md` consolidado em cada - pasta. Cobrem partes/investigados, advogados, autoridades e linha do tempo resumida de cada - procedimento. Na página, o resumo de qualquer documento da linha do tempo tem um botão "Ver - resumo do processo" que busca e mostra o arquivo correspondente aqui. +Nada disso substitui a leitura dos autos originais — é um ponto de partida para localizar e cruzar +informação, não uma fonte verificada. OCR erra, resumo automático simplifica, e reconhecimento de +nomes automático pode juntar ou deixar de reconhecer alguém. Sempre que algo parecer relevante, +confira no documento original (tem um link pra ele em cada ponto da linha do tempo). ## Projeto relacionado -[**vorcaros**](https://rafapolo.github.io/vorcaros/) — visualização em grafo da rede societária -(empresas e sócios) ligada às mesmas pessoas que aparecem nesta linha do tempo processual. Os dois -projetos olham o mesmo caso por ângulos diferentes: um pela rede de negócios, este pelo andamento -processual. +[**vorcaros**](https://rafapolo.github.io/vorcaros/) — o mesmo caso visto pelo outro lado: um grafo da +rede societária (empresas e sócios) das mesmas pessoas que aparecem aqui. -## Aviso +## Aviso — leia antes de usar -Este projeto reúne informações de um processo público em curso no STF. Nomes, datas e descrições -refletem o conteúdo dos autos tal como disponibilizado; erros de extração automática (OCR, NER, -digitação no material de origem) podem existir. Não constitui manifestação jurídica sobre culpa, -inocência ou qualquer qualificação processual das pessoas mencionadas. +Este material está **sob sigilo nos autos originais**; o que está aqui é uma organização não oficial +de conteúdo público do processo, para fins de apuração jornalística e pesquisa. Nomes, datas e +descrições refletem o conteúdo dos autos tal como disponibilizado, com os erros de extração +automática (OCR, IA, digitação no material de origem) que isso pode carregar. Nada aqui constitui +manifestação jurídica sobre culpa, inocência ou qualquer qualificação processual das pessoas +mencionadas. diff --git a/timeline-screenshot.png b/timeline-screenshot.png new file mode 100644 index 0000000..b30d2cc Binary files /dev/null and b/timeline-screenshot.png differ