达永编程网

程序员技术分享与交流平台

Docling:助力多格式文档的解析和处理

在如今的数字化时代,从科研到商业,从个人到企业,大量的 PDF、DOCX、HTML 等格式的文档需要被高效解析和处理,以支持下游的工作流程,如人工智能应用、知识库构建等等。Docling 项目,能够大大简化文档解析流程,为我们提供了强大的文档处理解决方案。


简介

Docling 是一个文档解析工具,其代码仓库位于
https://github.com/DS4SD/docling 。Docling 简化了文档处理流程,能够解析多种格式的文档,包括针对 PDF 文档进行深度解析,并实现了与生成式人工智能生态系统的无缝集成。

Docling 提供了丰富的特色功能:

  • 可解析多种文档格式,包括 PDF、DOCX、XLSX、HTML、图像等
  • 具备深度解析 PDF 能力,涵盖页面布局、阅读顺序、表格结构、代码、公式、图像分类等
  • 采用统一且表达能力强的 DoclingDocument 格式来表示文档
  • 提供多种导出格式和选项,包括 Markdown、HTML 以及无损的 JSON
  • 针对敏感数据和物理隔离环境,具备本地执行能力
  • 即插即用式集成,支持 LangChain、LlamaIndex、Crew AI 和 Haystack 等,以支持智能 AI 应用
  • 对扫描的 PDF 和图像提供强大的 OCR 支持
  • 拥有简单便捷的命令行界面 CLI

使用

Docling 是一个 Python 库,使用前首先通过 pip 进行本地安装:

pip install docling

如果想要进行开发版本的安装,进行特性扩展等,可以首先拉起代码仓库,然后在仓库目录下运行以下命令:

poetry install --all-extras

安装完成后,就可以使用 Docling 进行文档解析了。可以在 Python 代码中直接引用 docling 库进行使用,例如,使用 DocumentConverter 进行单个 PDF 文档的转换:

from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"  # PDF path or URL
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())  # output: "### Docling Technical Report[...]"

在以上代码中,使用了 docling 的 DocumentConverter,把 url 对应的 PDF 文件,直接转换为了 MarkDown 格式,并打印输出。

Docling 也提供了强大的命令行工具,可以直接在命令行使用,例如:

docling https://arxiv.org/pdf/2206.01062


Docling 依赖多个模型进行不同格式文档的转换,默认在初次使用时才进行模型的下载,也支持预下载模型,以应对离线环境的使用,运行以下命令:

docling-tools models download

或执行以下 Python 代码:

docling.utils.model_downloader.download_models()

然后就可以通过指定 artifacts_path 使用预下载的模型了:

from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import EasyOcrOptions, PdfPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

artifacts_path = "/local/path/to/models"

pipeline_options = PdfPipelineOptions(artifacts_path=artifacts_path)
doc_converter = DocumentConverter(
    format_options={
        InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)
    }
)

总结

Docling 是一个非常实用的文档解析工具,它为我们提供了一种简单而高效的方式来处理多种格式的文档。通过将文档转换为统一的表示形式,Docling 可以为下游的工作流程,如生成式人工智能应用等,提供强大的支持。

Docling 可以广泛应用于科研、商业、教育等领域。研究人员可以使用 Docling 来解析大量的学术文献,提取其中的关键信息,从而加速科研进展。而企业可以使用 Docling 来处理合同、报告等文档,提高工作效率。在教育领域,教师可以使用 Docling 来解析教学材料,为学生提供更好的学习资源。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言