PyMuPDF4LLM#
PyMuPDF4LLM は、LLM や RAG 環境で必要な形式で PDF コンテンツを簡単に抽出できるようにすることを目的としています。 Markdown 形式での抽出や、 LlamaIndex ドキュメント出力もサポートしています。
When using PyMuPDF4LLM with PyMuPDF Layout, page layout detection will be greatly improved. This is true for table detection, but also for the detection of page headers and footers, footnotes, list items and text paragraphs. In addition two new methods become available, to_json() and to_text().
重要
PyMuPDF ProをPyMuPDF4LLMと併用することで、対応するファイル形式を拡張し、 Office ドキュメント形式(DOC/DOCX、XLS/XLSX、PPT/PPTX、HWP/HWPX)も含めることができます。
特徴#
マルチカラムページのサポート
画像およびベクターグラフィックスの抽出のサポート(MDテキストへの参照の挿入を含む)
ページ分割出力のサポート
LlamaIndexドキュメント としての直接出力のサポート
When used with PyMuPDF Layout : Support for plain text output similar to Markdown
When used with PyMuPDF Layout : Support for JSON output
機能#
このパッケージは、PyMuPDF を使用して PDF のページを Markdown 形式のテキストに変換します。
標準のテキストやテーブルが検出され、適切な読み取り順序で取り込まれ、その後一緒に GitHub 互換の Markdown テキストに変換されます。
ヘッダー行はフォントサイズで識別され、適切に1つまたは複数の#タグで接頭語が付けられます。
太字、斜体、等幅テキスト、およびコードブロックが検出され、それに応じて書式が付けられます。順序付けられたリストと順不同リストにも同様のことが適用されます。
デフォルトでは、すべての文書ページが処理されます。必要に応じて、
0から始まるページ番号のリストを指定してサブセットのページを指定できます。
インストール#
パッケージを pip を使用してインストールするには、次のコマンドを使用します:
pip install pymupdf4llm
ファイルをMarkdown形式で抽出する#
ドキュメントの内容を Markdown で取得するには、パッケージをインストールし、数行の Python コードを使用するだけで結果を得ることができます。
Python スクリプトでは:
import pymupdf4llm
md_text = pymupdf4llm.to_markdown("input.pdf")
注釈
上記のファイル名文字列の代わりに、PyMuPDF Document を提供することもできます。2番目のパラメータは、0ベースのページ番号のリストである可能性があります。例えば、[0, 1] はドキュメントの最初と2番目のページのみを選択します。
Markdown ファイルを保存したい場合、例えばUTF8でエンコードされたファイルとして保存する場合は、次のようにします。
import pathlib
pathlib.Path("output.md").write_bytes(md_text.encode())
ファイルをLlamaIndexドキュメントとして抽出する#
PyMuPDF4LLM は LlamaIndex ドキュメントへの直接変換をサポートしています。ドキュメントはまず Markdown 形式に変換され、その後、以下のように LlamaIndex ドキュメントとして返されます。
import pymupdf4llm
llama_reader = pymupdf4llm.LlamaMarkdownReader()
llama_docs = llama_reader.load_data("input.pdf")
PyMuPDF Proとの使用#
Office ドキュメントのサポートのために、PyMuPDF4LLM は PyMuPDF Pro とシームレスに動作します。../pymupdf-pro がインストールされている場合、期待通りに Office ドキュメントを操作できます。
import pymupdf4llm
import pymupdf.pro
pymupdf.pro.unlock()
md_text = pymupdf4llm.to_markdown("sample.doc")
ご覧のとおり、PyMuPDF Pro の機能は PyMuPDF4LLM のコンテキスト内で利用可能になります!
API#
PyMuPDF4LLM API をご覧ください。
