この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Google GeminiのStructured Outputsとプロンプト設計、OpenAIの現在のモデルガイダンスを確認し、旧版の長い手順説明を、文書境界・欠損ルール・根拠付き抽出・アプリ側検証を中心に見直しました。検証ステータス:📘 OpenAI・Google公式情報確認済み/特定規程での全件精度評価は未実施
1万字を超える規程、ガイドライン、運用手順から必要項目を抜き出し、JSONへ変換したい場面があります。ここで難しいのはJSONを作ることではなく、本文にない情報を補わず、どの記述を根拠にしたか追跡できる形で抽出することです。
命令と文書を分ける
<task>
規程本文から、実施事項・対象部門・期限を抽出する。
本文にない値は推測しない。
</task>
<document>
...規程本文...
</document>
重要なのはタグそのものではなく、「ここは指示」「ここは資料」という境界を明確にすることです。
欠損ルールを先に決める
本文に記載がないとき、モデルが一般知識で埋めてしまうと抽出データとして使いにくくなります。
欠損ルール:
- 記載なし: null
- 判断不能: null
- 推測で補完しない
- 値を出した場合は根拠箇所も返す
根拠を一緒に持つ
{
"item": "定期点検",
"target": "管理担当",
"deadline": null,
"evidence": "管理担当者は定期的に点検を実施する。"
}
あとで人が確認するとき、evidenceがあるだけで元文書へ戻りやすくなります。可能ならページ番号、節番号、行番号なども保持します。
JSON Schemaで型を固定する
{
"type": "object",
"properties": {
"requirements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item": {"type": "string"},
"target": {"type": ["string", "null"]},
"deadline": {"type": ["string", "null"]},
"evidence": {"type": "string"}
},
"required": ["item", "target", "deadline", "evidence"]
}
}
},
"required": ["requirements"]
}
対応するAPIではStructured Outputsを使うと、形式の崩れを減らせます。ただし、Googleの公式ドキュメントでも、スキーマに合う出力であっても値の意味はアプリ側で検証することが推奨されています。
長文は必要なら分割する
文書が非常に長い場合は、章や節で分割して抽出し、最後に統合します。ただし、同じ要件が複数章に出る場合があるため、統合時に重複や矛盾を確認します。
flowchart LR
A[文書] --> B[章単位に分割]
B --> C[根拠付き抽出]
C --> D[JSON検証]
D --> E[重複・矛盾チェック]
E --> F[統合結果]
アプリ側で確認する
| 検証 | 例 |
|---|---|
| JSON | パースできるか |
| 必須項目 | evidenceが空でないか |
| 列挙値 | priorityが許可値内か |
| 参照 | 節番号が実在するか |
| 意味 | evidenceが抽出値を本当に支えるか |
人間レビューを絞る
すべてを最初から読み直すのではなく、次を優先します。
- deadlineや金額など重要値
- nullになった項目
- 複数章で矛盾する項目
- 根拠文が長すぎる・曖昧な項目
- 業務判断に直接使う項目
まとめ
長文抽出では、「段階的に処理すること」だけでは不十分です。文書境界、欠損ルール、根拠、型、アプリ側検証をセットで設計すると、結果を後から確認できます。
JSONがきれいに出たことを完成条件にせず、元文書へ戻れる状態を保つことが実務では重要です。
公式情報・一次情報
- Google AI for Developers ― Structured outputs
- Google AI for Developers ― Prompt design strategies
- OpenAI API ― Model guidance
この記事の更新履歴
- 2026-09-13 追加:欠損ルール、根拠保持、JSON Schema、意味検証、重複・矛盾チェックを追加。
- 2026-09-13 変更:長い処理手順中心から、抽出結果を追跡・検証できる設計へ変更。
- 2026-09-13 削除:style_prompt、本文H1、旧モデル前提、詳細な内部処理説明の要求、未検証の精度向上表現を削除。

