从建筑工程规范PDF中提取条文,支持文字层提取和纯图片PDF的OCR识别,经过多轮清洗后输出高质量结构化数据。
bash
python scripts/extract_regulation.py <pdf_path> -o <output.json>
支持 --chapters <chapters.json> 自定义章节映射。
支持编号格式: 3.1.2、 3. 1. 2、4级编号 6.1.2.4,自动去除空格。
bash
# 批量:自动检测0条文的JSON,仅OCR这些PDF
python scripts/ocr_batch.py <pdf_dir> <output_dir>
# 单文件
python scripts/ocr_batch.py <pdf_path> -o <output.json>
bash
python scripts/deep_clean.py <output_dir>
一次性完成:
bash
python scripts/clean_json.py <output_dir>
去除 \n 换行符、页眉页脚垃圾(如 www.bzfxw.com、规范名称重复)。每条条文变成一段连续纯文本。
bash
python scripts/fix_tails.py <output_dir>
更彻底地修复:
—83— 等各种变体)图N xxx示意图)bash
python scripts/quality_check.py <output_dir>
输出每个PDF的质量报告:中英文粘连、符号表、末尾章节标题、过长、过短、OCR错误、无中文。
bash
python scripts/sync_to_bitable.py <output.json> \
--app_token <APP_TOKEN> --table_id <TABLE_ID> \
--app_id <APP_ID> --app_secret <APP_SECRET> \
--delete_dupes
重点检查:
quality: ocr_error 的条文(OCR识别不准)json
{
"articles": {
"3.0.1": {"id": "3.0.1", "chapter": "基本规定", "page": 11, "text": "...", "quality": "clean"},
"5.3.2.a": {"id": "5.3.2.a", "chapter": "施工", "page": 45, "text": "(切分后的第一段)", "quality": "clean"},
"5.3.2.b": {"id": "5.3.2.b", "chapter": "施工", "page": 45, "text": "(切分后的第二段)", "quality": "clean"}
},
"report": {"total": N, "clean": N, "ocr_error": N, "by_chapter": {...}, "missing": [...], "warnings": [...]}
}
脚本功能阶段extract_regulation.py核心提取:文字层条文Step 1ocr_batch.pyOCR批处理:纯图片PDFStep 2deep_clean.py深度清洗:符号表/粘连/过长切分Step 3clean_json.py文本清洗:去换行/页眉垃圾Step 4fix_tails.py尾部修复:页码/图号/章节标题Step 5quality_check.py质量检查:输出问题报告Step 6sync_to_bitable.py同步飞书多维表格Step 7
3.1.2、 3. 1. 2、4级编号,自动去除空格.a .b .ctext
pip install PyMuPDF rapidocr-onnxruntime
quality: ocr_error 的条文人审指标数值PDF总数21个成功提取19个(90%)总条文数5,865条干净率96.8%OCR待校验185条(3.2%)
版本日期变更v1.02026-03-28初始版本:文字层提取v2.02026-03-28新增OCR批处理、带空格编号格式、4级编号v3.02026-03-28新增深度清洗Pipeline(5步)、过长切分、符号表过滤、尾部修复、质量检查