Legal OCR - Extração de Texto de Documentos Jurídicos
Visão Geral
Esta skill extrai texto de documentos jurídicos escaneados em formato PDF usando técnicas avançadas de OCR (Optical Character Recognition) otimizadas especificamente para a linguagem jurídica brasileira.
Principais características:
- •Alta precisão: 95%+ em documentos limpos, 85-90% em documentos de baixa qualidade
- •Otimizado para português jurídico: Dicionário especializado com 200+ termos jurídicos
- •Pré-processamento inteligente: Correção de inclinação, remoção de ruído, melhoria de contraste
- •Multi-engine: PaddleOCR (primário) + EasyOCR (fallback)
- •Estrutura preservada: Identifica seções (relatório, fundamentação, dispositivo)
- •Validação de qualidade: Score de confiança e detecção de erros
Quando Usar
Use esta skill quando precisar:
- •Converter PDFs escaneados de processos judiciais em texto editável
- •Extrair conteúdo de sentenças, acórdãos, petições digitalizadas
- •Processar documentos antigos ou de baixa qualidade de escaneamento
- •Alimentar sistema de análise jurídica (RAG) com documentos históricos
- •Criar banco de jurisprudência a partir de documentos físicos digitalizados
NÃO use para:
- •PDFs nativos digitais (use ferramentas de extração de texto direto)
- •Documentos manuscritos (acurácia limitada)
- •Imagens com resolução < 200 DPI (resultados ruins)
Como Funciona
Pipeline de Processamento
PDF Scaneado
↓
[1] Conversão PDF → Imagem (PyMuPDF, 300 DPI)
↓
[2] Pré-processamento
• Conversão para escala de cinza
• Correção de inclinação (Hough Transform)
• Remoção de ruído (Median Blur)
• Melhoria de contraste (CLAHE)
• Binarização adaptativa
↓
[3] OCR Engine (PaddleOCR pt-BR)
• Detecção de texto
• Reconhecimento de caracteres
• Score de confiança
↓
[4] Fallback (EasyOCR) se confiança < 30%
↓
[5] Pós-processamento
• Correção com dicionário jurídico
• Correção de acentuação
• Identificação de estrutura do documento
↓
[6] Validação de Qualidade
• Score de confiança
• Detecção de problemas (O/0, l/1, etc.)
• Flag para revisão humana
↓
Texto Estruturado (JSON)
Tecnologias Utilizadas
| Componente | Biblioteca | Função |
|---|---|---|
| PDF → Imagem | PyMuPDF (fitz) | Conversão rápida (3.3x mais rápida que pdf2image) |
| Pré-processamento | OpenCV | Melhoria de qualidade da imagem |
| OCR Primário | PaddleOCR | Melhor acurácia para português (95%+) |
| OCR Fallback | EasyOCR | Alternativa quando PaddleOCR falha |
| Pós-processamento | Custom + Transformers | Correção de termos jurídicos |
Recursos
1. Pré-processamento Avançado
- •Correção de inclinação: Detecta e corrige documentos escaneados tortos
- •Remoção de ruído: Remove artefatos de escaneamento
- •CLAHE: Melhoria de contraste adaptativa (crítico para documentos antigos)
- •Binarização: Converte para preto/branco otimizado para OCR
2. Dicionário Jurídico Brasileiro
- •200+ termos jurídicos pré-cadastrados
- •Correção automática de erros comuns (ex: "açao" → "ação", "decisao" → "decisão")
- •Fuzzy matching para termos similares (85%+ similaridade)
- •Cobertura de áreas: civil, penal, trabalhista, tributário
3. Identificação de Estrutura
Reconhece automaticamente seções típicas de documentos jurídicos:
- •Cabeçalho: Tribunal, número do processo
- •Preâmbulo: Partes, juiz
- •Relatório: Síntese dos fatos
- •Fundamentação: Argumentação jurídica
- •Dispositivo: Decisão final
- •Assinaturas: Bloco de assinaturas
4. Suporte a Layouts Complexos
- •Multi-colunas
- •Tabelas (extração estruturada)
- •Cabeçalhos e rodapés
- •Notas de rodapé
5. Validação de Qualidade
- •Score de confiança (0-100)
- •Detecção de confusão O/0, l/1, S/5
- •Verificação de elementos obrigatórios (juiz, tribunal, data, etc.)
- •Flag automático para revisão humana quando confiança < 70%
Uso Básico
Comando Simples
# Extrair texto de um único PDF python .claude/skills/legal-ocr/pipeline_ocr.py sentenca_escaneada.pdf
Comando com Opções
# Alta qualidade + GPU + output customizado python .claude/skills/legal-ocr/pipeline_ocr.py \ --input documento.pdf \ --output resultado.json \ --quality high \ --use-gpu \ --dpi 400
Batch Processing
# Processar múltiplos PDFs python .claude/skills/legal-ocr/pipeline_ocr.py \ --input-dir ./processos_escaneados/ \ --output-dir ./textos_extraidos/ \ --batch-size 32
Output Format
O resultado é um arquivo JSON estruturado:
{
"filename": "sentenca_123.pdf",
"timestamp": "2025-12-10T21:00:00",
"metadata": {
"total_pages": 15,
"processing_time_seconds": 45.2,
"gpu_used": true,
"primary_engine": "paddleocr",
"fallback_used_pages": [3, 7]
},
"pages": [
{
"page_num": 1,
"text": "SENTENÇA\n\nProcesso nº 0001234-56.2024.8.26.0100...",
"confidence": 0.92,
"source": "paddleocr",
"validation": {
"confidence": 85,
"issues": [],
"requires_review": false
},
"structure": {
"section": "header",
"detected_elements": ["tribunal", "numero_processo", "juiz"]
}
}
],
"full_text": "SENTENÇA\n\nProcesso nº 0001234-56.2024.8.26.0100...",
"document_structure": {
"header": "SENTENÇA\nTribunal de Justiça de São Paulo...",
"relatorio": "Trata-se de ação de...",
"fundamentacao": "É o relatório. Decido.\n\nO pedido merece...",
"dispositivo": "Pelo exposto, JULGO PROCEDENTE..."
},
"quality_summary": {
"avg_confidence": 0.89,
"total_issues": 2,
"pages_requiring_review": 0,
"overall_quality": "good"
}
}
Instalação
Pré-requisitos
- •Python 3.8+
- •(Opcional) GPU NVIDIA com CUDA para acelerar processamento
Instalação Automática
cd .claude/skills/legal-ocr chmod +x setup.sh ./setup.sh
Instalação Manual
cd .claude/skills/legal-ocr pip install -r requirements.txt # Baixar modelos PaddleOCR (português) python -c "from paddleocr import PaddleOCR; PaddleOCR(lang='pt')"
Configuração
Configurações Padrão (documents limpos)
{
'dpi': 300,
'quality': 'standard',
'confidence_threshold': 0.4,
'use_gpu': True,
'batch_size': 32
}
Para Documentos de Baixa Qualidade
{
'dpi': 400,
'quality': 'high',
'confidence_threshold': 0.2,
'preprocessing': {
'clahe_clip_limit': 4.0,
'denoise_strength': 7,
'binarization': 'adaptive'
}
}
Performance
| Configuração | Throughput | Acurácia | Requisitos |
|---|---|---|---|
| GPU + Batch 32 | 800 pág/hora | 95%+ | 8GB VRAM |
| GPU + Batch 16 | 600 pág/hora | 95%+ | 6GB VRAM |
| CPU | 300 pág/hora | 94% | 4GB RAM |
Estimativa de custos: Infraestrutura open-source, custo zero de APIs
Limitações
- •Documentos manuscritos: acurácia < 60% (não recomendado)
- •Imagens < 200 DPI: resultados ruins
- •Documentos muito antigos/deteriorados: podem requerer ajuste manual
- •Tabelas complexas: extração estruturada limitada
- •Idiomas: otimizado apenas para português brasileiro
Suporte
Para questões técnicas, consulte:
- •
reference.md: Detalhes técnicos completos - •
examples.md: Exemplos práticos de uso - •Logs:
.claude/skills/legal-ocr/logs/ocr_processing.log
Integração com SIGEDEC
Esta skill foi desenhada para integrar perfeitamente com o sistema SIGEDEC:
# Exemplo de integração
from pipeline_ocr import LegalDocumentOCRPipeline
# Processar documento para indexação no Qdrant
pipeline = LegalDocumentOCRPipeline(use_gpu=True)
result = pipeline.process_legal_document('acórdão_escaneado.pdf')
# Enviar para vector database
if result['quality_summary']['overall_quality'] in ['good', 'excellent']:
# Indexar no Qdrant
store_in_vectordb(result['full_text'], metadata=result['metadata'])
Próximas Melhorias
- • Suporte a DeepSeek-OCR (10x compressão, 97% acurácia)
- • Modelo de linguagem fine-tuned para jurídico brasileiro
- • OCR de tabelas complexas com estrutura preservada
- • Detecção automática de assinaturas digitais
- • Suporte a documentos multi-idioma (espanhol, inglês)
Versão: 1.0.0 Última atualização: 2025-12-10 Licença: MIT Autor: SIGEDEC Team