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 completosexamples.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
Scan to join WeChat group