← 返回
未分类

OCR校核

将PDF扫描件通过OCR提取为文本后,系统性校核文本完整性与准确性的专业工具。 适用于标准规范、法律法规、技术文档等需要高精度文本还原的场景。 触发条件:用户完成PDF转OCR文本后需要校核质量、发现文本缺失或错误、需要确保OCR结果与原文一致。
将PDF扫描件通过OCR提取为文本后,系统性校核文本完整性与准确性的专业工具。适用于标准规范、法律法规、技术文档等需要高精度文本还原的场景。触发条件:用户完成PDF转OCR文本后需要校核质量、发现文本缺失或错误、需要确保OCR结果与原文一致。
AI探子队长
未分类 community v1.0.0 1 版本 92857.1 Key: 无需
★ 0
Stars
📥 13
下载
💾 0
安装
1
版本
#latest

概述

OCR校核

概述

本Skill基于《建设工程工程量清单计价标准》GB/T 50500-2024 OCR校核的实战经验提炼而成,提供一套系统化、可复用的OCR文本质量校核方法论。

核心痛点:

  • OCR识别存在截断、漏行、错字、格式错乱等问题
  • 人工逐页核对效率低、易遗漏
  • 缺乏系统性的检查流程和工具

本Skill解决:

  • 建立条款编号连续性检查机制
  • 提供逐页全文比对方法
  • 设计自动化检查脚本
  • 形成标准化修复流程

校核执行流程(必须全部执行,相互补位)

> 重要: 调用本Skill时,必须按以下顺序执行全部四阶段检查方法,各方法相互补位,不可选择跳过。

>

> 补位逻辑: 前序阶段快速定位问题 → 后序阶段深度核查确认;前序阶段遗漏的问题,后序阶段补充发现。四阶段全部执行完毕方可视为检查完成。

第一阶段:自动扫描检查(快速定位)

目的: 通过自动化脚本快速扫描全部章节,定位明显的条款缺失和编号跳变。

执行步骤:

  1. 建立页码映射
    • 读取PDF目录页,建立"章节-页码"映射表
    • 记录:章节号、章节名称、起始页码、结束页码
  1. 提取条款编号
    • 使用正则表达式 r'(\d+\.\d+\.\d+)' 提取所有条款编号
    • 按章节分组,检查编号连续性
  1. 检查编号连续性
    • 期望:条款编号应连续递增(如 3.1.1, 3.1.2, 3.1.3...)
    • 异常:出现跳号则表明存在缺失
  1. 输出扫描结果
    • 总条款数、缺失条款数、缺失位置
    • 标记问题章节供第二阶段重点核查

示例输出:

第3章 基本规定
- 条款范围: 3.1.1 ~ 3.8.4
- 总条款数: 47
- 缺失条款: 3.3.7, 3.3.8, 3.5.3-3.5.9
- 状态: ❌ 存在缺失,需进入第二阶段核查

> 本阶段发现的问题 → 第二阶段逐页核对确认具体内容;本阶段未发现问题 → 第二阶段仍须逐页核查(可能遗漏非编号类问题)。


第二阶段:逐页全文比对(深度核查)

目的: 对第一阶段标记的问题章节及相邻章节进行逐页人工比对,核查内容完整性、截断、错位、跨引用、版本一致性等问题。

执行步骤:

  1. 按页码顺序读取PDF
    • 逐页读取PDF图片(page_1.jpg, page_2.jpg...)
    • 记录每页包含的条款编号
  1. 与OCR文本逐条对比
    • 定位OCR文本中对应章节
    • 逐条款核对内容一致性
  1. 标记差异点
    • 缺失条款:PDF有但OCR文本无
    • 截断内容:条款未完整提取
    • 内容错误:条款内容不匹配
    • 编号错位:条款编号与内容不对应
    • 跨引用错误:引用的附录/章节不存在或内容不符(同步执行D5)
    • 版本混用:混入了其他版本的内容(同步执行D6)
  1. 生成差异报告
    • 页码、条款号、问题类型、建议修复

