grobidOrg/grobid-client-python

Python client for GROBID Web services

grobid-client-python – GROBID 文档解析服务的 Python 封装器

是什么 – 一个轻量、类型完备的 Python 库(以及随附的 CLI)通过其 REST API 与正在运行的 GROBID 服务器进行通信。GROBID 是一个基于机器学习的工具,可以从科学 PDF 和专利中提取结构化信息(元数据、引用文献、全文、图表、表格等)。此客户端提供了便利功能,如:

  • 并发处理 – 并行发送许多文件(默认池大小 = 10,可配置)。
  • 灵活的输入 – 单个 PDF、目录、glob patterns、zip/tar 归档文件,甚至是 s3:// 对象(范围流式传输,无需完整下载)。
  • 多种输出格式 – 原始 TEI XML、CORD-19 风格的 JSON 表示,或干净的 Markdown。
  • 可选的增强功能 – PDF 坐标提取、布局感知型句子分割、引用文献整合、ID 生成等。
  • 可配置 – 服务器 URL、超时、批次大小、日志记录,以及许多处理标志可以通过 JSON 配置文件或命令行选项进行设置。

如何使用它

  • CLIgrobid_client --input ./pdfs --output ./out processFulltextDocument (或 README 中列出的任何其他服务)。
  • Library – 实例化 GrobidClient 并使用与命令行相同的标志来调用 client.process(service, input_path, output_path, …)

为什么它很重要 – GROBID 的模型是训练来理解学术文章和专利的结构,这是一项经典的 NLP/AI 任务。通过处理底层细节(并行 HTTP 调用、归档流式传输、S3 访问、格式转换)此客户端让研究人员和开发者可以专注于下游分析, rather than on low-level data wrangling.


Key Features (来自 README)

  • 并发处理 许多文档。
  • 归档 & S3 流式传输 – 从不完全解压缩或下载大型集合。
  • JSON & Markdown 转换 TEI XML 输出,符合 CORD-19 schema。
  • 类型提示py.typed 标记,用于静态类型检查。
  • 可选的坐标提取 (--tei_coordinates) 和 句子分割 (--segment_sentences)。
  • 命令行和库 接口,具有相同的选项集。
  • 可配置 via JSON (服务器 URL、批次大小、超时、日志记录等)。

Typical Workflow

  1. 运行一个 GROBID 服务器 (本地 Docker 镜像, 落地安装, 或托管的 demo)。
  2. 安装客户端pip install grobid-client-python (如果需要 S3 支持, 请添加 [s3] 额外项)。
  3. 处理 PDF – 无论是通过 CLI 或从 Python 代码, 选项性地请求 JSON/Markdown 输出。
  4. Consume 结果 – JSON 格式提供了一个现成可用、结构化的文章元数据, 身体文本, 图表, 表格, 和引用文献。

When to Choose This Tool

  • 您已经有 GROBID 正在运行, 且需要一个 Pythonic 的方式来批量处理大型 PDF 语料库。
  • 您想要流式传输归档文件或 S3 对象, 而不耗尽本地磁盘。
  • 您需要提取的数据在下游 NLP 流程中为机器可读的 JSON 格式。
  • 您希望一个单一的包来处理 HTTP 调用和 TEI-to-JSON/Markdown 转换。

Limitations Mentioned

  • 引用文献整合 (其查询外部服务如 CrossRef 的功能) 可能很慢, 且需要更高的客户端超时 (≥ 120 s)。
  • Windows 支持仅通过 Docker 容器提供。
  • 客户端假设一个可达的 GROBID 服务器; 它不包含提取模型本身。

Bottom linegrobid-client-python 是一个实用的、生产环境就绪的工具, 适合任何使用 GROBID 的 AI 驱动文档解析能力的人, 将原始 PDF 转化为结构化、可搜索的数据, 且只需极小化 Effort.

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目