当前位置: 首页 > news >正文

Docling:开源的文档解析工具,支持多种格式的解析和转换,可与其他 AI 工具集成

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. Docling 是一个开源的文档解析工具,支持多种格式的文档解析和转换。
  2. 支持高级 PDF 理解、OCR 功能,并且易于与其他 AI 工具集成。
  3. 提供简洁的命令行界面,方便用户快速处理文档。

正文(附运行示例)

Docling 是什么

在这里插入图片描述

Docling 是一个开源的文档解析和转换工具,能高效地将多种格式的文档(包括 PDF、DOCX、PPTX、图片和 HTML)解析,导出为 Markdown 或 JSON 格式。Docling 支持高级 PDF 理解、OCR 功能,能与 LlamaIndex 和 LangChain 等工具集成,增强文档的检索和问答能力。Docling 提供一个简洁的命令行界面,方便用户快速处理文档。

Docling 的主要功能

  • 多格式支持:Docling 能读取和解析多种流行的文档格式,包括 PDF、DOCX、PPTX、图像、HTML、AsciiDoc 和 Markdown,支持将文档导出为 Markdown 和 JSON 格式。
  • 高级 PDF 理解:Docling 具备对 PDF 文档的高级理解能力,包括页面布局、阅读顺序和表格结构的识别。
  • 统一文档表示:基于DoclingDocument格式,Docling 提供一个统一且富有表现力的文档表示格式,表达文档中的文本、表格、图片等内容,及文档的层次结构。
  • OCR 支持:Docling 支持光学字符识别(OCR),能识别扫描 PDF 中的文字,让 Docling 能处理扫描或手写的文档。
  • 工具集成:Docling 易于与 LlamaIndex 和 LangChain 等工具集成,为 RAG(Retrieval-Augmented Generation)/QA(Question Answering)应用提供支持。

Docling 的技术原理

  • 文档解析:Docling 用专门的解析器读取和解析不同格式的文档,将文档内容转换为内部数据结构。
  • 布局和结构识别:对于 PDF 等格式,Docling 基于布局分析技术识别页面上的元素位置和阅读顺序,及表格和文本的结构。
  • 内容提取:Docling 从文档中提取文本、表格、图片等元素,转换为统一的DoclingDocument格式。
  • OCR 技术:对于图像或扫描的 PDF 文档,Docling 用 OCR 技术将图像中的文字转换为机器可读的文本。
  • 数据结构和 JSON 指针DoclingDocument用 JSON 指针引用父项和子项,构建文档的层次结构和内容关系。
  • 输出格式化:将解析后的数据结构格式化为 Markdown 或 JSON,便于进一步的处理和分析。

如何运行 Docling

首先,安装 Docling:

pip install docling

接下来,使用如下代码示例将文档转换为 Markdown 格式:

from docling.document_converter import DocumentConvertersource = "https://arxiv.org/pdf/2408.09869"  # 可以是本地路径或URL
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())  # 输出: "## Docling Technical Report[...]"

资源

  1. 项目官网:https://ds4sd.github.io/docling/
  2. GitHub 仓库:https://github.com/DS4SD/docling
  3. arXiv 技术论文:https://arxiv.org/pdf/2408.09869

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

http://www.lryc.cn/news/478165.html

相关文章:

  • oracle如何在不同业务场景下正确使用聚合查询、联合查询及分组查询?
  • Hearts of Iron IV 之 Archive Modification
  • python manage.py下的命令及功能
  • 建筑行业员工离职SOP的数字化管理
  • 江协科技STM32学习- P30 FlyMCU串口下载STLink Utility
  • 05LangChain实战课 - 提示工程与FewShotPromptTemplate的应用
  • 【数据处理】数据预处理·数据变换(熵与决策树)
  • UE5 随机生成地牢关卡
  • 【Cpp】命名空间
  • ESP32学习笔记——LOG日志库的使用
  • 51c~C语言~合集1
  • $nextTick 实现原理
  • kelp protocol
  • Golang--面向对象
  • 深度学习经典模型之LeNet-5
  • Abaqus随机骨料过渡区孔隙三维网格插件:Random Agg ITZ Pore 3D (Mesh)
  • PG数据库 jsonb字段 模糊查询
  • javascript-Web APLs (四)
  • Keras 3 示例:开启深度学习之旅
  • 鸿蒙Next如何接入微信支付
  • nginx(五):关于location匹配规则那些事
  • 【论文阅读】Associative Alignment for Few-shot Image Classification
  • acmessl.cn提供接口API方式申请免费ssl证书
  • DBeaver如何快速格式化sql语句,真简单!
  • OpenCV C++ 计算两幅图像之间的多尺度结构相似性(MSSIM)
  • 代码随想录第二十二天
  • 【k8s】ClusterIP能http访问,但是不能ping 的原因
  • 【力扣打卡系列】单调栈
  • 使用docker安装zlmediakit服务(zlm)
  • SOLID原则-单一职责原则