法律文档 OCR 文本提取

作者:鹿Sir法律合规v1

用针对法律语言优化的 OCR 流水线,把扫描版 PDF 法律文书(判决书、起诉状、裁定书等)转换为高精度可编辑文本,支持低质量扫描、多栏排版、表格与法律术语修正,输出带置信度评分与结构化章节的 JSON 结果。当用户需要识别扫描版法律文书、从图片版 PDF 提取文字、批量数字化案卷材料时触发。触发词:法律 OCR、扫描件识别、PDF 文字提取、文书数字化。

下载量
353
点赞
87
价格
免费

技能文档

---
name: diegosouzapw-legal-ocr
title: 法律文档 OCR 文本提取
category: 法律合规
description: 用针对法律语言优化的 OCR 流水线,把扫描版 PDF 法律文书(判决书、起诉状、裁定书等)转换为高精度可编辑文本,支持低质量扫描、多栏排版、表格与法律术语修正,输出带置信度评分与结构化章节的 JSON 结果。当用户需要识别扫描版法律文书、从图片版 PDF 提取文字、批量数字化案卷材料时触发。触发词:法律 OCR、扫描件识别、PDF 文字提取、文书数字化。
---

# 法律文档 OCR 文本提取

## 概述

本技能使用针对法律语言优化的 OCR(光学字符识别)流水线,从扫描版 PDF 法律文书中提取文本。

**主要特性:**

- **高精度**:干净文档 95%+,低质量扫描件 85-90%
- **面向法律语言优化**:内置 200+ 法律术语专用词典(默认巴西葡萄牙语法律术语,可替换为其他语言词典)
- **智能预处理**:倾斜校正、去噪、对比度增强
- **多引擎**:PaddleOCR(主)+ EasyOCR(备用)
- **结构保留**:自动识别章节(案情汇报、论证理由、裁判主文等)
- **质量校验**:置信度评分与错误检测

## 适用场景

- 把扫描版司法文书 PDF 转换为可编辑文本
- 从数字化判决书、裁定书、起诉状中提取内容
- 处理老旧或低质量扫描件
- 为法律分析系统(RAG)准备历史文档
- 从纸质卷宗的数字化件构建判例库

**不适用:**

- 原生数字 PDF(直接用文本提取工具即可)
- 手写文档(精度有限)
- 分辨率 < 200 DPI 的图片(效果差)

## 工作原理

### 处理流水线

```
扫描版 PDF
    ↓
[1] PDF → 图片转换(PyMuPDF,300 DPI)
    ↓
[2] 预处理
    • 灰度化
    • 倾斜校正(Hough Transform)
    • 去噪(Median Blur)
    • 对比度增强(CLAHE)
    • 自适应二值化
    ↓
[3] OCR 引擎(PaddleOCR)
    • 文本检测
    • 字符识别
    • 置信度评分
    ↓
[4] 置信度 < 30% 时降级到备用引擎(EasyOCR)
    ↓
[5] 后处理
    • 法律术语词典校正
    • 变音符号修正
    • 文档结构识别
    ↓
[6] 质量校验
    • 置信度评分
    • 易混字符检测(O/0、l/1 等)
    • 标记需人工复核的页面
    ↓
结构化文本(JSON)
```

### 技术组件

| 组件 | 库 | 作用 |
|------------|-----------|---------|
| PDF → 图片 | PyMuPDF (fitz) | 快速转换(比 pdf2image 快约 3.3 倍) |
| 预处理 | OpenCV | 图像质量增强 |
| OCR 主引擎 | PaddleOCR | 葡语场景准确率 95%+ |
| OCR 备用引擎 | EasyOCR | 主引擎失败时的降级方案 |
| 后处理 | 自研 + Transformers | 法律术语校正 |

## 功能

### 1. 高级预处理

- **倾斜校正**:检测并纠正扫描歪斜的文档
- **去噪**:清除扫描伪影
- **CLAHE**:自适应对比度增强(对老旧文档至关重要)
- **二值化**:转换为面向 OCR 优化的黑白图

### 2. 法律术语词典

- 预置 200+ 法律术语(默认巴西葡萄牙语,可替换词典)
- 自动纠正常见错误(如 "açao" → "ação"、"decisao" → "decisão")
- 相似术语模糊匹配(相似度 85%+)
- 领域覆盖:民事、刑事、劳动、税务

### 3. 结构识别

自动识别法律文书的典型章节:

