開発eurekapu-nuxt4アクティブ

OCRデータを「使わない」と決めた話

eurekapu-nuxt4 のサイト内に、財務諸表の読み方を学べる教材を新設したい。 題材は手元の決算書解説書1冊。199ページ、図170枚、本文188チャンクが既に Turso DB に入っている。

最初は「DB に入っているチャンクを材料に教材を組み立てよう」と考えた。 データがあるから使う、というのは AI の発想として自然だ。 でも筆者から待ったがかかった。

「Turso DB の中に入っている図は OCR で読み解いただけだから雑な変なやつが入っている。直接 PDF を見て図がどういうものがあるか、Claude が読み解いた方がいい」

199ページしかないんだから、1ページずつ目で見ろ、という指示だった。 データの「ある/ない」より、データの「質」を見て判断するという話。

やったこと

1. DBから書籍チャンクを取得してデータの中身を確かめた

book_id: kessansho-kihon-50-2020 で Turso DB を引いて、188チャンクを全部取り出した。 Windows のターミナルで日本語が文字化けしたので、結果をファイルに書き出してから読む方式に切り替えた。

図170枚は OCR 時にチャンク本文中へ HTML タグとして埋め込まれていて、こんな形で並んでいた。

<img src="/api/figures/kessansho-kihon-50-2020/p23_fig1.png">
<img src="/api/figures/kessansho-kihon-50-2020/p23_fig2.png">

ページ番号と図番号で機械的に並んでいるので、一見すると「インベントリは自動で作れそう」に見える。 ここで止まらずに中身を1枚ずつ開いて見たら、罫線だけが切り出された図、本文の一部が画像として切り抜かれた図、表のセルだけがバラバラに認識された図が混ざっていた。

「機械的に並んでいる」と「使える形で並んでいる」は別物だった。

2. 著作権の壁を確かめた

.claude/rules/content-attribution.md を開いて大原則を読み直した。 本書を「題材・参考」として本番ページにそのまま出すのは NG。 書籍 PNG は下絵・参照用にとどめ、汎用図は全部オリジナルの SVG/HTML で描き起こす。 構成番号体系(「キホン1」「キホン2」みたいな並び)も踏襲しない。

書籍の中身をそのまま教材にすることはできない、という壁が最初にあって、その上で「じゃあ何を出すか」を設計する順番になる。

3. 当初の計画 → 方針転換

当初の計画はこうだった。

  • 本書170枚の図インベントリを OCR データから自動抽出
  • 既存サイトの図解インベントリと並列で作る
  • 両者を自動マッチングして PASS / AUGMENT / NEW に分類

筆者の指摘で、最初の「OCR データから自動抽出」が崩れた。 OCR で切り出された図のメタ情報(ページ番号・図番号)はあっても、その図が「何を説明する図か」までは正確に取れていない。 雑なデータを土台にした計画は、後段の AUGMENT/NEW 判定で全部ブレる。

方針を切り替えた。

  • Claude Code が PDF を直接199ページ精査して、ページ単位で図の有無・種類を判定する
  • 20ページ × 10バッチに分けて精査し、マークダウンのテーブルに落とす
  • そのテーブルを既存サイトの図解インベントリと突き合わせて PASS/AUGMENT/NEW を決める
  • 図の SVG 化を先行し、PASS/AUGMENT/NEW 判定が固まってから教材本文に着手する

4. 計画書を保存して明日へ積み残した

memo/2026-05-10/zaimu-shohyo-yomikata-plan.md に計画を保存した。 配置は /lessons/zaimu-shohyo-yomikata/ の予定。 明日は「対象 PDF の所在を特定する → 20ページ × 10バッチで精査開始」から再開する。

試行錯誤・気づき

データがあると使いたくなる

AI に作業を任せると、「DB に入っているから使おう」「OCR が走ったから素材として並べよう」という方向に自然に傾く。 データがあること自体は事実だから、AI 視点ではそれを使わない理由を見つけにくい。

筆者は「データの質」を見て、より精度の高い手段(PDF 直接精査)に切り替える判断をした。 199ページなら直接見られる規模だ、というスケール感覚も筆者の判断だった。 1万ページなら OCR データを使うしかなかったかもしれないが、199ページならページめくり10バッチで終わる。

「データを使うか/使わないか」は、データの量と質を見て決める仕事で、AI が自動的に最適化してくれる領域ではない。

著作権を最初に確かめる

書籍を題材にコンテンツを作るときは、「何を出さないか」を先に決めないと、後で全部書き直しになる。 本書の図そのもの、構成番号、章タイトルの並び。 これらを使わない前提で、自分の言葉で書き起こす設計にしておくと、PDF 精査の段階から「この図のどこを抽出してオリジナル化するか」の目で見られる。

「インベントリ → マッチング → 着手」の3段階

いきなり書き始めずに、既存サイトとの重複を先に判定するフローにした。

  • PASS: 既存ページで十分カバーできている → 教材内ではリンクで済ます
  • AUGMENT: 既存を補強する余地がある → 既存ページに加筆 or 新規 SVG 追加
  • NEW: 既存にない論点 → 教材で新規に書き起こす

この3分類を最初にやらないと、既存ページと内容が被って自分の中で情報が散る。 教材を新設するときに一番怖いのは「既存ページとの整合性」が崩れることなので、ここを最初に固める。

税理士・会計士フォロワーへの応用

書籍を教材化したい場面は士業でもありそうだ。 研修資料、クライアント向け解説資料、所内勉強会のテキスト。 そのときに役に立つのは次の3点。

  • 「データが取れた」と「使える」は別物。OCR や AI 抽出結果はそのまま材料にしない
  • 著作権は最初に確かめる。書籍をそのまま転載しない前提で「何を自分の文章で書き起こすか」を決める
  • 既存資料との重複を先に判定する。PASS/AUGMENT/NEW の3分類は、研修資料の改訂でもそのまま使える

AI が「使えそうなデータ」を並べてきたとき、それを使うか捨てるかは人間の判断で決まる。 今日学んだのはそこだけだった。

明日やること

  • 対象 PDF の所在をローカルから特定する
  • 1〜20ページを精査して図の有無・種類をマークダウンテーブルに記録する
  • 同じ手順を残り9バッチ繰り返して、図解インベントリ(仮)を完成させる
  • 既存サイトの図解インベントリを抽出して PASS/AUGMENT/NEW の突き合わせに進む