欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 玩转文档处理,Docling 让一切变得简单

玩转文档处理,Docling 让一切变得简单

2026/4/25 3:36:59 来源:https://blog.csdn.net/u010764910/article/details/145716024  浏览:    关键词:玩转文档处理,Docling 让一切变得简单

文章目录

  • 玩转文档处理,Docling 让一切变得简单
    • 一、背景:为什么选择 Docling?
    • 二、Docling 是什么?
    • 三、如何安装 Docling?
    • 四、Docling 的核心函数及使用方法
      • 1\. `DocumentConverter.convert()`
      • 2\. `export_to_markdown()`
      • 3\. `export_to_json()`
      • 4\. `HierarchicalChunker.chunk()`
      • 5\. `PdfPipelineOptions`
    • 五、Docling 的应用场景
      • 场景 1:将 PDF 转换为 Markdown
      • 场景 2:处理扫描版 PDF
      • 场景 3:限制文档处理大小
      • 场景 4:提取文档分块
      • 场景 5:与 LlamaIndex 集成
    • 六、常见问题及解决方案
      • 问题 1:OCR 引擎未安装
      • 问题 2:PyTorch 安装问题
      • 问题 3:文档转换超时
    • 七、总结

在这里插入图片描述

玩转文档处理,Docling 让一切变得简单

一、背景:为什么选择 Docling?

在日常工作中,我们常常需要处理各种格式的文档,如
PDF、Word、PPT、HTML,甚至是图片中的文字内容。这些文档格式繁多,处理起来往往需要不同的工具和技术,效率低下且容易出错。Docling
正是为了解决这一痛点而生。

Docling 是一个强大的 Python 第三方库,专注于文档处理和转换。它支持多种主流文档格式,包括
PDF、DOCX、PPTX、HTML、图片等,并能深度解析 PDF 的页面布局、阅读顺序和表格结构。此外,Docling
提供了统一的文档表示格式(DoclingDocument),可以方便地将文档导出为 Markdown、HTML 或 JSON 等格式。它还支持 OCR
功能,能够处理扫描版的 PDF 和图片。

更重要的是,Docling 无缝集成了 LlamaIndex 和 LangChain
等流行的人工智能框架,非常适合用于构建知识问答(QA)和检索增强生成(RAG)应用。接下来,我们将深入探索 Docling 的强大功能和使用方法。

二、Docling 是什么?

Docling 是一个开源的 Python 库,由 IBM
团队开发。它的目标是简化文档处理流程,支持多种文档格式的解析和转换,并提供与人工智能生态系统的无缝集成。Docling 提供了丰富的功能,包括但不限于:

  • 支持多种文档格式的解析和转换。

  • 深度解析 PDF 文档,包括页面布局、表格结构和阅读顺序。

  • 提供统一的文档表示格式,便于后续处理。

  • 支持多种导出格式,如 Markdown、HTML 和 JSON。

  • 集成 OCR 功能,支持扫描文档的处理。

  • 提供命令行工具(CLI),方便快速操作。

三、如何安装 Docling?

作为第三方库,Docling 可以通过 pip 命令轻松安装:

bash复制

pip install docling

此外,如果需要支持 CPU 版本的 PyTorch,可以使用以下命令:

bash复制

pip install docling --extra-index-url https://download.pytorch.org/whl/cpu

安装完成后,你就可以开始使用 Docling 的强大功能了。

四、Docling 的核心函数及使用方法

以下是 Docling 中常用的五个核心函数及其使用方法:

1. DocumentConverter.convert()

这是 Docling 中最核心的函数,用于将文档转换为 DoclingDocument 格式。

Python复制

from docling.document_converter import DocumentConvertersource = "path/to/your/document.pdf"  # 或者使用在线文档的 URL
converter = DocumentConverter()
result = converter.convert(source)
  • 第一行导入了 DocumentConverter 类。

  • source 是文档的路径或 URL。

  • converter.convert(source) 将文档转换为 DoclingDocument 格式,结果存储在 result 中。

2. export_to_markdown()

将 DoclingDocument 导出为 Markdown 格式。

Python复制

markdown_content = result.document.export_to_markdown()
print(markdown_content)
  • result.document.export_to_markdown() 将文档导出为 Markdown 格式。

  • 输出的 Markdown 内容可以用于进一步的处理或存储。

3. export_to_json()

将 DoclingDocument 导出为 JSON 格式。

Python复制