> 本阶段验证第一阶段发现的缺失是否真实存在,同时发现截断、错位、跨引用、版本混用等第一阶段无法检测的问题。


第三阶段:自动化脚本检查(全面兜底)

目的: 运行自动化脚本对全部章节进行系统性检查,作为前两阶段的人工核查兜底,确保无遗漏。

执行步骤:

  1. 运行检查脚本

```python

import re

def extract_clause_numbers(text):

pattern = r'(\d+\.\d+\.\d+)'

return set(re.findall(pattern, text))

def find_gaps(clauses):

gaps = []

for i in range(len(clauses) - 1):

current = [int(n) for n in clauses[i].split('.')]

next_clause = [int(n) for n in clauses[i + 1].split('.')]

if current[0] == next_clause[0] and current[1] == next_clause[1]:

if next_clause[2] - current[2] > 1:

for missing in range(current[2] + 1, next_clause[2]):

gaps.append(f"{current[0]}.{current[1]}.{missing}")

return gaps

```

  1. 遍历所有章节
    • 自动检测缺失条款
    • 输出检查报告
  1. 与前几阶段结果交叉验证
    • 确认已发现问题的一致性
    • 发现前序阶段遗漏的新问题

> 本阶段验证第一、二阶段修复后是否引入新问题,发现人工核对时遗漏的隐性跳号,作为最终打包前的强制性质量关卡。


第四阶段:抽样验证(质量确认)

目的: 对关键条款进行分层抽样复核,确保核心内容准确无误。

抽样规则:

  • 必抽:所有数学公式、核心定义、金额计算条款
  • 随机抽:每章至少抽取2-3条条款核对原文
  • 重点抽:第一、二阶段发现问题的章节额外抽样
  • 分层抽:每个章节/附录至少抽检1-2个项目,重点覆盖新增/修复内容、长文本、含数字符号的项目

验证内容:

  • 条款编号与内容是否匹配
  • 专业术语是否准确
  • 数字、金额、比例是否正确
  • 公式是否完整
  • 去除格式标记后逐字符对比,按差异分类处理(见D4差异分类表)

> 本阶段验证修复后的条款质量,发现前序阶段未关注的细节错误,作为最终交付前的质量确认。


检查要点清单(全阶段执行)

1. 条款编号连续性(最高优先级)

检查方法:

  • 提取所有 X.Y.Z 格式的条款编号
  • 按章节分组排序
  • 检查是否连续递增

常见问题:

  • 跳号:3.1.1, 3.1.2, 3.1.4(缺失3.1.3)
  • 整节缺失:3.5节完全缺失
  • 子条款缺失:3.5.1, 3.5.2, 3.5.4(缺失3.5.3)

2. 内容截断检查(高优先级)

检查方法:

  • 查看条款末尾是否以"的"、"应"、"按"等介词结尾
  • 查看条款是否以"下列"、"下列规定"等不完整表述结尾
  • 与PDF原文对比确认

常见截断特征:

❌ "应按总误差金额...分摊到各分部分项工"(明显截断)
❌ "合同履行过程中,因承包人原因引起实际领用数量超过"(不完整)

3. 条款错位检查(高优先级)

检查方法:

  • 核对条款编号与内容是否匹配
  • 检查是否存在"张冠李戴"现象

常见错位:

❌ 5.1.1 内容实际是5.1.2的内容
❌ 6.1.2 内容实际是6.1.3的内容

4. OCR识别错误(中优先级)

常见问题:

  • 数字错误:"1"识别为"l"或"I"
  • 标点错误:全角/半角混用
  • 术语错误:"暂列金额"识别为"暂列金颔"
  • 格式错误:条款编号与内容之间缺少空格

5. 公式完整性(高优先级)

检查方法:

  • 定位所有数学公式
  • 检查公式是否完整(左右括号匹配、运算符完整)
  • 核对公式变量定义

