社内に長年蓄積されてきた紙媒体の専門誌バックナンバーがあり、これをAIチャットで検索・引用できる状態にしたいと考えました。まずは直近2年分(2025年・2026年発行分、合計2.28GB)を試験的にデータ化することにしました。
結論から言うと、この2年分の処理だけで**Anthropicへの実際の請求額は$29.37(約¥4,691、当時のレート159.69円/ドルで換算)**でした。何にそのお金がかかったのか、正直に書きます。
PDFからテキストを抽出する処理自体は、最初はシンプルに考えていました。ところが、デザイン性の高い特集記事のページで、本文が一切抽出できないケースが見つかりました。
具体的には、表組みのページで、テキスト抽出ツール(pdfjs-dist)にかけても、ページ番号の「27」という数字以外何も取得できませんでした。高解像度で目視確認しても、隠れた画像やテキストは存在せず、表の文字は完全にアウトライン化された図形(ベクター図形)として埋め込まれていたのです。つまり、見た目には文字があるのに、プログラム的には「そこに文字は存在しない」ページでした。
このため、抽出結果が極端に短いページ(300文字未満)だけを対象に、ページを画像としてレンダリングし、Claudeの画像認識(Vision)機能で文字を読み取らせる仕組みを追加しました。
さらに、OCRで読み取った直後のテキストには、読み取りミスによる不自然な日本語(意味の通らない助詞や語尾の混在)が残ることがあったため、もう一段階、Claudeに「明らかにおかしい箇所だけを自然な日本語に補正させる」処理も追加しました。
つまり、対象ページ1ページにつき、最大で2回Claude APIを呼び出す構成になっていました。
2年分のデータをまとめて投入した際、Anthropic Consoleの利用状況を見ると、特定の1〜2日だけトークン使用量が突出しているのがわかりました。その日だけで数百万トークン規模の消費です。
画像を読み込ませるVision APIの呼び出しは、通常のテキストのみのやり取りに比べてトークン消費が大きくなります。それを1ページにつき最大2回、対象ページ数分繰り返した結果が、この使用量でした。
Anthropic Consoleの「Cost」ページで該当期間(2026/8/26〜8/27)を確認したところ、実際の請求額は**$29.37**。当時のレート(159.69円/ドル)で換算すると、約¥4,691でした。
データ量で割ると、1GBあたり約¥2,058という計算になります。
金額そのものは想定の範囲内でしたが、処理時間と将来的なコストの見通しのために、いくつか対策を入れました。
- 1ファイルあたりのOCR実行ページ数に上限を設定(60ページ)。装飾ページ等でOCR対象と誤判定されるケースが積み重なって暴走しないためのセーフガードです。
- OCR対象ページの並列処理化。それまで1ページずつ順番に処理していたものを、複数ページ同時実行に変更し、処理時間を短縮しました。
- 画像圧縮の品質調整。Claude APIの画像サイズ上限(10MB)に収まるよう圧縮する際、圧縮しすぎると細かい文字が潰れて誤読が増えることがわかったため、品質と安全マージンのバランスを調整しました。
将来的には、直近2年分だけでなく、より長期のバックナンバーを投入する計画もあります。今回の実測値(2年分・2.28GB・¥4,691)から単純に比例計算すると、仮に10倍の期間・データ量になった場合、コストも概算で10倍程度(¥47,000前後)になる可能性があります。
ただし、これはあくまで単純比例の試算です。実際には号によってデザインの凝ったページの比率が異なり、OCRが発生する割合も変わるため、実際の金額はこれより増減する可能性があります。大量投入を計画する場合は、まず一部だけで試験投入し、実費を確認してから全体の予算を見積もることをおすすめします。
- 紙資料をAI-OCR化する際、デザイン性の高いページ(表組み・特集ページ等)はテキスト抽出だけでは対応できないことがある
- 画像認識(Vision API)によるOCRフォールバックはテキストのみのやり取りよりコストが高くつく
- 実際に2年分(2.28GB)を処理した実費は$29.37(約¥4,691)、1GBあたり約¥2,058
- 大量データを投入する前に、少量で試験投入して実費を確認するのが安全
同じように紙資料のデジタル化を検討している方の参考になれば幸いです。