本Skill基于《建设工程工程量清单计价标准》GB/T 50500-2024 OCR校核的实战经验提炼而成,提供一套系统化、可复用的OCR文本质量校核方法论。
核心痛点:
本Skill解决:
> 重要: 调用本Skill时,必须按以下顺序执行全部四阶段检查方法,各方法相互补位,不可选择跳过。
>
> 补位逻辑: 前序阶段快速定位问题 → 后序阶段深度核查确认;前序阶段遗漏的问题,后序阶段补充发现。四阶段全部执行完毕方可视为检查完成。
目的: 通过自动化脚本快速扫描全部章节,定位明显的条款缺失和编号跳变。
执行步骤:
r'(\d+\.\d+\.\d+)' 提取所有条款编号示例输出:
第3章 基本规定
- 条款范围: 3.1.1 ~ 3.8.4
- 总条款数: 47
- 缺失条款: 3.3.7, 3.3.8, 3.5.3-3.5.9
- 状态: ❌ 存在缺失,需进入第二阶段核查
> 本阶段发现的问题 → 第二阶段逐页核对确认具体内容;本阶段未发现问题 → 第二阶段仍须逐页核查(可能遗漏非编号类问题)。
目的: 对第一阶段标记的问题章节及相邻章节进行逐页人工比对,核查内容完整性、截断、错位、跨引用、版本一致性等问题。
执行步骤:
> 本阶段验证第一阶段发现的缺失是否真实存在,同时发现截断、错位、跨引用、版本混用等第一阶段无法检测的问题。
目的: 运行自动化脚本对全部章节进行系统性检查,作为前两阶段的人工核查兜底,确保无遗漏。
执行步骤:
```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
```
> 本阶段验证第一、二阶段修复后是否引入新问题,发现人工核对时遗漏的隐性跳号,作为最终打包前的强制性质量关卡。
目的: 对关键条款进行分层抽样复核,确保核心内容准确无误。
抽样规则:
验证内容:
> 本阶段验证修复后的条款质量,发现前序阶段未关注的细节错误,作为最终交付前的质量确认。
检查方法:
X.Y.Z 格式的条款编号常见问题:
检查方法:
常见截断特征:
❌ "应按总误差金额...分摊到各分部分项工"(明显截断)
❌ "合同履行过程中,因承包人原因引起实际领用数量超过"(不完整)
检查方法:
常见错位:
❌ 5.1.1 内容实际是5.1.2的内容
❌ 6.1.2 内容实际是6.1.3的内容
常见问题:
检查方法:
示例:
✅ ΔP = P₀ × [A + (B₁ × Fv1/F01 + ... + Bₙ × Fvn/F0n) - 1]
❌ ΔP = P₀ × [A + (B₁ × Fv1/F01 + ...(截断)
检查方法:
> 以下维度作为四阶段流程的补充检查项,在对应阶段中执行。D1编号连续性已在"检查要点清单-1"中详述,此处不再重复。
目的: 检查章节、表格、条款是否完整无遗漏
检查方法:
关键检查点:
执行阶段: 第二阶段逐页比对时同步执行
目的: 确保PDF页码注释与实际内容一致
检查方法:
或类似页码标记常见问题:
执行阶段: 第一阶段建立映射时 + 第三阶段脚本检查时
目的: 逐字符验证OCR识别准确性
检查方法:
|,
, **等)后逐字符对比差异分类:
| 类型 | 严重程度 | 处理方式 |
|---|---|---|
| ------ | --------- | --------- |
| 汉字/数字/术语错误 | 🔴 高 | 必须修复 |
| 半角→全角标点规范化 | 🟡 低 | 可接受(中文排版规范) |
| 编号后空格差异 | 🟢 无 | 格式偏好,忽略 |
| 换行/分段差异 | 🟢 无 | 格式偏好,忽略 |
执行阶段: 第二阶段逐页比对 + 第四阶段抽样验证
目的: 验证文件间的交叉引用是否正确
检查方法:
执行阶段: 第二阶段逐页比对时同步执行
目的: 确保未混用不同版本的内容
检查方法:
示例(2024 vs 2013):
2024新增:010901004 玻璃采光顶、010901005 金属板幕墙顶
2024删除:010901002 型材屋面(改为010901002 阳光板屋面)
执行阶段: 第二阶段逐页比对时同步执行
| 优先级 | 问题类型 | 说明 | 对应差异分类 |
|---|---|---|---|
| -------- | ---------- | ------ | ------------- |
| P0-紧急 | 条款缺失 | 影响内容完整性,必须立即修复 | — |
| P1-高 | 内容截断 | 影响条款理解,需尽快修复 | — |
| P2-中 | 条款错位 | 可能导致误解,需修复 | — |
| P3-低 | OCR错字 | 不影响理解,可批量修复 | 🔴高→必须修复;🟡低+🟢无→可批量处理或忽略 |
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']}")
四阶段必须全部执行,建议时间分配:
# 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:
| 版本 | 日期 | 变更内容 |
|---|---|---|
| ------ | ------ | --------- |
| v1.0.0-v1.1.0 | 2026-06-09 | 初始版本,四阶段检查流程,基于GB/T 50500-2024 OCR校核实战经验提炼;修改执行逻辑为必须全部执行、相互补位 |
| v1.2.0 | 2026-06-09 | 补充六维校核模型(D1-D6),增加最佳实践章节 |
| v1.3.0 | 2026-06-09 | 精炼优化:删除D1重复内容;合并实战经验与最佳实践;精简补位关系说明;精简报告模板空表格;合并触发条件;精简脚本保留核心函数 |
| v1.3.1 | 2026-06-09 | 逻辑优化:增强第二阶段跨引用/版本检查的可见性;增加工具脚本完整调用示例;明确修复优先级P3与D4差异分类的对应关系 |
© 全网 AI探子队长
共 1 个版本