PDFやOffice文書の内容をLLMのプロンプト、ドキュメント、ノート、RAGの入力へ移すとき、単純なコピー&ペーストでは見出し、箇条書き、表、読み順が崩れることがあります。
Markdownを中間形式にすると、人が読める状態を保ちながら、後続処理で扱いやすい構造を残せます。ただし、変換結果が生成されたことと、内容が正しいことは別です。ここでは、文書をMarkdownへ変換したあとに確認したい項目を整理します。
1. まず入力文書の種類を確認する
同じ拡張子でも、内部構造は異なります。
- PDF: テキストを持つPDFか、画像だけのスキャンPDFか
- DOCX: 見出しスタイルが使われているか、見た目だけを整えているか
- PPTX: テキストボックスの読み順が自然か
- XLSX: 結合セル、複数シート、数式表示をどう扱うか
- HTML: ナビゲーションや広告など、本文以外を含んでいないか
特にスキャンPDFはOCRが必要です。テキストPDFと同じ処理経路で扱うと、空の出力や文字化けを「変換成功」と誤認しやすくなります。
2. Markdownの構造を目視で確認する
最低限、次の点を原文と見比べます。
- 見出し階層が飛んでいないか
- 箇条書きの親子関係が保たれているか
- 表の列数と行数が原文と一致するか
- 段組みPDFの読み順が混ざっていないか
- ヘッダー、フッター、ページ番号が本文へ入り込んでいないか
- リンク先とリンクテキストが正しいか
Markdownはレイアウトの完全再現ではなく、意味のある構造を取り出すための形式です。見た目が原文と違っていても、見出しや表の意味が保たれていれば、後続のAI処理には使いやすくなります。
3. 機械的な異常チェックを追加する
大量の文書を扱う場合は、目視確認の前に軽い検査を入れると効率的です。例えばTypeScriptなら、空出力、置換文字、極端に短い結果などを検出できます。
type ReviewIssue = {
code: string;
message: string;
};
export function reviewMarkdown(markdown: string): ReviewIssue[] {
const issues: ReviewIssue[] = [];
const text = markdown.trim();
if (!text) {
issues.push({ code: "empty", message: "Markdown output is empty" });
}
if (text.includes("�")) {
issues.push({ code: "replacement-char", message: "Possible encoding problem" });
}
if (text.length > 0 && text.length < 100) {
issues.push({ code: "too-short", message: "Output may be incomplete" });
}
const headingCount = (text.match(/^#{1,6}\s+/gm) ?? []).length;
if (text.length > 2000 && headingCount === 0) {
issues.push({ code: "no-headings", message: "Long output has no headings" });
}
return issues;
}
これは内容の正しさを保証するものではありません。異常の可能性が高いファイルを先に見つけるための入口です。
4. AIへ渡す前に分割単位を決める
RAGや長いプロンプトで利用する場合、文字数だけで機械的に分割すると、見出しと本文、表の途中、手順の途中が切れることがあります。
おすすめの順序は次の通りです。
- 見出し単位で分ける
- 大きすぎる節だけ段落単位で追加分割する
- 各チャンクへ文書名と見出しパスを付ける
- 表は可能なら一つのまとまりとして残す
- 元ページや元ファイルへ戻れる識別子を保存する
この形にすると、検索結果の根拠を確認しやすくなります。
5. ローカル処理とアップロード処理を分けて考える
機密文書を扱う場合は、「ブラウザ内で処理されるのか」「サーバーへアップロードされるのか」を明確に分ける必要があります。
例えばMarkItDown AIのBrowser Basicは、対応するPDF、DOCX、PPTX、XLSX、HTML、CSV、JSON、XMLをブラウザ内で処理します。画像だけのPDFや複雑な文書は別のEnhanced経路となり、サインインと明示的なアップロード同意が必要です。
ツールを選ぶときは、対応形式だけでなく、処理場所、アップロード境界、保存方針も確認するのが安全です。
まとめ
文書からMarkdownを生成するだけでは、AIへ渡せる品質になったとは限りません。
- 入力文書の種類を確認する
- 原文と構造を見比べる
- 軽い機械チェックで異常を絞り込む
- 見出しを意識して分割する
- ローカル処理とアップロード処理の境界を確認する
この確認を一段入れるだけで、プロンプト、ドキュメント、ノート、RAGで利用するときの追跡性とレビュー性を高められます。