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 設定檔或命令列選項來設定。
如何使用它
- CLI –
grobid_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
- 運行一個 GROBID 伺服器 (本地 Docker 映像檔、本地安裝,或託管的展示版)。
- 安裝客戶端:
pip install grobid-client-python(如果需要 S3 支援,請添加[s3]額外項)。 - 處理 PDF – 透過 CLI 或從 Python 程式碼進行,可選擇性地要求 JSON/Markdown 輸出。
- 消耗結果 – JSON 格式提供了一個現成可用、結構化的文章元數據、正文、圖表、表格與引用文獻的表示法。
When to Choose This Tool
- 您已經有 GROBID 正在運行,且需要一個 Pythonic 的方式來批次處理大量 PDF 語料庫。
- 您想要串流封存檔或 S3 物件,而不耗盡本地磁碟空間。
- 您需要提取的提取數據在下游 NLP 流程中用於機器可讀的 JSON 格式。
Limitations Mentioned
- 引用文獻整合 (其查詢外部服務如 CrossRef 的功能) 可能會很慢,且需要較高的客戶端逾時 (≥ 120 s)。
- Windows 支援僅透過 Docker 容器提供。
- 客戶端假設伺服器端是可達的 GROBID GROBID 伺服器;它本身不包含提取模型。
Bottom line – grobid-client-python 是一套實用的、生產環境就緒的工具,適合任何使用 GROBID 的 AI 驅動文件解析實力,將原始 PDF 於極小化 Effort 轉化為結構化、可搜尋的數據。
相關
- 專案
- 專案
- 專案
- 專案
- 專案