尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

3行代码训练扫描文档分类器:AutoGluon PDF文档分类实操笔记

3行代码训练扫描文档分类器:AutoGluon PDF文档分类实操笔记 3行代码训练扫描文档分类器AutoGluon PDF文档分类实操笔记【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon本教程用 AutoGluon 的多模态模块对扫描件和 PDF 做文档分类页面文字自动 OCR再训练一个类别预测模型。读完你可以拿到一个可运行的 RVL-CDIP 扫描文档分类器以及换模型、提文档向量的完整写法。效果速览分类结果长什么样先看输出。预测接口输入一个文件路径返回类别标签对同一文件再调用一次还能拿到各类别的概率分布真实标签: form 预测结果: [form] 类别概率: budget 0.11 email 0.07 form 0.82RVL-CDIP 样本数据里的预算表budget、邮件email、表单form三类都是扫描图片。按下面的流程训练约 2 分钟留出验证集上的 accuracy 通常在 0.9 以上这个数字可以直接用来判断模型是否可用。准备文档分类训练环境文档处理依赖 Tesseract OCR 引擎系统里要先装好其余依赖都在 Python 包里一条命令装完就能跑pip install autogluon.multimodal sudo apt install tesseract-ocr # UbuntumacOS 改用 brew install tesseract训练时预测器会自动调用 Tesseract 提取页面文字所以你不需手动跑任何 OCR 命令也不用自己解析 PDF 里的文本层。核心工作流加载数据、训练模型、预测类别整个过程只有三步加载数据表、训练模型、预测类别。数据是一张表每行对应一份文档doc_path列是文件路径label列是类别。表结构与标注工具的导出结果类似路径和标签一一对应① 加载扫描文档数据先从文档预测教程里下载并解压 RVL-CDIP 样本包然后读表并把相对路径改成本地绝对路径否则预测器找不到文件import os import pandas as pd base ./docs_data/rvl_cdip_sample docs pd.read_csv(f{base}/rvl_cdip_train_data.csv) train, test docs.iloc[:2000], docs.iloc[2000:] for df in (train, test): # 把相对路径拼成本地绝对路径 df[doc_path] df[doc_path].apply(lambda p: os.path.join(base, p))这一步只做两件事拿到数据表让表里每个路径在当前机器上可解析。② 训练一个扫描文档分类模型训练是一次fit调用。OCR、文本与版面特征提取、预训练文档模型微调都在内部自动完成你只需指定标签列和时间预算from autogluon.multimodal import MultiModalPredictor predictor MultiModalPredictor(labellabel) predictor.fit( train_datatrain, val_datatest, hyperparameters{ model.document_transformer.checkpoint_name: microsoft/layoutlm-base-uncased, }, time_limit120, )训练完成后模型会随预测器一起保存换进程使用时调用predictor.load()即可恢复不用重新训练。③ 给新 PDF 预测类别预测传入一个字典键是路径列名值是一个路径列表返回同长度、同顺序的类别标签列表predict_proba则返回每个类别的概率方便做置信度过滤doc test.iloc[0][doc_path] print(真实标签:, test.iloc[0][label]) print(预测结果:, predictor.predict({doc_path: [doc]})) print(类别概率:, predictor.predict_proba({doc_path: [doc]}))返回的标签可以直接写入数据库或者作为目录名把文件自动归档到对应类别的文件夹里。文档模型怎么选LayoutLM、LayoutLMv3、LayoutXLM默认的layoutlm-base-uncased是均衡之选它同时输入文字、位置和图像特征适合预算表、表单这类单栏排版的英文扫描件。三个候选模型按场景区分模型适用场景layoutlm-base-uncased英文单栏扫描件数据量小默认选择layoutlmv3-base多栏、复杂版式的 PDF对准确率要求更高layoutxlm-base含中文、日文等多语言内容的文档换模型只改一个超参顺带可以控制训练轮数和学习率hyperparameters { model.document_transformer.checkpoint_name: microsoft/layoutlmv3-base, optimization.max_epochs: 3, optimization.learning_rate: 5e-5, }max_epochs控制训练轮数数据量小时 3 轮足够learning_rate微调时常用 5e-5 这个量级。从分类到向量化提取文档嵌入同一个预测器还能输出文档向量不必另外训练表示模型import numpy as np emb np.array(predictor.extract_embedding({doc_path: doc})) print(向量维度:, emb.shape)一行调用拿到一份文档的向量。对一批文档两两计算余弦相似度就能做重复文档检测和相似合同检索直接把向量丢给聚类算法也能完成文档的自动分组归档。部署与更多资源训练完成的预测器用save()/load()持久化也可以导出 ONNX 格式接入推理服务导出写法参考 ONNX 部署示例。深入源码和更多场景从这几个入口看起文档预测教程入口扫描件分类教程PDF 文档分类教程多模态模块源码【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表