docs: add pessoas.md, refresh readme for web/ layout, ignore originals/

This commit is contained in:
2026-09-13 13:04:01 +02:00
parent 07fcf1164b
commit e9d5ed773b
3 changed files with 386 additions and 12 deletions
+30 -12
View File
@@ -25,12 +25,22 @@ Este projeto troca aquele gráfico por uma timeline de verdade:
## Estrutura do repositório
```
index.html página estática (self-contained: HTML + CSS + JS, sem build step)
docs.json um registro por documento (id, instituição, data, texto completo, tipo, pessoas)
people.json catálogo de pessoas identificadas: {key, count, role}
web/index.html página estática (self-contained: HTML + CSS + JS, sem build step)
web/docs.json um registro por documento (id, instituição, data, texto completo, tipo, pessoas)
web/people.json catálogo de pessoas identificadas: {key, count, role}
PESSOAS.md o mesmo catálogo, em tabelas markdown agrupadas por papel processual
pipeline/ scripts e dados intermediários da extração (referência, não é preciso rodar nada)
parte1/, parte2/ resumos dos autos vinculados a Pet16704 (um .md por processo + um RESUMO.md geral)
```
Para rodar localmente: `cd web && python3 -m http.server 8000` e abrir `http://localhost:8000`
(precisa de um servidor por causa do `fetch()` de `docs.json`/`people.json` — abrir o arquivo direto
via `file://` não funciona nos navegadores).
Na linha do tempo, clicar (ou tocar, no celular) em um ponto abre ao lado o resumo completo daquele
documento — data, instituição, tipo, texto integral, pessoas mencionadas e arquivo-fonte. Passar o
mouse sobre um ponto, sem clicar, mostra só uma prévia rápida (tooltip).
## Como os dados foram montados
1. **`docs.json`** — cruzamento de duas fontes do dump original (`gitgraph.md` para a instituição
@@ -40,8 +50,8 @@ pipeline/ scripts e dados intermediários da extração (referência, nã
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.
3. **Pessoas mencionadas (`people.json`)** — reconhecimento de entidades feito **localmente, sem
usar o Claude para o texto em si**, com o modelo
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`.
@@ -54,19 +64,27 @@ pipeline/ scripts e dados intermediários da extração (referência, nã
- junção de variações do mesmo nome por contenção de tokens (ex. "Daniel Vorcaro" →
"Daniel Bueno Vorcaro").
Resultado: **292 pessoas distintas**. O papel processual de cada uma (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 página, não
escondido.
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. **Autos vinculados (`parte1/`, `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 `RESUMO.md` consolidado em cada
pasta. Cobrem partes/investigados, advogados, autoridades e linha do tempo resumida de cada
procedimento — contexto complementar à timeline principal, não gerado pelo mesmo pipeline
automático de NER.
## Projeto relacionado
[**vorcaros**](https://rafapolo.github.io/vorcaros/) — visualização em grafo da rede societária