ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

3 步跑通 OCRmyPDF 文档分类:扫描文件自动归档的完整实践

3 步跑通 OCRmyPDF 文档分类:扫描文件自动归档的完整实践 3 步跑通 OCRmyPDF 文档分类扫描文件自动归档的完整实践【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF几百份发票、合同、报告的扫描件存成 PDF 后内容其实是一张张图搜索不到也归不了档。用 OCRmyPDF 给这些扫描件加一层可搜索文本再按关键词做文档分类文件就能按类别自动归档省去手工整理。1️⃣ 认识 OCRmyPDF先弄清它能干什么结论先行OCRmyPDF 把扫描版 PDF 转成带隐藏文本层的新 PDF版式与原版一致但 CtrlF 能搜了。核心能力如下Tesseract 识别引擎文字从图中读出来嵌入为文本层100 种语言中文、英文、德文等扫描件都能处理插件扩展src/ocrmypdf/builtin_plugins/ 内置并发、优化、PDF/A 转换等插件按需加载双接口命令行一条命令上手src/ocrmypdf/api.py 提供 Python API方便写归档脚本上面这张图是一次真实转换的输出8 页并发扫描、OCR、再到 JPEG 压缩文件体积省下 53.6%。2️⃣ 最小可行流程安装、转换、取文本第一步安装git clone https://gitcode.com/GitHub_Trending/oc/OCRmyPDF cd OCRmyPDF pip install .装完会得到ocrmypdf命令行工具和一个可导入的 Python 包。第二步转一份文件ocrmypdf input.pdf output.pdf一条命令完成。output.pdf里每个字都能选中、能搜索版式和原扫描件一致。第三步把文本取出来转换只是第一步分类要看的是识别出来的文字。用 PyPDF2 十几行就能读完全部页面import PyPDF2 with open(output.pdf, rb) as f: text for page in PyPDF2.PdfReader(f).pages: text page.extract_text() or print(text[:200]) # 打印前 200 字确认识别正常跑通这三步你就有了一份可被程序阅读的 PDF——这是文档分类的地基。3️⃣ 分类规则怎么定一张关键词对照表就够了新手最直观的分类方式是关键词 正则。先定规则再写代码类别关键词中英都写上说明invoices发票、INVOICE、Receipt先匹配发票常含合同字样contracts合同、CONTRACT、Agreement其次匹配reports报告、REPORT、Analysis再次匹配other都不命中兜底方便事后人工检查匹配顺序很关键上面的顺序就是代码里的优先级避免一份文件被错判到先出现的类别。import re import pathlib rules [ (invoices, r发票|INVOICE|Receipt), (contracts, r合同|CONTRACT|Agreement), (reports, r报告|REPORT|Analysis), ] def classify(text: str) - str: for name, pattern in rules: if re.search(pattern, text, re.IGNORECASE): return name return other逻辑很简单按优先级逐条找命中即返回谁都没命中就进other。归档时按返回的类别名建目录、pathlib.Path移动文件即可几行代码的事。这类老式字体扫描件是典型场景文字是纯图像但 OCR 后照样能被上面这套规则分类。4️⃣ 把流程自动化batch 批处理 watcher 监控手动跑ocrmypdf只适合单文件。仓库里有两个现成脚本正好覆盖两种自动化需求misc/batch.py递归扫一个目录下所有 PDF 逐个 OCR适合一次性消化历史积压脚本里还留了archive_dir变量可以把原件备份到独立目录misc/watcher.py基于 watchdog 监控文件夹新文件一落盘就触发转换还能按年/月目录归档组合成一条流水线watcher.py监听收件夹 → 自动 OCR → 提取文本 → 按第 3 节的规则分类 → 移动到对应类别目录。以后扫描枪或手机拍完丢进收件夹归档就是后台自动完成的。5️⃣ 进阶方向与 3 个常见坑进阶语义分类。关键词规则覆盖不了的难读文档可以引入 spaCy 或 NLTK对提取出的文本做语义特征提取再归类如按主题词向量相似度判断报告类型。OCRmyPDF 本体不带这些库但它的插件机制允许你在自己的脚本中组装完整链路OCR → 提取 → NLP 分类 → 归档。常见坑扫描件模糊低分辨率下数字、符号容易认错0 和 O、l 和 1关键词随之失效。对策是提高扫描 DPI 或重扫必要时用 unpaper 等预处理中英混排只声明-l eng时中文会整段漏识别。对策是language同时传多个如chi_simeng误分类关键词总有漏网之鱼。对策是保留other兜底类每周翻一遍这个目录把漏掉的词补进规则表✅ 落地建议 Checklist先用单文件手动走一遍转换 → 取文本 → 人工确认识别质量积压文件用 misc/batch.py 批处理新文件交给 watcher 监听定期更新 OCRmyPDF 与 Tesseract 引擎版本新版识别率通常更好每周检查other目录把新出现的关键词迭代进规则表按 batch.py 的思路保留原件备份归档目录只放转换结果流程跑起来之后你会发现归档这件事的瓶颈从来不是整理而是让机器先读得懂你的文件。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表