拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何用 Docling 表格结构识别精准解析复杂表格:从扫描件到结构化数据的完整教程

如何用 Docling 表格结构识别精准解析复杂表格从扫描件到结构化数据的完整教程【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling想让合同、财报、实验报告里的复杂表格自动变成 CSV 或数据库记录开源项目Docling口号是 Get your documents ready for gen AI内置的表格结构识别Table Structure Recognition能力可以自动检测表格区域、识别行列关系、还原合并单元格并输出结构化数据。本教程面向新手带你从扫描件 PDF 一路走到干净的表格数据讲清楚原理、模型选型和导出方法。为什么复杂表格是文档解析的老大难普通文档解析只需读文字而表格要求解析器同时回答三个问题表格在哪——页面中哪些区域是表格版面检测行列怎么排——哪个单元格在第几行第几列有没有跨行跨列结构识别文字属于谁——一段文字到底属于哪个单元格内容匹配。扫描件更没有内置文本层必须先做 OCR。Docling 的 PDF 标准流水线把这三件事串成了完整的处理链路核心入口在 docling/pipeline/standard_pdf_pipeline.py。表格结构识别的三步原理Docling 的表格识别分三步对应流水线中的三个阶段版面检测布局模型先框出页面上的 TABLE 区域图片、标题、正文也一并分类实现见 docling/models/stages/layout/layout_model.py结构预测表格结构模型TableFormer 系列对表格截图做行列网格预测识别普通单元格、行头、列头、跨行跨列单元格核心实现在 docling/models/stages/table_structure/table_structure_model.py单元格匹配与重建开启do_cell_matching后模型预测结果会与 PDF 文本层单元格做空间对齐最终重建出带行列偏移、跨度的逻辑表格供下游导出。上图就是论文 PDF 中被检测、裁剪出的一个表格区域——结构模型看到的正是这样一张表格截图。快速上手两行代码解析你的第一个表格先安装安装说明见 docs/getting_started/installation.mdpip install docling再用命令行把 PDF 转成 Markdown JSON表格会自动以 Markdown 表格形式输出docling 报表.pdf如果想精细控制用几行 Python 即可完整示例见 docs/examples/custom_convert.pyfrom docling.document_converter import DocumentConverter result DocumentConverter().convert(报表.pdf) print(result.document.export_to_markdown())关键开关在 docling/datamodel/pipeline_options.pydo_table_structureTrue默认开启负责表格结构识别与重建do_ocrTrue默认开启负责扫描件识别。也就是说默认配置就已覆盖扫描件 复杂表格场景这正是新手最省心的地方 。模型选型fast、accurate、V2 与视觉大模型怎么选Docling 提供三代表格结构模型配置类集中定义在 docling/datamodel/pipeline_options.py模型配置类 / 类型特点适用场景TableFormer默认TableStructureOptionsdocling_tableformer可选fast/accurate两种模式默认accurate通用场景复杂表格推荐accurateTableFormer V2TableStructureV2Optionsdocling_tableformer_v2第二代架构输出带单元格标签的结构追求更高精度的复杂表格见 table_structure_model_v2.pyGranite Vision视觉大模型GraniteVisionTableStructureOptionsgranite_vision_table基于 VLM 输出表格标记序列对无规则线条表格更稳健扫描件、模糊表格等困难样本见 table_structure_model_granite_vision.py选型口诀大批量简单表格用fast模式换速度生产环境默认accurate遇到扫描件、无框线、跨页复杂表格时升级到 V2 或 Granite Vision。各模型在流水线中的装配逻辑可查看 docling/models/factories/table_factory.py。扫描件 PDF 表格解析OCR 与结构识别的联合配置处理扫描件时只需确认两个开关都在默认即是并保证 OCR 引擎可用from docling.datamodel.pipeline_options import PdfPipelineOptions options PdfPipelineOptions() options.do_ocr True # 扫描件需要 OCR 文本层 options.do_table_structure True # 开启表格结构识别流水线会先用 OCR 得到文本及其坐标再让布局模型框出表格、结构模型重建行列最后通过单元格匹配把 OCR 文本落位到每个单元格里。OCR 引擎的更多选项Tesseract、EasyOCR、RapidOCR 等参见 docs/usage/enrichments.md 与 docs/concepts/OCR.md。一键导出把表格变成 CSV / HTML / DataFrame解析完成后document.tables会返回按阅读顺序排列的表格对象每个表格都能一键导出import pandas as pd for i, table in enumerate(result.document.tables): df: pd.DataFrame table.export_to_dataframe(docresult.document) df.to_csv(ftable-{i 1}.csv) # 也可以table.export_to_html(docresult.document)项目里有一份可直接运行的参考脚本 docs/examples/export_tables.py它遍历 PDF 中所有表格并导出 CSV/HTML其使用的样例文档是 tests/data/pdf/sources/2206.01062.pdf。导出的 JSON 结构DoclingDocument保留了完整的行列偏移与跨单元格信息方便入库或交给 LLM 使用层级说明见 docs/concepts/docling_document.md。4 个提高表格解析准确率的实战技巧复杂表格优先accurate模式TableFormerMode.ACCURATE质量更高fast适合简单表格与大批量场景定义见 pipeline_options.py扫描件保持images_scale足够表格截图会被放大到约 144 DPI 再送模型低分辨率扫描建议提高images_scale与 OCR 缩放合并单元格异常时调do_cell_matching当 PDF 文本层与表格列错位时关闭单元格匹配可让结构模型自行定义文本单元格V2 的注释明确说明了该行为见 pipeline_options.py困难样本换 Granite Vision无框线、模糊、手写风格的表格VLM 方案通常比传统结构模型更稳健。常见问题FAQ纯电子 PDF 也要做 OCR 吗不需要担心默认force_backend_textFalse时优先使用文本层OCR 仅在需要时补位。表格跨页怎么办每个物理页的表格独立识别跨页表格按页分段输出可在导出后按标题行拼接。想只看表格、跳过其它富化保持do_code_enrichment、do_picture_description等默认关闭即可减少处理时间。CLI 还支持哪些格式支持 MD、JSON、HTML、CSV 等导出目标命令细节见 docs/reference/cli.md。总结Docling 的表格结构识别把布局检测 → 结构预测 → 单元格重建做成了开箱即用的流水线默认配置即可解析扫描件中的复杂表格再通过fast/accurate模式、TableFormer V2、Granite Vision 三级模型应对不同难度的场景最后用export_to_dataframe()一键落地为 CSV/HTML。对于要把纸质文档、财报、论文表格接入 RAG 或数据库的团队这是一条从像素到结构化数据的最短路径 。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门