AutoGluon文档分类3步入门:从扫描件到PDF的完整简单指南 📅 发布时间:2026/9/16 14:59:54 👁 浏览次数: AutoGluon文档分类3步入门从扫描件到PDF的完整简单指南【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon用AutoGluon的多模态模块把扫描件、PDF 文档自动分好类只需要三步装好依赖、准备一张数据表、调一次训练接口。读完这篇指南你能独立搭出一个文档分类器并知道遇到常见报错时该怎么处理。扫描件堆得越多越需要自动分类财务、法务、行政岗都逃不开这件事每天收到一堆扫描件和 PDF靠人眼判断这是发票还是合同一天下来既慢又容易分错。文档分类的目标很简单——给模型看几百份标注好的文档让它学会把新文档自动贴对标签。AutoGluon一个把机器学习流程打包成几行代码就能跑的开源项目里的多模态模块就是干这个的它把 OCR 文字识别、版式理解、模型训练这些脏活都藏在背后你只负责喂数据。AutoGluon 是怎么看懂文档的 关键在它的文档 Transformer 模型。一份扫描文档对它来说不是一张图而是三层信息的叠加文字内容先用 Tesseract 引擎把图里的字识别出来OCR 就是光学字符识别把图片上的文字转成可搜索的文本版面信息文字在页面上的位置、对齐方式视觉特征页面整体的视觉样式。这三者一起送进预训练过的文档模型默认用 LayoutLMv3它是专门学过文档版式的再做一点微调就得到了分类器。核心实现在 document_transformer.py整个模块代码在 multimodal/src/autogluon/multimodal/。训练数据长什么样不需要复杂的数据格式。一张 CSV 表就够了每行一个文档一列存文档文件路径一列存它属于的类别标签。下面这张截图来自仓库里的数据标注示例你可以直观看到文件路径 标签这种结构3步搭出你的文档分类器第1步装好 Python 包和系统级 OCR 引擎先装 Python 模块再装文档识别依赖的系统组件不同系统的命令不一样# 安装AutoGluon多模态模块 pip install autogluon.multimodal # 安装文档处理依赖Ubuntu 与 macOS 二选一 sudo apt install tesseract-ocr poppler-utils # Ubuntu/Debian brew install tesseract poppler # macOS第2步下载示例数据并读成数据表这里用官方提供的 RVL-CDIP 扫描件样例数据集下载、解压、读取一步完成import os import pandas as pd from autogluon.core.utils.loaders import load_zip load_zip.unzip(https://automl-mm-bench.s3.amazonaws.com/doc_classification/rvl_cdip_sample.zip, unzip_dir./data) data pd.read_csv(./data/rvl_cdip_sample/rvl_cdip_train_data.csv) data[doc_path] data[doc_path].apply(lambda p: os.path.join(./data, p))读进来后随机取 80% 的行做训练集、剩下的留作测试集即可data.sample(frac0.8, random_state200)就能拿到训练集data.drop(...)剩下的是测试集。完整可运行的流程在官方教程 扫描件分类教程 里逐行都写清楚了。第3步一行 fit 开始训练之后直接预测MultiModalPredictor是统一入口。创建它、指定标签列、调用fitOCR 和特征提取全部自动完成from autogluon.multimodal import MultiModalPredictor predictor MultiModalPredictor(labellabel) predictor.fit( train_datatrain_data, hyperparameters{model.document_transformer.checkpoint_name: microsoft/layoutlm-base-uncased}, time_limit120, # 训练时间预算秒时间越长模型通常越好 )训练结束后评估和预测各一行代码。第一个参数是列名: 值列表的字典列名对应数据表里的路径列doc_pathscores predictor.evaluate(test_data, metrics[accuracy]) print(f测试集准确率: {scores[accuracy]:.3f}) doc_path test_data.iloc[1][doc_path] print(predictor.predict({doc_path: [doc_path]}))在 RVL-CDIP 这类样例上几分钟的训练时间通常就能拿到不错的准确率。如果对预测结果拿不准用predictor.predict_proba(...)可以看到每个类别的完整概率分布方便做人工复核筛选。实际使用常见坑与解决现象原因对策启动时报 OCR 相关错误系统没装 Tesseract按上面第 1 步的命令补装Windows 需自行添加 tesseract 的 bin 目录到 PATH多栏排版的 PDF 识别乱序版面信息没用好换默认的microsoft/layoutlmv3-base即不传checkpoint_name它是默认值类别多、样本少效果差数据量撑不起类别数适当合并相近类别同时把time_limit调大让训练更充分想确认模型有多自信只看预测标签不够用predict_proba取概率分布设阈值筛低置信度样本文档预测的入口页面在 官方教程目录扫描件和 PDF 两条线都有独立教程PDF 文档因为要先做页面转换教程里额外演示了 PDF 分类教程 的参数用法多栏布局多的文档建议优先看它。不止于分类把文档向量化分类器训练完还有一个隐藏技能extract_embedding可以把任意文档压成一个向量用于文档相似度检索、聚类归档、查重等场景feature predictor.extract_embedding({doc_path: [doc_path]}) print(feature[0].shape)向量维度由底层模型决定打印出来即可确认。想继续深入可以看看多模态模块的更多 示例代码以及 多模态教程总目录 里关于模型自定义和超参数调优的部分。到这里一个能跑的 AutoGluon 文档分类器就齐了装依赖、备好路径 标签表、调fit和predict。下一步建议拿你自己的一两百份文档先人工标好标签跑一遍完整流程感受从 2 分钟调到 2 小时time_limit的效果差异——那才是把它真正用到工作流里的一步。【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考