Docstrange 是一个开源的文档处理工具,专注于从多种格式的文档和图片中提取数据,并将其转换为 Markdown、JSON、CSV 或 HTML 等格式。它利用人工智能和先进的 OCR 技术,支持处理 PDF、Word 文档、Excel 表格、PowerPoint 演示文稿、图片以及网页内容。用户可以通过简单的代码或命令行操作,快速提取文本、表格或特定字段,适合开发者、研究人员和企业用户处理复杂文档。工具支持云端和本地处理,保障数据隐私,且输出结果结构清晰,特别适合与大语言模型(LLM)结合使用。Docstrange 由 NanoNets 开发,托管在 GitHub 上,免费且易于集成。
功能列表
- 从 PDF、Word、Excel、PowerPoint、图片和网页中提取文本和数据。
- 支持将提取内容转换为 Markdown、JSON、CSV、HTML 和纯文本格式。
- 提供智能字段提取,可根据用户定义提取特定信息,如发票编号或合同条款。
- 支持 JSON 模式定义,输出符合用户指定结构的数据。
- 内置高级 OCR 技术,处理图片和扫描文档中的文本。
- 提供表格提取功能,保留复杂表格的结构并转换为 Markdown 或 HTML。
- 支持本地 CPU 或 GPU 处理,保障数据隐私。
- 提供命令行和 Python API 两种操作方式,适合开发者集成。
- 支持批量处理多个文件,提高工作效率。
使用帮助
安装流程
要使用 Docstrange,首先需要安装 Python 环境(推荐 Python 3.8 或以上版本)。然后通过以下步骤安装 Docstrange 库:
- 安装 Docstrange
在终端运行以下命令安装 Docstrange:pip install docstrange
安装完成后,用户可以通过 Python 脚本或命令行调用工具。
- 获取 API 密钥(可选)
如果使用云端处理模式,可以在 NanoNets 官网 注册并获取免费 API 密钥,以提升处理限额。获取密钥后,在命令行中可以通过--api-key YOUR_API_KEY
参数指定。 - 本地处理模式(可选)
如果需要完全本地化处理,需安装支持本地 OCR 的依赖(如 Ollama)。运行以下命令启用 CPU 或 GPU 处理:docstrange document.pdf --cpu-mode
或
docstrange document.pdf --gpu-mode
注意:GPU 模式需要 CUDA 支持的硬件环境。
使用方式
Docstrange 提供两种主要操作方式:Python API 和命令行。以下详细介绍如何使用核心功能。
通过 Python API 使用
Docstrange 的 Python API 适合开发者集成到现有项目中。以下是一个提取 PDF 文件内容的示例:
from docstrange import DocumentExtractor
# 初始化提取器(默认云端模式)
extractor = DocumentExtractor()
# 提取 PDF 文件并转换为 Markdown
result = extractor.extract("document.pdf")
markdown = result.extract_markdown()
print(markdown)
# 提取特定字段
fields = result.extract_data(specified_fields=["invoice_number", "total_amount"])
print(fields)
# 使用 JSON 模式提取结构化数据
schema = {
"contract_number": "string",
"parties": ["string"],
"total_value": "number"
}
structured_data = result.extract_data(json_schema=schema)
print(structured_data)
用户可以根据需求选择输出格式(Markdown、JSON、CSV、HTML)。[](https://github.com/NanoNets/docstrange)
通过命令行使用
命令行操作适合快速处理文件。以下是一些常见命令:
- 提取 PDF 文件并输出为 Markdown:
docstrange document.pdf --output markdown
- 提取特定字段并输出为 JSON:
docstrange invoice.pdf --output json --extract-fields invoice_number total_amount
- 批量处理多个 PDF 文件:
docstrange *.pdf --output markdown
- 保存结果到文件:
docstrange document.pdf --output-file result.md
命令行支持灵活的参数组合,用户可以根据需求指定输出格式或处理模式。
特色功能操作
- 智能字段提取
Docstrange 允许用户指定需要提取的字段,如发票编号、金额或合同日期。例如,处理发票时:docstrange invoice.pdf --output json --extract-fields invoice_number vendor_name total_amount
工具会自动识别文档中的相关字段并返回结构化 JSON 数据。这种功能非常适合需要快速提取关键信息的场景。
- 表格提取
对于包含复杂表格的文档,Docstrange 可以准确提取表格并转换为 Markdown 或 HTML 格式。例如:result = extractor.extract("financial_report.pdf") html_table = result.extract_html() print(html_table)
输出的表格保留原始结构,适合直接用于网页或文档编辑。
- 本地处理模式
为保护数据隐私,用户可以启用本地处理模式:extractor = DocumentExtractor(cpu=True) result = extractor.extract("document.pdf") print(result.extract_markdown())
本地模式无需将数据发送到云端,适合敏感文档处理。
- JSON 模式支持
用户可以定义 JSON 模式,确保输出数据符合特定结构。例如,处理合同文档:schema = { "contract_number": "string", "parties": ["string"], "total_value": "number", "start_date": "string" } structured_data = result.extract_data(json_schema=schema) print(structured_data)
这种方式适合需要标准化的数据输出场景。
注意事项
- 云端模式需要稳定的网络连接,建议使用 API 密钥以提高处理速度。
- 本地模式需要额外安装 OCR 依赖,具体要求可参考 GitHub 文档。
- 目前工具不支持手写文档的处理,适合处理打印或电子文档。
应用场景
- 学术研究
研究人员可以利用 Docstrange 将学术论文的 PDF 文件转换为 Markdown 格式,保留表格和文本结构,便于进一步分析或导入到知识库。 - 财务管理
企业用户可以从发票、收据或财务报告中提取关键字段(如金额、日期),并输出为 JSON 或 CSV,方便导入财务软件。 - 法律文档处理
律师可以快速提取合同中的关键条款或签名信息,生成结构化数据,简化合同审核流程。 - 数据分析
数据分析师可以将网页或 Excel 文件中的表格提取为 CSV 格式,用于数据可视化或机器学习模型训练。
QA
- Docstrange 支持哪些文件格式?
它支持 PDF、Word、Excel、PowerPoint、图片(PNG、JPG 等)以及网页 URL 的数据提取。 - 如何保证数据隐私?
用户可以选择本地 CPU 或 GPU 处理模式,数据不会上传到云端,适合处理敏感文档。 - 是否需要付费使用?
Docstrange 是开源工具,免费使用。云端模式需要注册 NanoNets 账户获取 API 密钥,免费账户有使用限额。 - 能否处理手写文档?
目前 Docstrange 主要支持打印或电子文档,手写文档的处理效果有限。