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 存取、格式轉換),此客戶端讓研究人員與開發者可以專注於下游分析,而非低層級的數據處理。


Key Features (來自 README)

  • 並行處理 許多文件。
  • 封存檔 & S3 串流 – 從不完全解壓縮或下載大型集合。
  • JSON & Markdown 轉換 TEI XML 輸出,符合 CORD-19 schema。
  • 型別提示py.typed 標記,用於靜態型別檢查。
  • 可選的座標提取 (--tei_coordinates) 與 句子分割 (--segment_sentences)。
  • 命令列與函式庫 介面,具有相同的選項集。
  • 可透過 JSON 配置 (伺服器 URL、批次大小、逾時、日誌記錄等)。

Typical Workflow

  1. 運行一個 GROBID 伺服器 (本地 Docker 映像檔、本地安裝,或託管的展示版)。
  2. 安裝客戶端pip install grobid-client-python (如果需要 S3 支援,請添加 [s3] 額外項)。
  3. 處理 PDF – 透過 CLI 或從 Python 程式碼進行,可選擇性地要求 JSON/Markdown 輸出。
  4. 消耗結果 – JSON 格式提供了一個現成可用、結構化的文章元數據、正文、圖表、表格與引用文獻的表示法。

When to Choose This Tool

  • 您已經有 GROBID 正在運行,且需要一個 Pythonic 的方式來批次處理大量 PDF 語料庫。
  • 您想要串流封存檔或 S3 物件,而不耗盡本地磁碟空間。
  • 您需要提取的提取數據在下游 NLP 流程中用於機器可讀的 JSON 格式。

Limitations Mentioned

  • 引用文獻整合 (其查詢外部服務如 CrossRef 的功能) 可能會很慢,且需要較高的客戶端逾時 (≥ 120 s)。
  • Windows 支援僅透過 Docker 容器提供。
  • 客戶端假設伺服器端是可達的 GROBID GROBID 伺服器;它本身不包含提取模型。

Bottom linegrobid-client-python 是一套實用的、生產環境就緒的工具,適合任何使用 GROBID 的 AI 驅動文件解析實力,將原始 PDF 於極小化 Effort 轉化為結構化、可搜尋的數據。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案