ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

5 分钟跑通 docling 文档解析:PDF 表格处理指南

5 分钟跑通 docling 文档解析:PDF 表格处理指南 5 分钟跑通 docling 文档解析PDF 表格处理指南【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/doclingdocling 文档解析把 PDF、DOCX、HTML、CSV、图片甚至音视频统一转换成同一个结构化文档模型服务于要把文档喂给大模型的开发者。它跑在本地机器上文档内容不经过第三方服务处理过程你自己控制。 docling 解决哪几类文档处理的痛做文档入库、RAG检索增强生成即让模型基于你自己的文档回答问题之前通常会卡在三类地方表格全乱PDF 里的十列表格复制出来顺序错位多栏排版按行硬读前后两段话的语义混在一起。扫描件搜不到字扫描版文档没有内嵌文本层CtrlF 搜不到任何内容想复制也没有可复制的东西。格式各写各的一个项目里同时出现 PDF、DOCX、HTML、CSV用不同的库分别解析输出的结构对不上下游代码要按格式写分支。 docling 怎么解析一份文档入口是 DocumentConverter它按文件扩展名查表决定用哪个 backend负责读原始字节的解析器和哪条 pipeline负责编排各处理阶段的流水线。以 PDF 为例pipeline 走三个阶段布局模型先框出每块文字、图片和表格的位置OCR光学字符识别即把图像里的字读成文本负责从没有文本层的图像区域补出文字表格结构模型把表格区域还原成行列和合并单元格。最终产出一个统一的 DoclingDocument可理解为任何格式文档的中间表示从它可以导出 Markdown、JSON、HTML 或纯文本。官方架构如下图✅ docling 支持哪些格式格式支持情况备注PDF、PNG、TIFF 等图片原生支持扫描件依赖 OCRDOCX / XLSX / PPTX原生支持Office 2007DOC / XLS / PPT需装 LibreOffice97–2004 旧格式HTML / Markdown / CSV / EPUB原生支持直接结构转换WAV / MP3 / MP4 音视频需装 asr 扩展语音转写USPTO / JATS 等 XML原生支持领域专用 schema边界说清楚docling 做文档解析不做排版还原和文档编辑扫描件必须先变成图片文件再输入。完整清单见官方文档支持格式。 docling 最小可运行示例装完包下面 15 行内跑通转换和导出# 安装pip install docling from docling.document_converter import DocumentConverter converter DocumentConverter() # 默认配置全格式允许 result converter.convert(report.pdf) # 支持本地路径或 URL doc result.document # 统一的 DoclingDocument print(doc.export_to_markdown()) # 导出 Markdown print(doc.export_to_html()) # 导出 HTML doc.save_as_json(out.json) # 无损 JSON 序列化把report.pdf换成 docx、html 文件同样成立路由是自动的。result.status还会告诉你这次是 SUCCESS 还是 PARTIAL_SUCCESS批量处理时传raises_on_errorFalse可以跳过坏文件继续跑。 docling 进阶技巧OCR 开关、表格调优、本地部署切换 OCR 引擎docling OCR 开关。默认按环境自动选引擎要固定某个引擎比如中文场景用 RapidOCR在 pipeline 选项里指定from docling.datamodel.base_models import InputFormat from docling.datamodel.pipeline_options import PdfPipelineOptions, RapidOcrOptions from docling.document_converter import DocumentConverter, PdfFormatOption opts PdfPipelineOptions(do_ocrTrue, ocr_optionsRapidOcrOptions()) converter DocumentConverter(format_options{InputFormat.PDF: PdfFormatOption(pipeline_optionsopts)})表格识别调优docling 表格识别。表格结构识别默认开启。如果导出后相邻两列内容被并成一列可以关闭预测结构回贴 PDF 原始文本单元格这一步让表格模型自己决定格子边界from docling.datamodel.pipeline_options import PdfPipelineOptions, TableStructureV2Options opts PdfPipelineOptions(table_structure_optionsTableStructureV2Options(do_cell_matchingFalse))下面是一张论文 PDF 里表格区域被还原成结构化表格后裁剪出的样子本地部署docling 本地部署。模型默认首次运行时自动下载离线或内网环境提前下载好并指向本地目录docling-tools models download # 预下载全部默认模型 export DOCLING_ARTIFACTS_PATH/data/docling-models # 程序指向本地模型目录也可以改用 PDF 管道选项 里的artifacts_path参数在代码里指定。⚠️ 常见坑与规避1. 扫描件导出没有文字现象扫描版 PDF 导出的 Markdown 是空的或几乎为空。 原因文档没有内嵌文本层而系统里没装任何 OCR 引擎OCR 阶段被跳过。 解法pip install docling[easyocr]装上引擎并保持do_ocrTrue默认开启。2. 首次转换特别慢或直接失败现象第一次 convert 卡很久最后报网络相关错误。 原因首用会自动从模型仓库下载布局、表格结构等模型权重。 解法离线环境先执行docling-tools models download再用artifacts_path指向本地模型目录。3. 表格多列被并成一列现象导出表格里相邻两列的内容串到同一个格子里。 原因默认do_cell_matching会把预测结构回贴到 PDF 原始单元格合并单元格处容易错位。 解法换成TableStructureV2Options(do_cell_matchingFalse)由表格模型自身输出格子。4. DOC、XLS、PPT 报格式错误现象旧版 Office 文件转换直接失败。 原因97–2004 的二进制格式需要先转成 OOXML这一步依赖系统里的 LibreOffice。 解法安装 LibreOffice 后重新转换新项目尽量用 docx/xlsx/pptx。先跑一遍 docs/examples 目录里的示例脚本跑通后再按上面的选项定制自己的管道。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表