- **页眉**:法院、案号
- **前言**:当事人、法官
- **案情汇报**:事实概要
- **论证理由**:法律论证
- **裁判主文**:最终裁决
- **签署区**:签名区块

### 4. 复杂版式支持

- 多栏排版
- 表格(结构化提取)
- 页眉页脚
- 脚注

### 5. 质量校验

- 置信度评分(0-100)
- O/0、l/1、S/5 易混字符检测
- 必备要素核验(法官、法院、日期等)
- 置信度 < 70% 时自动标记人工复核

## 技能工作流

### 步骤1:环境准备

前置要求:Python 3.8+,(可选)带 CUDA 的 NVIDIA GPU 用于加速。

```bash
# 安装依赖
pip install -r requirements.txt

# 下载 PaddleOCR 识别模型
python -c "from paddleocr import PaddleOCR; PaddleOCR(lang='pt')"
```

### 步骤2:提取单个文档

```bash
# 从单个 PDF 提取文本
python scripts/pipeline_ocr.py sentenca_escaneada.pdf
```

带选项执行:

```bash
# 高质量 + GPU + 自定义输出
python scripts/pipeline_ocr.py \
  --input documento.pdf \
  --output resultado.json \
  --quality high \
  --use-gpu \
  --dpi 400
```

### 步骤3:批量处理

```bash
# 处理多个 PDF
python scripts/pipeline_ocr.py \
  --input-dir ./processos_escaneados/ \
  --output-dir ./textos_extraidos/ \
  --batch-size 32
```

### 步骤4:核对质量结论

检查输出 JSON 中的 `quality_summary`:平均置信度、问题总数、需复核页数;置信度 < 70% 的页面安排人工复核。

## 输出格式

结果为结构化 JSON 文件:

```json
{
  "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"
  }
}
```

## 配置

### 默认配置(干净文档)

```python
{
    'dpi': 300,
    'quality': 'standard',
    'confidence_threshold': 0.4,
    'use_gpu': True,
    'batch_size': 32
}
```

### 低质量文档配置

```python
{
    'dpi': 400,
    'quality': 'high',
    'confidence_threshold': 0.2,
    'preprocessing': {
        'clahe_clip_limit': 4.0,
        'denoise_strength': 7,
        'binarization': 'adaptive'
    }
}
```

## 性能参考

| 配置 | 吞吐量 | 准确率 | 要求 |
|-------------|-----------|----------|------------|
| GPU + Batch 32 | 800 页/小时 | 95%+ | 8GB 显存 |
| GPU + Batch 16 | 600 页/小时 | 95%+ | 6GB 显存 |
| CPU | 300 页/小时 | 94% | 4GB 内存 |

基础设施全部开源,无 API 调用成本。

## 局限性

- 手写文档:准确率 < 60%(不推荐)
- 分辨率 < 200 DPI 的图片:效果差
- 年代久远/破损严重的文档:可能需要人工调整
- 复杂表格:结构化提取能力有限
- 语言:仅针对巴西葡萄牙语优化

## 与下游系统集成

提取结果为标准 JSON,可直接写入向量数据库,用于法律文书检索与分析:

```bash
# 批量提取后,把质量达标(overall_quality 为 good/excellent)的
# full_text 字段连同 metadata 一并写入向量库即可
python scripts/pipeline_ocr.py --input-dir ./扫描件/ --output-dir ./提取结果/
```

使用说明

# 法律文档 OCR 文本提取

用针对法律语言优化的 OCR 流水线,把扫描版 PDF 法律文书转为高精度可编辑文本,输出带置信度评分与章节结构的 JSON 结果。

## 使用

```bash
# 单个文档提取
python pipeline_ocr.py sentenca_escaneada.pdf

# 批量处理整个卷宗目录
python pipeline_ocr.py --input-dir ./扫描件/ --output-dir ./提取结果/ --batch-size 32
```

输出 JSON 包含逐页文本与置信度、识别引擎来源、文档章节结构(页眉/案情/论证/主文)与整体质量结论;置信度低于 70% 的页面自动标记人工复核。

## 工作原理

1. PyMuPDF 转 300 DPI 图片,OpenCV 预处理(倾斜校正、去噪、CLAHE、二值化)
2. PaddleOCR 主引擎识别,置信度不足自动降级 EasyOCR
3. 法律术语词典校正 + 章节结构识别 + 质量校验,达标结果可直接写入向量库做检索分析

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手

法律文档 OCR 文本提取 - 免费 | 技能派