json_content = result.document.export_to_json()
print(json_content)
  • result.document.export_to_json() 将文档导出为 JSON 格式。

  • JSON 格式便于与其他系统或工具集成。

4. HierarchicalChunker.chunk()

对文档进行分块操作。

Python复制

from docling_core.transforms.chunker import HierarchicalChunkerchunks = list(HierarchicalChunker().chunk(result.document))
print(chunks[0])
  • HierarchicalChunker().chunk(result.document) 将文档分块。

  • 输出的分块内容包含文本和元数据,便于后续处理。

5. PdfPipelineOptions

自定义 PDF 处理选项。

Python复制

from docling.datamodel.pipeline_options import PdfPipelineOptionspipeline_options = PdfPipelineOptions(do_table_structure=True)
converter = DocumentConverter(format_options={"pdf": PdfPipelineOptions(pipeline_options=pipeline_options)}
)
  • PdfPipelineOptions 用于自定义 PDF 处理选项,例如是否解析表格结构。

  • 这些选项可以通过 DocumentConverter 的参数传递。

五、Docling 的应用场景

以下是五个常见的使用场景及其代码示例:

场景 1:将 PDF 转换为 Markdown

Python复制

from docling.document_converter import DocumentConvertersource = "path/to/your/document.pdf"
converter = DocumentConverter()
result = converter.convert(source)
markdown_content = result.document.export_to_markdown()
print(markdown_content)
  • 将 PDF 文件转换为 Markdown 格式,便于在 Markdown 编辑器中进一步处理。

场景 2:处理扫描版 PDF

Python复制

from docling.datamodel.pipeline_options import PipelineOptions, EasyOcrOptions
from docling.document_converter import DocumentConverterpipeline_options = PipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options = EasyOcrOptions()
converter = DocumentConverter(pipeline_options=pipeline_options)
result = converter.convert("path/to/scanned_document.pdf")
  • 使用 OCR 功能处理扫描版的 PDF 文件。

场景 3:限制文档处理大小

Python复制

from docling.document_converter import DocumentConvertersource = "path/to/your/document.pdf"
converter = DocumentConverter()
result = converter.convert(source, max_num_pages=100, max_file_size=20971520)
  • 限制文档的处理大小,避免处理过大的文件。

场景 4:提取文档分块

Python复制

from docling.document_converter import DocumentConverter
from docling_core.transforms.chunker import HierarchicalChunkerconverter = DocumentConverter()
result = converter.convert("path/to/your/document.pdf")
chunks = list(HierarchicalChunker().chunk(result.document))
print(chunks[0])
  • 对文档进行分块处理,便于后续的分析和处理。

场景 5:与 LlamaIndex 集成

Python复制

from llama_index.readers.docling import DoclingReader
from llama_index.core import VectorStoreIndexsource = "path/to/your/document.pdf"
reader = DoclingReader()
documents = reader.load_data(source)
index = VectorStoreIndex.from_documents(documents)
  • 将 Docling 与 LlamaIndex 集成,用于构建知识问答系统。

六、常见问题及解决方案

以下是使用 Docling 时常见的三个问题及其解决方案:

问题 1:OCR 引擎未安装

错误信息

Error: OCR engine not found

解决方案

如果使用 Tesseract OCR,需要先安装 Tesseract:

bash复制

brew install tesseract leptonica pkg-config

然后设置 TESSDATA_PREFIX 环境变量:

bash复制

TESSDATA_PREFIX=/opt/homebrew/share/tessdata/

问题 2:PyTorch 安装问题

错误信息

Error: PyTorch not found

解决方案

根据你的系统架构选择合适的 PyTorch 版本:

bash复制

pip install docling --extra-index-url https://download.pytorch.org/whl/cpu

问题 3:文档转换超时

错误信息

Error: Document conversion timeout

解决方案

在调用 convert() 方法时,可以通过 timeout 参数设置超时时间:

Python复制

result = converter.convert(source, timeout=300)

七、总结

Docling 是一个功能强大的 Python
第三方库,专注于文档处理和转换。它支持多种文档格式,提供深度解析功能,并能够与人工智能框架无缝集成。通过简单的安装和使用,Docling
可以极大地简化文档处理流程,提高工作效率。无论是将 PDF 转换为 Markdown,还是处理扫描版文档,Docling
都能轻松应对。如果你正在寻找一个高效、灵活的文档处理工具,Docling 绝对值得一试!

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词