docling-project/docling-parse
Simple package to extract text with coordinates from programmatic PDFs
Docling Parse – 高速で構成可能なPDF抽出
何であるか – C++コアを持つPythonパッケージで、PDFファイルを解析し、構造化されたテキスト、単語・行レベルのセル、ベクターシェイプ、ビットマップ画像およびその座標を返します。これは、より広範な Docling PDFから構造化データへのパイプラインで使用される低レベルエンジンです。
なぜ重要か – 現代のLLMベースのワークフローでは、PDFからクリーンで位置情報付きのテキストや埋め込みグラフィックス(研究論文、契約書、マニュアルなど)が必要です。Docling Parseは、高性能かつスレッドセーフな方法でそのデータを取得でき、下流のAIモデルが正確なレイアウト情報を扱えるようにします。
主な機能
- 二段階構成 –
DecodeConfig(ページのデコード方法)は開く時点で固定;ContentConfig(計算・マテリアライズする内容)はページごとに変更可能で、初期ロードは低コスト、必要に応じて詳細な再解析が可能。 - 細かい出力レベル – 文字、単語、行、ベクターシェイプ、ビットマップ画像のスキップ、計算、マテリアライズを個別に選択可能。
- シーケンシャルおよびマルチスレッド解析器 –
DoclingPdfParser(シングルスレッド);DoclingThreadedPdfParser(バックプレッシャー制御付き並列処理)。 - pybind11を介したC++コア – 高速な解析とレンダリング;純粋なPython APIとして公開。
- レンダリングサポート – Blend2D/FreeTypeを介してページを画像にレンダリング可能。環境変数で再現可能なフォントフォールバックを設定可能。
- CLIツール –
docling-parseで素早いコマンドライン抽出が可能。 - ベンチマーク – 他のPDFライブラリと比較するためのスクリプトとレポートを含む。
一般的なワークフロー
from docling_parse.pdf_parser import (
DoclingPdfParser, DecodeConfig, ContentConfig, ContentLevel
)
parser = DoclingPdfParser(loglevel="fatal")
pdf = parser.load(
path_or_stream="mydoc.pdf",
decode_config=DecodeConfig(do_sanitization=True, keep_glyphs=False),
content_config=ContentConfig(
char_cells_content_level=ContentLevel.SKIP,
word_cells_content_level=ContentLevel.COMPUTE_AND_MATERIALIZE,
line_cells_content_level=ContentLevel.COMPUTE_AND_MATERIALIZE,
),
)
for page_no, page in pdf.iterate_pages():
for word in page.iterate_cells(unit_type=TextCellUnit.WORD):
print(page_no, word.rect, word.text)
# オプション:画像レンダリング
img = page.render_as_image(cell_unit=TextCellUnit.WORD)
img.show()
より豊富なデータが必要な場合、pdf.get_page(page_no, content_config=…) を呼び出し、ライブラリが自動的に該当ページを再デコードします。
インストール
pip install docling-parse # 事前ビルド済みのウェール(C++バイナリ)を取得
開発用には、CMakeでC++部分をビルドするか、READMEに記載のuvツールチェーンを使用できます。
使用すべき場面
- レイアウトが重要なPDFをLLMにインジェストする際(表、複数カラムテキスト、図など)。
- 下流のビジョンモデル向けに画像やベクターグラフィックスを抽出する際。
- 大規模なドキュメントコレクションを高スループットでバッチ処理する際(マルチスレッド解析器のおかげ)。
- マシン間で決定論的なレンダリングが必要な状況 –
DOCLING_PARSE_*_FALLBACK_FONT環境変数を設定。
リンク
- PyPI: https://pypi.org/project/docling-parse/
- ソース: https://github.com/docling-project/docling-parse
- 関連プロジェクト(高レベル変換): https://github.com/docling-project/docling
- LF AI & Data Foundationページ: https://lfaidata.foundation/projects/
Docling ParseはMITライセンス、IBM発祥のオープンソースライブラリで、モデルの学習や推論ではなくPDF解析に焦点を当てていますが、構造化ドキュメントデータが必要なAIパイプラインにおいて重要な役割を果たしています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト