Repository navigation
Pacote dikemetria: coleta nacional, avaliação por capítulos e cálculo da condenação - #1
Merged
Merged
Conversation
Fase 0: pacote dikemetria com pyproject, CLI, testes (pytest), ruff e CI. Remove os scripts antigos e o colab.py duplicado; o notebook do Colab passa a chamar o pacote. Fase 1: corrige o pipeline de um documento. O main desempacotava um dict de cinco chaves em duas variáveis; as regex de artigos tinham barras duplicadas e rodavam sobre texto sem números; a limpeza apagava â, ê, ô. Citações, termos e argumentos agora usam o texto bruto; a decisão é dividida em relatório, fundamentação e dispositivo. Fase 2: coleta nacional com proveniência (URL, parâmetros, data, hash) e retomada: DataJud (metadados e movimentos de 91 tribunais), DJEN (texto das decisões) e arquivos locais. Pseudonimização antes de gravar, exclusão de segredo de justiça e marcação de matérias sensíveis. Fase 3: classificação do resultado pelo dispositivo e pelos movimentos da TPU, com amostra para rotulagem manual e medida de acerto. Fase 4: taxas de procedência, acolhimento e provimento com IC de Wilson, tempos até o julgamento, normas citadas e vocabulário por resultado (log-odds com prior de Dirichlet). Sem agregação por magistrado e com supressão de grupos com menos de 10 casos. Fase 5: relatório HTML autocontido (modo claro e escuro, tabelas em cada gráfico), CSVs, metadados e dicionário de dados sob CC BY 4.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FtwcBmVRcMiFTuxjXmrmGc
Avaliação (avaliacao.py): o dispositivo é lido como uma série de
comandos decisórios, cada um com rótulo, força e objeto (ação,
reconvenção, pedido contraposto, embargos de declaração, denunciação,
impugnação, recurso). Os capítulos da ação e do recurso são agregados
por regras fixas: procedente e improcedente juntos = parcialmente
procedente; reconvenção não muda o resultado da ação; comandos fracos
("sentença mantida", "condeno o réu") só valem sem comando forte.
Cobre prescrição e decadência (inclusive quando afastadas), art. 487,
II e III, incisos do art. 485, embargos à execução e à monitória,
mandado de segurança, absolvição penal, formas com pronome oblíquo e o
resultado da ação fixado no acórdão. Registra motivo, confiança, tipo
de decisão e votação.
Cálculo (valores.py): valores do dispositivo por categoria (danos
morais e materiais, restituição, débito, multa, honorários, valor da
causa), honorários em percentual e base, repetição em dobro ou simples,
termos iniciais e taxa dos juros, termos iniciais e índice da correção,
gratuidade.
Consolidação (consolidacao.py): uma decisão por processo e instância,
unindo texto e movimentos, com o texto prevalecendo e a divergência
registrada; decisões só de embargos de declaração ficam fora.
Medidas novas: taxa agregada e média entre tribunais, provimento por
recurso, reforma em segundo grau com resultado final inferido pela
sucumbência, valores de danos morais, parâmetros de cálculo, motivos
de extinção e indicadores de qualidade da classificação.
docs/REGRAS.md descreve todas as regras; tests/dados/dispositivos.csv
traz 85 dispositivos de referência que as testam. O banco ganha a
coluna avaliacao, com migração automática. O CI passa a rodar em todo
push.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FtwcBmVRcMiFTuxjXmrmGc
O dispositivo passa a ser procurado antes de declaração de voto ou voto vencido, e o parágrafo ACORDAM é lido à parte. Se o resultado do recurso no ACORDAM diferir do voto lido (relator vencido), prevalece o ACORDAM. A amostra de validação mostra os dois trechos ao revisor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FtwcBmVRcMiFTuxjXmrmGc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
Transforma os scripts do protótipo no pacote
dikemetria, com linha de comando, testes e CI, e implementa o fluxo completo: coleta nacional, pseudonimização, avaliação do resultado, cálculo e relatório público.Estrutura e pipeline de uma decisão
colab.pyduplicado dão lugar ao pacote compyproject.toml,ruff,pyteste GitHub Actions (Python 3.11 a 3.13). O notebook do Colab passa a só chamar o pacote.maindesempacotava um dict de cinco chaves em duas variáveis; as regex de artigos tinham barras duplicadas e rodavam sobre texto já sem números; e a limpeza apagava â, ê e ô.Coleta nacional (
dikemetria/coleta/)Regras de avaliação e de cálculo
As regras completas estão em
docs/REGRAS.md.avaliacao.py: lê o dispositivo por capítulos, cada um com objeto (ação, reconvenção, pedido contraposto, embargos de declaração, denunciação, impugnação, recurso) e força, e agrega os resultados por regras fixas. Também:valores.py: extrai os valores por categoria, os honorários, a repetição em dobro, os termos iniciais e a taxa dos juros, o índice da correção e a gratuidade.consolidacao.py: forma uma decisão por processo e instância. Texto e movimentos são unidos, o texto prevalece e as divergências são registradas.jurimetria.py:Nenhuma tabela agrega por magistrado, e grupos com menos de 10 casos são suprimidos.
Relatório e validação
dikemetria amostraedikemetria validarmedem a classificação contra rotulagem manual.Testes
tests/dados/dispositivos.csve acórdãos com voto vencido e relator vencido.ruff check,ruff format --checkepytestpassam no CI.dikemetria sondar --fonte datajude--fonte djen.🤖 Generated with Claude Code
https://claude.ai/code/session_01FtwcBmVRcMiFTuxjXmrmGc
Generated by Claude Code