企事业单位文书档案鉴定服务全流程零门槛实操技术指南
一、准备阶段:搭建免费轻量级鉴定基础环境
无需采购昂贵的商业软件,使用开源免费工具即可完成90%以上的常规文书档案鉴定。
1.1 安装免费文档识别与结构化工具
- 下载地址:https://github.com/PaddlePaddle/PaddleOCR/releases/tag/v2.7.0
- Windows/macOS通用安装步骤:
- 下载对应系统的预编译包:Windows选「PaddleOCR-2.7.0-win32-cpu」,macOS选「PaddleOCR-2.7.0-macos-cpu」
- 解压压缩包到D盘或桌面根目录(避免中文路径)
- 双击预编译包内的「start.bat」(Windows)或「start.sh」(macOS,需先右键→打开允许执行)
- 等待自动安装依赖库,出现「Service is running on http://127.0.0.1:8866」说明安装成功
1.2 下载并配置文书档案鉴定规则库

使用国家档案局《机关文件材料归档范围和文书档案保管期限规定》为核心规则,整理成可直接复用的JSON库。
- 规则库复制内容(新建记事本粘贴,保存为「identification_rules.json」,UTF-8无BOM格式): ```json { "保管期限等级": ["永久", "定期30年", "定期10年"], "分类判断规则": [ { "关键词组": ["重要会议", "决议", "决定", "纪要", "领导人任免", "干部职工名册", "永久保存"], "判定等级": "永久", "置信度阈值": 0.6 }, { "关键词组": ["一般会议", "通知", "公告", "请示批复非重要", "财务报表中期", "定期30"], "判定等级": "定期30年", "置信度阈值": 0.5 }, { "关键词组": ["简报", "临时通知", "往来信函非业务", "财务凭证附件非核心", "定期10"], "判定等级": "定期10年", "置信度阈值": 0.4 } ] } ```
- 将规则库放在预编译包解压后的「tools」文件夹内
二、数字化环节:批量识别非结构化文书档案
无论是扫描件、PDF还是Word/Excel原始件,都能通过PaddleOCR工具批量转为可编辑的结构化文本。
2.1 整理待鉴定档案文件夹
- 在桌面新建「待鉴定_文书档案」文件夹,所有待处理文件(支持JPG、PNG、PDF、DOCX、XLSX)直接放该文件夹根目录,不要嵌套子文件夹
2.2 调用预编译工具批量处理
- 再次打开预编译包内的「start.bat」或「start.sh」保持服务运行
- 在解压目录下新建「batch_identification.py」记事本文件,粘贴以下代码后保存(同样UTF-8无BOM): ```python import requests import os import json from docx import Document from openpyxl import load_workbook 1. 加载鉴定规则库 with open('tools/identification_rules.json', 'r', encoding='utf-8') as f: rules = json.load(f) 2. 配置PaddleOCR接口 OCR_URL = 'http://127.0.0.1:8866/predict/ocr_system' 3. 定义单文件文本提取函数 def extract_text(file_path): ext = os.path.splitext(file_path)[1].lower() text = "" try: if ext in ['.jpg', '.jpeg', '.png', '.bmp']: with open(file_path, 'rb') as f: img_data = f.read() res = requests.post(OCR_URL, files={'image': img_data}).json() for line in res['results'][0]: text += line['text'] + " " elif ext == '.pdf': with open(file_path, 'rb') as f: pdf_data = f.read() res = requests.post(OCR_URL, files={'image': pdf_data}).json() for page in res['results']: for line in page: text += line['text'] + " " elif ext == '.docx': doc = Document(file_path) for para in doc.paragraphs: text += para.text + " " elif ext == '.xlsx': wb = load_workbook(file_path, read_only=True) for sheet in wb: for row in sheet.iter_rows(values_only=True): row_text = " ".join([str(cell) if cell else "" for cell in row]) text += row_text + " " except Exception as e: print(f"文件{file_path}提取失败:{e}") return text 4. 定义单文件鉴定函数 def identify_doc(text): for rule in rules['分类判断规则']: match_count = 0 for keyword in rule['关键词组']: if keyword in text: match_count += 1 confidence = match_count / len(rule['关键词组']) if confidence >= rule['置信度阈值']: return rule['判定等级'], round(confidence, 2) return "待人工复核", 0.0 5. 批量处理主函数 def main(): input_folder = input("请输入待鉴定文件夹的绝对路径(如D:\\待鉴定_文书档案):").strip() output_file = os.path.join(input_folder, "鉴定结果.csv") with open(output_file, 'w', encoding='utf-8-sig') as f: f.write("文件名,提取文本片段,判定等级,置信度\n") for filename in os.listdir(input_folder): file_path = os.path.join(input_folder, filename) if os.path.isfile(file_path) and os.path.splitext(filename)[1].lower() in ['.jpg', '.jpeg', '.png', '.bmp', '.pdf', '.docx', '.xlsx']: print(f"正在处理文件:{filename}") text = extract_text(file_path) level, confidence = identify_doc(text) text_slice = text[:200].replace("\n", "").replace(",", ",") f.write(f"{filename},{text_slice},{level},{confidence}\n") print(f"鉴定完成!结果已保存到:{output_file}") if __name__ == "__main__": main() ```
- 下载并安装Python 3.10(官网:https://www.python.org/downloads/release/python-31011/,安装时勾选「Add Python 3.10 to PATH」)
- 打开CMD(Windows)或终端(macOS),依次输入以下命令安装代码依赖: ```cmd pip install requests==2.31.0 python-docx==1.1.0 openpyxl==3.1.2 ```
- 在CMD/终端中进入预编译包解压目录(如输入「cd D:\PaddleOCR-2.7.0-win32-cpu」),然后输入「python batch_identification.py」
- 按照提示粘贴「待鉴定_文书档案」文件夹的绝对路径(Windows右键文件夹→属性→位置,复制后加上「\待鉴定_文书档案」)
三、复核与归档环节:完善自动鉴定结果并标准化输出
3.1 人工复核「待人工复核」和低置信度结果
- 打开「待鉴定_文书档案」文件夹内的「鉴定结果.csv」
- 重点处理:
- 所有标注为「待人工复核」的文件
- 置信度低于0.7的所有等级文件
- 复核后直接在CSV中修改「判定等级」和「置信度」列,保存时仍选UTF-8无BOM或UTF-8-sig格式
3.2 按照保管期限自动分类归档文件
- 在预编译包解压目录下新建「sort_files.py」记事本文件,粘贴以下代码后保存: ```python import os import shutil import csv def main(): csv_path = input("请输入鉴定结果CSV的绝对路径:").strip() input_folder = os.path.dirname(csv_path) for level in ["永久", "定期30年", "定期10年", "待人工复核"]: output_subfolder = os.path.join(input_folder, level) if not os.path.exists(output_subfolder): os.makedirs(output_subfolder) with open(csv_path, 'r', encoding='utf-8-sig') as f: reader = csv.DictReader(f) for row in reader: filename = row['文件名'] level = row['判定等级'] src_path = os.path.join(input_folder, filename) dst_path = os.path.join(input_folder, level, filename) if os.path.exists(src_path): shutil.move(src_path, dst_path) print(f"已移动文件:{filename} → {level}") print("归档完成!") if __name__ == "__main__": main() ```
- 在CMD/终端中进入预编译包解压目录,输入「python sort_files.py」
- 按照提示粘贴「鉴定结果.csv」的绝对路径即可自动归档
四、常见卡壳问题解决
- 问题1:PaddleOCR服务无法启动:检查预编译包路径是否含中文,Windows用户若未成功安装依赖,可手动下载预训练模型(v2.7通用中英文识别模型,https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar、https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar),解压后放入「inference」文件夹覆盖原有文件
- 问题2:Python命令找不到:重启电脑,或手动将Python安装路径下的「Scripts」文件夹添加到系统环境变量Path中
- 问题3:Word/Excel文件无法识别:确保安装的是纯文本Office文件,不是加密或只读文件