示例:

✅ ΔP = P₀ × [A + (B₁ × Fv1/F01 + ... + Bₙ × Fvn/F0n) - 1]
❌ ΔP = P₀ × [A + (B₁ × Fv1/F01 + ...(截断)

6. 表格索引完整性(中优先级)

检查方法:

  • 核对表格编号连续性
  • 检查表格名称与PDF是否一致
  • 验证页码标注准确性

六维校核模型(补充维度)

> 以下维度作为四阶段流程的补充检查项,在对应阶段中执行。D1编号连续性已在"检查要点清单-1"中详述,此处不再重复。

D2 内容完整性检查

目的: 检查章节、表格、条款是否完整无遗漏

检查方法:

  1. 结构完整性:对照原文件目录,检查所有章节是否都有对应内容
  2. 表格完整性:检查续表是否完整(前表末项+续表首项应衔接)
  3. 条款完整性:检查"其他规定"类条款是否全部提取

关键检查点:

  • 文件头部声明的页码范围是否与实际内容匹配
  • 续表前后是否衔接(前表最后一项编码+1 = 续表第一项编码)
  • 跨页表格是否被截断

执行阶段: 第二阶段逐页比对时同步执行

D3 页码映射检查

目的: 确保PDF页码注释与实际内容一致

检查方法:

  1. 提取所有 或类似页码标记
  2. 检查页码是否单调递增(允许同页重复,不允许回跳)
  3. 抽样验证:读取标注页码对应的PDF页面,确认内容匹配
  4. 检查文件头部页码范围与实际标注的一致性

常见问题:

  • 复制粘贴导致页码回跳(如从第41页跳到第34页)
  • 新增内容后未更新文件头部的页码范围
  • 双页码体系混淆(文件页码 vs PDF内部页码)

执行阶段: 第一阶段建立映射时 + 第三阶段脚本检查时

D4 字符准确性检查(OCR核心)

目的: 逐字符验证OCR识别准确性

检查方法:

  1. 分层抽样:每个章节/附录至少抽检1-2个项目
  2. 重点覆盖
    • 新增/修复过的内容
    • 长文本项目(计算规则、工作内容)
    • 包含数字、符号、括号的项目
    • 版本差异区域
  3. 对比流程
    • 读取PDF原图 → 提取文本
    • 读取技能文件 → 提取对应内容
    • 去除格式标记(|,
      , **等)后逐字符对比
    • 标记差异并分类

差异分类:

类型严重程度处理方式
------------------------
汉字/数字/术语错误🔴 高必须修复
半角→全角标点规范化🟡 低可接受(中文排版规范)
编号后空格差异🟢 无格式偏好,忽略
换行/分段差异🟢 无格式偏好,忽略

执行阶段: 第二阶段逐页比对 + 第四阶段抽样验证

D5 跨引用一致性检查

目的: 验证文件间的交叉引用是否正确

检查方法:

  1. 提取所有"应按...附录...列项"类引用
  2. 验证被引用的附录/章节是否存在于对应文件中
  3. 验证引用内容的准确性(如M.8.14引用J.1.1的"玻璃采光顶")

执行阶段: 第二阶段逐页比对时同步执行

D6 版本一致性检查

目的: 确保未混用不同版本的内容

检查方法:

  1. 识别文档版本(如GB/T 50854-2024替代2013版)
  2. 检查新增/删除/修改的项目
  3. 验证版本差异区域是否已更新

示例(2024 vs 2013):

2024新增:010901004 玻璃采光顶、010901005 金属板幕墙顶
2024删除:010901002 型材屋面(改为010901002 阳光板屋面)

执行阶段: 第二阶段逐页比对时同步执行


修复流程

修复优先级

优先级问题类型说明对应差异分类
-------------------------------------
P0-紧急条款缺失影响内容完整性,必须立即修复
P1-高内容截断影响条款理解,需尽快修复
P2-中条款错位可能导致误解,需修复
P3-低OCR错字不影响理解,可批量修复🔴高→必须修复;🟡低+🟢无→可批量处理或忽略

修复步骤

  1. 定位问题
    • 确定缺失条款的PDF页码
    • 读取PDF图片获取准确内容
  1. 补充内容
    • 使用SearchReplace工具添加缺失条款
    • 确保条款编号、内容、格式正确
  1. 验证修复
    • 重新运行检查脚本
    • 确认条款编号连续
    • 抽样核对内容准确性
  1. 迭代检查
    • 修复后再次全文检查
    • 确保无新问题引入

工具与脚本

核心检查函数

import re

def extract_clause_numbers(text):
    """提取条款编号并按数值排序"""
    pattern = r'(\d+\.\d+\.\d+)'
    return sorted(set(re.findall(pattern, text)), 
                  key=lambda x: [int(n) for n in x.split('.')])

def find_gaps(clauses):
    """找出同节内缺失的条款编号"""
    gaps = []
    for i in range(len(clauses) - 1):
        current = [int(n) for n in clauses[i].split('.')]
        next_c = [int(n) for n in clauses[i + 1].split('.')]
        if (current[0] == next_c[0] and 
            current[1] == next_c[1] and 
            next_c[2] - current[2] > 1):
            for missing in range(current[2] + 1, next_c[2]):
                gaps.append(f"{current[0]}.{current[1]}.{missing}")
    return gaps

完整调用示例

import os

# 配置
SKILL_DIR = "path/to/skill/files"

# 章节映射:章节号 -> 对应文件
CHAPTER_FILES = {
    "3": "03-基本规定.md",
    "5": "05-价款调整.md",
    # ... 更多章节
}

def check_chapter(chapter_num):
    """检查指定章节的条款编号连续性"""
    skill_file = CHAPTER_FILES.get(chapter_num)
    if not skill_file:
        return {"error": f"章节 {chapter_num} 未配置"}
    
    skill_path = os.path.join(SKILL_DIR, skill_file)
    with open(skill_path, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 提取该章节的所有条款编号
    all_clauses = extract_clause_numbers(content)
    chapter_clauses = [c for c in all_clauses if c.startswith(chapter_num + ".")]
    
    # 检查缺失
    gaps = find_gaps(chapter_clauses)
    
    return {
        "chapter": chapter_num,
        "total": len(chapter_clauses),
        "first": chapter_clauses[0] if chapter_clauses else None,
        "last": chapter_clauses[-1] if chapter_clauses else None,
        "gaps": gaps,
        "status": "✅ 完整" if not gaps else f"❌ 缺失{len(gaps)}条"
    }

# 执行检查
if __name__ == "__main__":
    for ch in sorted(CHAPTER_FILES.keys(), key=int):
        result = check_chapter(ch)
        print(f"\n第{result['chapter']}章: {result['status']}")
        if result['gaps']:
            print(f"  缺失条款: {result['gaps']}")

实战经验与最佳实践

检查策略

四阶段必须全部执行,建议时间分配:

  • 第一阶段自动扫描:快速定位明显问题(约5分钟)
  • 第二阶段逐页比对:深度核查内容准确性(约30分钟)
  • 第三阶段脚本兜底:全面验证无遗漏(约5分钟)
  • 第四阶段抽样验证:确认关键条款质量(约10分钟)

常见陷阱

  • 页面底部截断:OCR容易遗漏页面底部的条款
  • 跨页条款:一个条款分布在两页,容易只提取一半
  • 子条款嵌套:如 8.11.1 下有 (1)(2)(3),容易遗漏
  • 公式识别:数学公式是OCR的难点,需重点检查

效率技巧

  • 使用多子代理并行检查不同章节
  • 编写自动化脚本批量提取编码、统计数量
  • 建立"检查-修复-验证"的迭代循环
  • 每轮采用不同验证角度(从PDF出发 vs 从技能文件出发)

质量保证

  • 四阶段全部执行完毕方可视为检查完成
  • 检查脚本运行3次以上,确保0缺失
  • 关键条款(如公式、核心定义)必须人工复核
  • 每轮修复后更新版本号,记录变更
  • 最终打包前再次运行完整检查
  • 至少3轮检查(初检→修复→复检→终检),关键区域逐步扩大抽样比例

输出规范

检查报告格式

# OCR校核报告

## 检查概览
- 文档名称:XXX
- 总章节数:X章
- 总条款数:XXX条
- 缺失条款:X条
- 状态:✅ 通过 / ❌ 未通过

## 四阶段检查结果

### 第一阶段:自动扫描
- 扫描章节:X章
- 发现问题:X个
- 问题章节:第X章、第X章

### 第二阶段:逐页比对
- 比对页数:X页
- 确认问题:X个
- 新发现问题:X个

### 第三阶段:脚本兜底
- 运行次数:X次
- 发现问题:X个
- 与前几阶段交叉验证:一致/不一致

### 第四阶段:抽样验证
- 抽样数量:X条
- 发现问题:X个
- 关键条款状态:✅ 通过 / ❌ 未通过

## 六维校核结果(按需填写)

### D1-D2 编码与内容完整性
| 章节 | 条款范围 | 数量 | 缺失 | 状态 |
|------|---------|------|------|------|

### D4 字符准确性
| 抽检项 | 字符数 | 差异数 | 准确率 | 差异类型 |
|--------|-------|--------|--------|---------|

> D3页码映射、D5跨引用、D6版本一致性按需补充表格

## 修复记录
| 序号 | 章节 | 条款 | 问题类型 | 修复内容 | 验证状态 |
|------|------|------|----------|----------|----------|
| 1 | 3 | 3.5.3 | 缺失 | 补充PDF第17页内容 | ✅ 已验证 |

## 结论
[通过/未通过说明]

触发条件

当用户出现以下情况时,自动调用本Skill:

  1. 校核OCR结果/质量检查:"校核OCR结果"、"OCR质量检查"、"文本完整性验证"
  2. 检查PDF转文本准确性:"检查PDF转文本的准确性"、"核对扫描件与文本"
  3. 发现OCR有缺失/错误:"发现OCR有缺失/错误"
  4. 确保OCR与原文一致:"确保OCR与原文一致"
  5. 检查条款编号连续性:"检查条款编号是否连续"

版本记录

版本日期变更内容
---------------------
v1.0.0-v1.1.02026-06-09初始版本,四阶段检查流程,基于GB/T 50500-2024 OCR校核实战经验提炼;修改执行逻辑为必须全部执行、相互补位
v1.2.02026-06-09补充六维校核模型(D1-D6),增加最佳实践章节
v1.3.02026-06-09精炼优化:删除D1重复内容;合并实战经验与最佳实践;精简补位关系说明;精简报告模板空表格;合并触发条件;精简脚本保留核心函数
v1.3.12026-06-09逻辑优化:增强第二阶段跨引用/版本检查的可见性;增加工具脚本完整调用示例;明确修复优先级P3与D4差异分类的对应关系

© 全网 AI探子队长

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-06-09 14:32 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

广州可研编制助手

user_b818ef37
辅助编制广州市本级政府投资项目可行性研究报告,提供标准化章节框架、编制要求指导、规范化样表输出和内容合规性校验。适用于政府投资项目编制单位、项目评审人员和投资咨询机构。
★ 0 📥 66

广州-房建估算-2025

user_b818ef37
广州市本级政府投资项目房屋建筑工程投资估算编制 Skill(2025版)
★ 0 📥 89

梅大侠博士论文蒸馏

user_b818ef37
梅大侠的结构化分析思维。6个心智模型+文字声纹表达规则,用于复杂系统的分析与治理。 仅适用于目标可定义、因素可量化、有干预抓手的问题,否则拒绝。
★ 0 📥 62