PDF → Markdown(MinerU)
MinerU(opendatalab/MinerU)を使用して、PDFを構造を保持したクリーンなMarkdownに変換します。学術論文向けの最高忠実度のオープンソースエンジンです。パイプラインはGPU(CUDA)上で実行されます。出力はヘッダー階層、インラインLaTeX数式($...$)、図、表(HTML形式)を保持します。
使用タイミング
- ユーザーが「このPDFをMarkdown(またはテキスト)に変換/抽出して」と依頼した場合。
- 最適な用途:学術論文 — 複数カラムレイアウト、LaTeX数式、表、参考文献。
- 画像、
.docx、.pptx、.xlsxも処理可能(ファイルを直接渡してください)。
実行方法
MinerUは専用の分離された環境に格納されており、バンドルされているconvert.pyラッパーを通じて駆動されます。このラッパーはMinerUのPython APIをインプロセスで呼び出します。
ここでは
mineruCLIは使用しないでください。バージョン3.4.0では、Windows上でローカルAPIサーバーが起動し、502 Bad Gatewayを返します。ラッパーはこれを回避します。
"$MINERU_PYTHON" \
"<SKILLS_DIR>/pdf-to-markdown/convert.py" \
"<input.pdf>" "<output_dir>" --lang en
- 引数1 — 入力ファイル(pdf/image/docx/pptx/xlsx)。
- 引数2 — 出力ディレクトリ。
--lang— OCR言語ヒント:en(英語)、ch(中国語/混合)(デフォルトはchで、英語も処理可能)。OCR(スキャン)ページにのみ影響します。- スクリプトは成功時に
DONE -> <path to .md>を出力します。
出力レイアウト
<output_dir>/<name>/auto/<name>.md # Markdownファイル
<output_dir>/<name>/auto/images/ # 抽出された図(Markdownから参照)
<output_dir>/<name>/auto/<name>_*.json # レイアウト/コンテンツメタデータ(無視可能)
変換後
- 出力された
DONE -> ...mdパスを読み取り、ユーザーに報告します。 - オプションで短いプレビュー(タイトル+最初の見出し)を表示します。
- 抽出された画像が書き込まれた場所を通知します。
- 通常は品質は高く、見出しは
#、インライン数式は$...$、表は<table>HTML(セル内にLaTeXを含む)として出力されます。スキャンPDFが文字化けした場合は、--method ocrを付けて再実行します。
事前確認/セットアップ(何か不足している場合のみ)
- MinerUがインストールされたインタープリター(環境変数
MINERU_PYTHON、デフォルトはpython)。 - CUDAの確認:
$MINERU_PYTHON -c "import torch; print(torch.cuda.is_available())"→True。 - モデルは
~/.cache/huggingface/hub/に事前ダウンロードされています(一度だけ)。
環境が不足している場合は、再作成します(必要に応じて最初にuvをインストール):
uv venv --python 3.12 "<your-env>"
uv pip install --python "<your-env>/Scripts/python.exe" torch torchvision --index-url https://download.pytorch.org/whl/cu124
uv pip install --python "<your-env>/Scripts/python.exe" -U "mineru[core]"
"<your-env>/Scripts/mineru-models-download.exe" -s huggingface -m pipeline
その後、MINERU_PYTHONを<your-env>/Scripts/python.exe(Windows)または<your-env>/bin/python(macOS/Linux)に設定します。macOS/Linuxでは、モデルダウンロードバイナリはmineru-models-download(.exeサフィックスなし)です。
トラブルシューティング
cuda.is_available()がFalse→cu124インデックスからtorchを再インストールします(セットアップ参照)。必要に応じてパイプラインはCPUでも動作しますが、低速です。- モデルダウンロードが失敗/遅い →
-s modelscopeを付けてmineru-models-downloadを再実行します。 - スキャンPDFが文字化け →
convert.py呼び出しに--method ocrを追加します。 vlm-engine/hybrid-engineバックエンド → これらにはvLLM/SGLang(Linux)が必要です。Windowsでは502エラーになります。ラッパーが使用するデフォルトのpipelineバックエンドを使用してください。
軽量フォールバック(シンプル/Office文書)
レイアウトの忠実度が重要でない非論文ファイルの場合、MicrosoftのMarkItDownの方が高速でシンプルですが、学術的な2カラムPDFや表を壊す可能性があるため、論文にはMinerUを推奨します:
"$MINERU_PYTHON" -m pip install markitdown
"$MINERU_PYTHON" -m markitdown "<input>" > out.md