技術報告 — 図表抽出 / Multi-hop 検索

使い方: レビューモードONで図の上をクリック→その位置にコメントピン(自動保存)。各カードの「PNGで保存」でスライド中央に貼れる画像を書き出し(ピンは画像に含まれません)。フォントは Hiragino Sans 想定。

① 図表抽出 ― 採用手法と切り出しパイプライン

A-1
図表抽出

採用手法 ― 切り出しパイプライン

産業文書の答えは「図の中」。キャプションを起点に図を切り出し、検索と回答の両方に使う。
切り出しパイプラインキャプション基準・PDF → 図PNG
PDF・ページ ① キャプション検出CAPTION_RE で「図〇 …」を特定
本文中の「図〇参照」は除外
② 領域推定図形要素をクラスタ化
(A-2 で詳説)
③ 切り出し採用領域を 200dpi PNG
切り出した図の2つの用途検索と回答の両方に効かせる
1検索インデックスへ
図の説明文(VLM 生成)を本文と一緒にベクトル検索へ連結。
→ テキスト検索で図そのものがヒットするようになる。
図キャプション+VLM 説明文を別インデックス化(caption_top_k
2回答生成(LLM)へ
回答生成時に図画像そのものをマルチモーダル入力(最大10枚)。
→ 図中の数値・形状を直接読んで回答できる。
テキストでは拾えない図中の値・凡例・軸を LLM が直接参照

① 図表抽出 ― 領域推定の手順

A-2
図表抽出

領域推定の手順

キャプション上方の図形要素をクラスタ化し、外接矩形を図領域として切り出す。
手順loader.py find_figure_rect:探索範囲 → 収集 → クラスタ化 → 外接矩形 → 切り出し
1探索範囲を取る
探索範囲
図〇 …
find_figure_rect:キャプション「図〇」の上方(直前図の下端〜当キャプション上端)を探索範囲に
2要素を収集
図〇 …
collect_graphic_rects:描画パス(get_drawings)・画像ブロック・罫線/細線/塗りを収集(全面ベタは除外)
3クラスタ化
離れて別
図〇 …
_merge_rects(gap=60):近接(≤60pt)を反復結合。離れた要素は別クラスタ
4外接矩形を採用
採用
図〇 …
max(w,h)≥80 ∧ min(w,h)≥20 のクラスタを採用。複数なら底辺が最も下(図直上)
5切り出し
200dpi
Matrix(200/72)200dpi PNG。図内テキスト取込・キャプション境界でクランプ
探索範囲 = 直前キャプション下端〜当キャプション上端 merge_gap = 60pt 採用条件 = max(w,h)≥80 ∧ min(w,h)≥20 出力 = 200dpi PNG
PR#49:無条件の union をやめ近接クラスタ単位で採用(離れた無関係要素・表の混入を防ぐ)。複数クラスタが残れば底辺が最も下=キャプション直上を図領域に採用。

② Multi-hop 検索 ― 手法

B-1
Multi-hop 検索

手法

AI が検索結果を見て不足を判定 → 追加クエリで再検索し、複数根拠を取り切る(agentic tool-calling)。
課題 答えが複数ページの図にまたがると、1回の検索では“2つ目の根拠”を取りこぼす(1つ目に偏る)。 根拠① 根拠②
再検索ループagentic・3 tool
質問 + 直前までの検索結果再検索のたびに add-only で累積(既取得の根拠は減らない)
1search_multimodal_corpusコーパスを検索(top-k=10・図画像 最大10)
↓ 検索直後に必ず
AI
2judge_retrieval_sufficiency本文+図キャプ+図画像で十分性を判定
不足next_query を生成 → ①へ戻り再検索
十分3answer_from_retrieved_context で回答
search ↔ judge を 最大3 hop 繰り返し、根拠がそろうまで探す
具体例:#6 外層/内層の導体幅2つの図が根拠
1初回検索hop 1
「外層導体と内層導体の導体幅」
✓ 外層導体の図(p.51)を取得✗ 内層導体の図(p.53)=上位外
AI 判定:内層の図が不足next_query を生成 ↓
2再検索hop 2
「内層導体 導体幅 多層プリント配線板」
✓ 内層導体の図(p.53)を追加取得(外層+内層)
AI 判定:十分 → 回答生成 ↓
回答「ほとんど変わらない」— 外層・内層 2つの図が根拠としてそろった

② Multi-hop 検索 ― 実験結果

B-2
Multi-hop 検索

実験結果

不足を判定して再検索し、複数根拠を取り切る。全110冊フルコーパス・評価QA15。
root = 回答に必要な根拠がすべて揃った設問数single(1回検索)と Multi-hop を比較
従来 812/15
top-15・Multi-hop(不足を判定して再検索)
従来8
Multi-hop12
取得上位従来Multi-hop
top-10711
top-15812
悪化したケースはゼロ
例 #6 導体厚70μm、導体断面積32×10⁻³mm² の時、プリント配線板の外層導体と多層プリント配線板の内層導体導体幅はどれくらい異なるか
答え:ほとんど変わらない / 根拠:JERG-0-042p.51(外層の図)p.53(内層の図) の2図がそろって初めて回答できる
従来(1回検索)
外層の図 p.51取得
内層の図 p.53未取得
片方の図しか取れず、root 不成立
Multi-hop(再検索)
外層の図 p.51取得
内層の図 p.53取得
2つの図を両方とも取得 → root 成立
効かせ方:弱い誘導では早期に“十分”と判断しがち → 設問誘導の強化+十分性判定の厳格化で底上げ。