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

Docling:一个基于AI驱动的免费文档解析工具

Docling 一个基于 Python 开发、用于解析各种文档(PDF、DOCX、PPTX、XLSX、图片、音频等)的免费工具,支持与生成式 AI 生态进行无缝集成。

Docling 项目由 IBM 维护并开源,代码托管在 GitHub,目前已经获得了 36.5K Stars:

https://github.com/docling-project/docling

功能特性

Docling 的主要功能特性如下:

  • 🗂️支持解析主流文档格式,包括 PDF、DOCX、PPTX、XLSX、PNG、TIFF、JPEG、WEBP、HTML、WAV、MP3 等;
  • 📑提供高级 PDF 文档理解功能,包括页面布局、阅读顺序、表格结构、代码、公式、图片分类等。
  • 🧩采用统一的、富有表达力的 DoclingDocument 表示格式,以及一套文档构建 API;
  • ↪️支持各种导出格式和选项,包括 HTML、Markdown、Doctags 以及无损 JSON;
  • 🔒允许本地运行,适用于敏感数据和网络隔离环境;
  • 🤖集成各种 AI 平台,包括 LangChain、LlamaIndex、Crew AI、Haystack 等;

在这里插入图片描述

  • 🔍对扫描式 PDF 和图片提供广泛的 OCR(EasyOCR、Tesseract、RapidOCR、Mac OCR)支持;
  • 👓支持视觉语言模型 SmolDocling,用于解析图片文件;
  • 🎙️通过自动语音识别(ASR)模型解析音频文件;
  • 💻提供简单易用的命令行工具。

目前正在开发中的功能包括:

  • 📝元数据提取,包括标题、作者、参考文献以及文本语言;
  • 📝 图表理解(条形图、饼图、折线图等);
  • 📝 复杂化学理解(分子结构)。

系统架构

Docling 的架构如下图所示:

对于每种文档格式,文档转换器知道要使用哪个特定格式的后端模块来解析文档,以及使用哪个 pipeline 来协调执行,以及任何相关的选项配置。

Docling 允许通过第三方插件进行功能扩展。

下载安装

如果你已经安装了 Python 环境,可以使用包管理器进行安装。例如:

pip install docling

这种方式支持 macOS、Linux 以及 Windows 系统,包括 x86_64 和 arm64 架构。

以下是一个解析 PDF 文件的 Python 代码示例,输出格式为 Markdown:

from docling.document_converter import DocumentConvertersource = "https://arxiv.org/pdf/2408.09869"  # file path or URL
converter = DocumentConverter()
doc = converter.convert(source).documentprint(doc.export_to_markdown())  # output: "### Docling Technical Report[...]"

另外,也可以直接从命令行使用 Docling:

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

官方文档:

https://docling-project.github.io/docling/

http://www.dtcms.com/a/348023.html

相关文章:

  • Python性能优化实战(二):让循环跑得比博尔特还快
  • [身份验证脚手架] 应用布局如何构建
  • 初学python的我开始Leetcode题-16
  • CTFshow系列——命令执行web49-52
  • assert使用方法
  • Redis 高可用开发指南
  • 力扣594:最和谐子序列
  • 客流特征识别误报率↓76%!陌讯多模态时序融合算法在智慧零售的实战解析
  • Tesla智能座舱域控制器(MCU)的系统化梳理
  • 【网络运维】Shell 脚本编程:if 条件语句
  • 【40页PPT】数字工厂一体化运营管控平台解决方案(附下载方式)
  • Spark04-MLib library01-机器学习的介绍
  • SNMP 协议的总结
  • 每日算法题【链表】:相交链表、环形链表、环形链表II
  • 鸿蒙分布式计算实战:用 ArkTS+Worker 池落地可运行任务管理 Demo,从单设备到跨设备全方案
  • [二维前缀和]1277. 统计全为 1 的正方形子矩阵
  • HarmonyOS实战(DevEco AI篇)—深度体验DevEco CodeGenie智能编程助手
  • Function + 枚举 + Map:轻量路由器的最佳实践
  • ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.24.96‘ (10060)
  • 基于Java、GeoTools与PostGIS的对跖点求解研究
  • 大数据毕业设计选题推荐:基于Spark+Django的学生创业数据分析可视化系统详解 毕业设计/选题推荐/深度学习/数据分析/数据挖掘/机器学习/随机森林
  • 网络编程socket-Udp
  • Linux网络启程
  • Java基础(十四)分布式
  • 《Distilling the Knowledge in a Neural Network》论文PDF分享, 2015 年,谷歌提出了 “知识蒸馏” 的概念
  • 深入解析Apache Kafka的核心概念:构建高吞吐分布式流处理平台
  • 07-分布式能力与多设备协同
  • Lucene 与 Elasticsearch:从底层引擎到分布式搜索平台的演进
  • Flink提交作业
  • (Redis)内存淘汰策略