Media > AI活用ユースケース > 研究開発 > 研究報告書を社内審査に出す前に、データ表・グラフの数値と本文の数値・単位・有効数字の食い違いを点検する

研究報告書を社内審査に出す前に、データ表・グラフの数値と本文の数値・単位・有効数字の食い違いを点検する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

研究報告書のPDFから、本文に書かれた数値と、データ表・グラフの値を拾って突き合わせます。値・単位・有効数字・増減率の食い違いを、審査の前に指摘の一覧にします。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Python
対象業界
医療/建設/製造
対象部門
研究開発
対象業務
内容確認・チェック/比較検討
主な課題
人手が足りない/属人化している/確認ミスが多い
AIで行う処理
校正
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
21h/月
想定削減
65%
年間削減
468h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 研究員が報告書のPDFを提出用のフォルダに置く
  2. 審査担当が報告書を開き、本文を読みながら数値に印を付ける
  3. 印を付けた数値ごとに、どの表・どの図を指しているかを探し、値を見比べる
  4. 単位、桁、有効数字が表と本文でそろっているかを見る
  5. 「30%向上」のような増減の記述があれば、表の値から電卓で計算し直す
  6. 食い違いをスプレッドシートに書き出し、研究員に返す
  7. 研究員が直した版を受け取り、指摘した箇所を見直す
導入後(After)
  1. 人研究員が報告書のPDFを提出用のフォルダに置く
  2. 自動ファイルの保存をきっかけに点検のプログラムが動き、ページ数・サイズ・テキストの有無を確かめる
  3. 自動Gemini API がPDFを読み、表の値を表番号・行・列付きで、本文の数値を参照先付きで、グラフの軸と単位を拾う
  4. 自動Python が単位をそろえ、本文の数値と表の値を比べる。丸めとして許されるかを社内の記載規程で判定する
  5. 自動増減率の記述は、参照先の表の値から Python が計算し直して比べる
  6. 自動グラフについては、軸の単位と増減の向きだけを本文と比べる
  7. 自動食い違いの候補を、ページ・該当の文・参照先・種類付きの指摘の一覧にする
  8. 人審査担当が一覧の指摘だけを報告書と見比べ、研究員に返すものを決める
  9. 人研究員が直した版を再提出すると、同じ点検をもう一度通す
各工程の詳しい説明を読む
  1. 研究員が報告書のPDFを提出用のフォルダに置く
  2. 審査担当が報告書を開き、本文を読みながら数値に印を付ける
  3. 印を付けた数値ごとに、どの表・どの図を指しているかを探し、値を見比べる
  4. 単位、桁、有効数字が表と本文でそろっているかを見る
  5. 「30%向上」のような増減の記述があれば、表の値から電卓で計算し直す
  6. 食い違いをスプレッドシートに書き出し、研究員に返す
  7. 研究員が直した版を受け取り、指摘した箇所を見直す

(a)転記の誤りが審査会で見つかる。 3番目は、表を作り直したあとの本文の直し忘れを探す作業です。30ページの報告書に数値が100か所以上あり、すべてを表と見比べるのは時間的にできません。 結論に関わる数値を優先して見ると、それ以外の数値の誤りは審査会や登録の後で見つかります。

(b)単位と桁がそろわない。 表の見出しでは「粘度(mPa·s)」、本文では「粘度は1.2 Pa·s」のように、単位を換算して書いたのか、書き間違えたのかが分からない記述がよくあります。表の列見出しに単位があり、セルには数字だけがある形だと、見比べる手間はさらに増えます。

(c)有効数字と丸めがばらばら。 表では「12.34」、本文では「12.3」「約12」「12.340」。丸めとして許される書き方か、別の値を書いたのかを、1か所ずつ判断します。 社内の記載規程はありますが、審査担当によって指摘する・しないが分かれています。

(d)増減率の計算を省く。 5番目は電卓で計算し直す作業で、1本に10か所前後あります。忙しい月には省かれ、「30%向上」が実際には25%だったというような誤りが残ります。

(e)点検の深さが審査担当で違う。 4名のうち、数値の照合に慣れた1名は増減率まで計算し直し、他の3名は値の照合までで止めることが多くあります。同じ報告書でも、誰が読むかで返る指摘が変わります。 研究員の側からは、審査の基準が分からないように見えています。

  1. 【人】 研究員が報告書のPDFを提出用のフォルダに置く
  2. 【自動】 ファイルの保存をきっかけに点検のプログラムが動き、ページ数・サイズ・テキストの有無を確かめる
  3. 【自動】 Gemini API がPDFを読み、表の値を表番号・行・列付きで、本文の数値を参照先付きで、グラフの軸と単位を拾う
  4. 【自動】 Python が単位をそろえ、本文の数値と表の値を比べる。丸めとして許されるかを社内の記載規程で判定する
  5. 【自動】 増減率の記述は、参照先の表の値から Python が計算し直して比べる
  6. 【自動】 グラフについては、軸の単位と増減の向きだけを本文と比べる
  7. 【自動】 食い違いの候補を、ページ・該当の文・参照先・種類付きの指摘の一覧にする
  8. 【人】 審査担当が一覧の指摘だけを報告書と見比べ、研究員に返すものを決める
  9. 【人】 研究員が直した版を再提出すると、同じ点検をもう一度通す

8番目が、この設計の分かれ目です。審査担当は報告書の全数値を見るのではなく、一覧の指摘を見ます。 指摘が正しいかを確かめ、研究員に返すかを決めます。全数値を人がもう一度見る設計にすると、80分はほとんど減りません。

4番目と5番目を Python に置いているのは、意図してのことです。 数値が一致しているか、丸めとして許されるか、増減率が合っているかは、計算で決まることです。生成AIには拾わせるだけにし、比べるのは規則とコードで行います。

02今回想定するシステム構成

構成図
研究報告書のPDF(本文・データ表・グラフ)
   │
   ▼【トリガー】提出用フォルダへの保存
点検のプログラム(Python)── ページ数・サイズ・テキストの有無の確認
   ▼
Gemini API ── PDFを読み、構造化出力で返す
   │  ① データ表の値(表番号・行・列・単位)
   │  ② 本文の数値(ページ・文・値・単位・書かれた桁・参照先)
   │  ③ グラフの軸の名前と単位、本文が述べる大小・増減の向き
   ▼
Python ── 比べる
   │  単位の換算 → 値の一致 → 丸めの許容 → 増減率の計算し直し
   ▼
指摘の一覧(値違い/単位違い/有効数字/増減率/参照先なし/グラフの向き)
   ▼
【審査担当が指摘だけを確認】──▶ 研究員へ返却 ──▶ 再提出で再点検
役割想定する製品代替候補
処理Gemini API(PDFの表・本文・グラフから数値と参照先を拾う)Claude API、OpenAI API
差異計算Python(単位の換算、値の一致、丸めの許容、増減率の計算し直し)Google Apps Script
保管既存の文書管理システムGoogle ドライブ、SharePoint
通知社内のチャットメール

文書管理システムと審査の指摘の管理表は、新しく足すものではありません。 この構成は、審査担当が読む前に指摘の一覧を作って置くだけです。最初の準備は、社内の記載規程(単位の書き方、有効数字、丸めの規則)を、Python が読める表にすることです。

読み取りの土台は、Gemini API の文書の読み取りです。 PDFの中の文章、画像、図、グラフ、表を読めるとされ、PDFは50MBまたは1,000ページまで、1ページは258トークン相当として数えられます。30ページの報告書は1回の呼び出しで丸ごと渡せます。

大事な注意が1つあります。PDF以外の形式も渡せますが、文書として意味のある読み方をするのはPDFだけとされています。ワープロ文書やテキストを渡すと純粋なテキストとして扱われ、グラフや表の見た目の情報が失われます。 報告書は必ずPDFにしてから渡します。

出力は構造化出力で受けます。 JSON Schema の一部に対応しており、enum で値を選ばせたり、required で必須の項目を決めたりできます。ただし、構文として正しいJSONが返ることは保証されても、中身の正しさは保証されないとされ、アプリケーションの側で値を検証するよう案内されています。比べるのを Python に置く理由は、ここにもあります。

03どうやって実装するのか

Step1

処理の起点を決める

起点は、提出用のフォルダに報告書のPDFが保存されたことです。 研究員が提出したその場で点検を動かし、審査担当が読み始める前に指摘の一覧ができている状態にします。

審査会の前日にまとめて動かすことはしません。 指摘が審査会の直前に出ると、研究員が直す時間が残りません。提出のたびに1本ずつ点検し、結果を研究員本人にも同時に返します。 研究員が自分で直してから再提出できれば、審査担当の手に渡る前に片付く指摘が増えます。

再提出の版も、同じ点検を最初から通します。 指摘した箇所だけを見直すと、直したときに別の箇所の数値を書き換えてしまった誤りを見逃します。

Step2

入力データを集める

データ中身取得元
研究報告書のPDF本文、データ表、グラフ、表番号と図番号、付録提出用のフォルダ
社内の記載規程単位の表記、有効数字の扱い、丸めの規則、許容する書き方研究企画グループが作る表
単位の換算表同じ量の単位どうしの換算(mPa·s と Pa·s、µm と mm など)同上
提出の情報報告書の番号、版、研究員、提出日提出用のフォルダの命名規則

質を決めるのは、記載規程を表にできるかです。 「本文では有効数字を表に合わせる」「丸めは四捨五入」「『約』を付けたら上位2桁まで一致すればよい」といった規則が、文章で書かれた規程のままでは Python で判定できません。 規則を1行ずつの表にします。

規則内容の例
丸めの許容本文の値を表の値の丸めと見なせるのは、表の値を本文の桁で四捨五入して一致するとき
「約」の扱い「約」が付いた値は、上位2桁が一致すればよい
桁の過剰本文の桁が表より多いもの(表「12.3」、本文「12.30」)は指摘する
単位の換算換算表にある単位どうしは換算して比べる。換算表に無ければ指摘する
増減率本文の増減率と、表の値から計算した増減率の差が、本文の桁の丸めの範囲を超えたら指摘する

3行目は、規程によって扱いが分かれる行です。 桁を増やして書くのを誤りとするか、許すかは研究所ごとに違います。この表を研究企画グループが決めることが、最初の作業です。

Step3

データの取得方法を決める

PDFは Gemini API に直接渡します。 30ページ程度なら、呼び出しの中にそのまま入れられます。何度か呼び出しを分けて同じPDFを読む場合は、ファイルを先にアップロードしておく方法があり、アップロードしたファイルは48時間保存されるとされています。

呼び出しは、拾うものごとに3回に分けます。

回拾うもの返させる形
1回目データ表の全セル表番号、行の見出し、列の見出し、値の文字列、単位
2回目本文の数値ページ、文、値の文字列、単位、参照先の表番号・図番号、「約」などの修飾
3回目グラフ図番号、横軸と縦軸の名前と単位、系列の名前

3回に分けるのは、拾い漏れを減らすためです。 1回で全部を拾わせると、表のセルを拾うのに集中して本文の数値を飛ばしたり、その逆が起きたりします。拾うものを1種類に絞ると、それぞれの拾い方の指示を細かく書けます。

値は文字列のまま受け取ります。 「12.30」を数値にすると「12.3」になり、有効数字の情報が消えます。 桁の判定は Python が文字列から行います。表の側も同じで、元のスプレッドシートの表示形式で桁が落ちたまま貼られていることがあります。比べる対象は、PDFに表示されている文字列です。

Step4

AIへ渡す前に整形する

  1. PDFであることを確かめる … ワープロ文書で提出されたものはPDFに変換します
  2. ページ数とサイズを確かめる … 50MBまたは1,000ページの上限を超えるものは分けます
  3. テキストの有無を確かめる … スキャンして作られたPDFは、本文の数値の読み違いが増えるので、指摘の一覧にその旨を付けます
  4. ページの向きを直す … 横向きの大きな表が回転したまま入っていれば、正しい向きにします
  5. 表番号と図番号の付け方を確かめる … 「表3」「Table 3」「表 3-1」などの書き方をそろえる規則を Python に持たせます
  6. 付録を分ける … 付録の生データの表は、本文から参照されている表だけを点検の対象にします

4番目は、公式のドキュメントでも勧められています。 ページを正しい向きに回転させてから渡し、ぼやけたページを避けるよう案内されています。研究報告書の大きな表は横向きのページに入っていることが多く、向きが違うまま渡すと行と列を取り違えます。

6番目を省くと、指摘の一覧が埋まります。 付録の生データの表には数百のセルがあり、本文から参照されないものがほとんどです。本文と突き合わせる意味があるのは、本文が参照している表だけです。

Step5

AIに処理させる

させるのは、数値を拾うことと、その数値がどの表のどのセルを指しているかを結び付けることだけです。 比べることはさせません。

させること中身判断できないときの扱い
表のセルの値を拾う表番号・行・列・値の文字列・単位読めないセルは unreadable
本文の数値を拾うページ・文・値の文字列・単位・修飾単位が書かれていなければ単位を空にする
参照先を結び付ける本文の数値が指す表番号・行・列、または図番号結び付かなければ ref を空にして unlinked
グラフの軸を拾う図番号・横軸と縦軸の名前と単位軸の単位が無ければ空
本文の増減の記述を拾う「向上」「低下」「増加」と、比べている2つの条件条件が特定できなければ unlinked

真ん中の列の「参照先を結び付ける」が、この構成で最も難しい部分です。 本文には「表3に示すとおり」と書かれていることもあれば、「試料Bの引張強さは12.8 MPaであった」とだけ書かれていることもあります。後者は、どの表の、どの行と列かを、試料名と量の名前から探す必要があります。 これは生成AIに向いた作業で、規則だけでは書けません。

させないこと理由
値が一致するかの判定丸めの許容は記載規程で決まる。Python で行う
増減率の計算計算は Python で行う。生成AIの計算は検証できない
グラフから値を読み取ること目盛りから読んだ値は幅を持ち、一致の判定に使えない
値の補完・正規化「12.30」を「12.3」にすると有効数字の情報が消える
どちらの値が正しいかの判断正しい値を知っているのは研究員だけ

3行目が、最も起きやすい失敗です。 本文の「約45%」をグラフの棒の高さから「44%くらい」と読み、一致と判定してしまうことがあります。グラフからは軸の単位と増減の向きだけを取り、値は取らせません。 本文がグラフだけを根拠に数値を書いている場合は、その数値は「グラフのみ」として審査担当に回します。

Step6

指示内容を固定する

2回目(本文の数値)の指示の例です。

あなたは研究報告書の社内審査の事務局で、本文に書かれた数値を拾う担当です。
添付のPDFの本文から、数値をすべて拾い、指定のJSONで返してください。
数値が正しいかどうか、表と合っているかどうかは判断しないでください。

【拾う対象】
- 本文の文章に書かれた数値(測定値、条件、増減率、試料の数、範囲)
- 表のセルの中の数値と、図の中の数値は、この回では拾わないでください。
- 図番号・表番号・章番号・参考文献の番号・年は拾わないでください。

【拾い方】
- value には、書かれた文字列をそのまま入れてください。
  「12.30」を「12.3」に、「1.2×10³」を「1200」に直さないでください。
- unit には、数値の直後に書かれた単位をそのまま入れてください。
  書かれていなければ空にしてください。前後の文から推測しないでください。
- qualifier には「約」「以上」「未満」「〜」「±」などの修飾をそのまま入れてください。
- 範囲(10〜20)と誤差(12.3±0.4)は、1つの数値として拾い、
  value に書かれたとおりに入れてください。

【参照先】
- その数値が、どの表のどの行・列の値を書いたものかを ref に入れてください。
  本文に表番号が書かれていなくても、試料名・条件・量の名前から
  対応する表のセルが1つに決まる場合は、ref に入れてください。
- 図のグラフを根拠に書かれた数値は、ref に図番号だけを入れてください。
- 対応する表のセルが1つに決まらない場合は、ref を空にし、
  candidates に候補を最大3つ入れてください。推測で1つに決めないでください。

【増減の記述】
- 「向上」「低下」「増加」「減少」「倍」などがあれば、
  比べている2つの条件(例:試料Aと試料B、処理前と処理後)を compare に入れてください。
- 増減率を計算しないでください。

【報告書】{pdf}
【表の一覧(1回目の結果)】{tables}

「書かれた文字列をそのまま入れる」を例付きで書いているのは、指示しないと正規化するからです。 「12.30」は「12.3」に、「1.2×10³」は「1200」に、親切に直して返します。そうすると、有効数字の食い違いという、見つけたかった誤りが消えます。

「推測で1つに決めない」は、参照先の結び付けのためです。 候補が2つあるときに片方に決めると、たまたま違う方を選んで「値違い」の誤った指摘が出ます。 候補を並べさせ、決まらないものは審査担当に回します。

Step7

出力形式を固定する

本文の数値は、次の形のJSONで受け取ります。

{
  "report_id": "",
  "mentions": [
    {
      "id": "m-0001",
      "page": 12,
      "sentence": "",
      "value": "12.8",
      "unit": "MPa",
      "qualifier": "",
      "ref": { "table": "表3", "row": "試料B", "col": "引張強さ" },
      "candidates": [],
      "compare": null,
      "status": "linked | unlinked | figure_only"
    }
  ]
}

Python が比べたあとの指摘は、次の形の一覧にします。

列中身
指摘の種類value_mismatch(値違い)/unit_mismatch(単位違い)/sigfig(有効数字)/rate_mismatch(増減率)/unlinked(参照先なし)/figure_direction(グラフと増減の向きが逆)
ページと文本文の該当の文
本文の値書かれたとおりの文字列と単位
参照先の値表番号・行・列と、表に書かれたとおりの文字列と単位
計算の内容換算・丸め・増減率の計算の式

1つ目の理由は、value を文字列で持つことで桁を判定できることです。 「12.30」と「12.3」の違いは、数値にした時点で消えます。有効数字の点検は、文字列でなければできません。

2つ目は、status で人に回すものを分けられることです。 linked のものは Python が比べ、unlinked と figure_only は比べずに一覧の別の欄に並べます。比べられなかったものを「問題なし」に混ぜません。

3つ目は、計算の内容 を残すことで、審査担当が確かめやすくなることです。 「表3の試料A 10.0、試料B 12.5 から計算した増減率は25.0%、本文は30%」と並べれば、電卓をたたかずに指摘が正しいか分かります。

Python は、linked の数値を次の順で比べます。

  1. 単位をそろえる … 本文と表の単位が違えば換算表で換算します。換算表に無ければ unit_mismatch にして終わります
  2. 値をそのまま比べる … 文字列として同じなら一致です
  3. 丸めとして許されるかを見る … 表の値を本文の桁で四捨五入して一致すれば、記載規程の「丸めの許容」に照らします。本文の桁が表より多ければ sigfig にします
  4. 「約」を見る … 修飾が「約」なら、上位2桁の一致で判定します
  5. 増減率を計算し直す … compare の2つの条件の値を表から引き、本文の桁で丸めて比べます

順番に意味があります。 単位をそろえる前に値を比べると、「1.2 Pa·s」と「1,200 mPa·s」が値違いとして出ます。換算した結果が一致したものは、指摘ではなく「単位を換算して記載」とだけ記録します。

Step8

システムへ連携する

つなぎ先方式内容
提出用のフォルダ保存の検知報告書のPDFを受け取る
Gemini APIAPI呼び出し表・本文・グラフから数値と参照先を拾う
記載規程と換算表読み取り丸めの許容と単位の換算に使う
審査の指摘の管理表書き込み指摘の一覧を報告書ごとに書き出す
社内のチャット投稿研究員と審査担当に、指摘の件数と一覧の場所を知らせる

報告書のPDFには書き込みません。 指摘を報告書に直接書き込むと、研究員の原稿と事務局の指摘が混ざります。指摘は管理表の側に置き、直すのは研究員です。

Step9

人が確認する

審査担当が見るのは、指摘の一覧だけです。 一覧の上から、次の順で確かめます。

  1. unlinked と figure_only を先に見る … 参照先が決まらなかった数値です。表に無い値を本文に書いていることもあり、ここに重い誤りが入っていることがあります
  2. value_mismatch と rate_mismatch を確かめる … 報告書の該当の文と表を開き、計算の内容を見ます
  3. unit_mismatch と sigfig を確かめる … 記載規程に照らして、研究員に返すかを決めます
  4. 研究員に返す … 指摘の一覧から返すものを選び、管理表の状態を「返却」にします
  5. 誤った指摘に印を付ける … 指摘が外れていたものは理由を書き、記載規程の表と指示を見直す材料にします

1番目を最初にするのは、比べられなかったものが最も危ないからです。 比べた結果の食い違いは目に見えますが、参照先が決まらなかった数値は、比べられないまま通ってしまいます。

目標は、1本28分です。 指摘の一覧を見て、該当の箇所を報告書で確かめ、研究員に返すまでです。

Step10

例外に対処する

起きること対応
スキャンで作られたPDF読み違いが増える旨を一覧に付け、value_mismatch は必ず画像で確かめる
表が画像で貼り付けられている読めないセルは unreadable。研究員に元の表を添付してもらう
前の報告書の値を本文で引用している報告書の中に参照先が無いので unlinked。引用の番号があれば一覧に表示する
表の単位が列見出しにだけある1回目で列見出しの単位をセルに付けて返させる
指数表記(1.2×10³、1.2E+03)文字列のまま受け取り、Python で同じ書き方にそろえて比べる
換算表に無い単位比べずに unit_mismatch として審査担当に回す
同じ量が複数の表にある候補を並べ、unlinked として回す
1本に数値が300か所を超える章ごとに呼び出しを分ける
APIの呼び出しが失敗する提出用のフォルダに残し、時間をおいて再実行する

上の3行が、指摘の一覧の質を決めます。 どれも報告書の書き方の問題で、研究員に「表は画像で貼らない」「前報の値は引用の番号を付ける」と頼むほうが、点検の精度を上げるより早く効きます。

Step11

記録を残す

  • 提出された報告書のPDFと、版・提出日
  • 3回の呼び出しで受け取ったJSONの全文
  • Python が比べた結果と、そのとき使った記載規程の表と換算表の版
  • 指摘の一覧と、審査担当が研究員に返したもの
  • 誤った指摘に付けた印と理由
  • 再提出の版で指摘が解消したか

3つ目で記載規程の版を残すのは、規程が後から変わるためです。 丸めの許容を変えると過去の指摘の意味が変わり、当時の規程が残っていないと、なぜ指摘したかが説明できません。

04実装レベルの3段階

最小構成:報告書を手元のAIサービスに読み込ませ、数値と参照先の一覧を作らせる / 本文の数値の拾い出しと参照先の結び付け
半自動化:上記+API で表・本文・グラフを拾い、Python で値と単位を比べて一覧にする / 値違いと単位違いの検出
本格構成:上記+提出用のフォルダを起点に自動で動かし、記載規程で丸めを判定し、増減率を計算し直し、管理表とチャットに返す / 点検の全体と、研究員への同時の返却

最小構成では、比べるのは人です。 一覧はできますが、表の値と見比べる作業が残ります。拾い方と結び付け方を確かめるための段階です。 半自動化で、1本80分が45分程度になります。 値違いと単位違いは自動で出ますが、有効数字と増減率は人が確かめます。本格構成で28分になり、この段階が本記事の想定です。 差が大きいのは、記載規程を表にして丸めと増減率まで規則で判定できるようになるからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、どの書き方で参照先が結び付かないかが分かります。報告書の様式を直してから本格構成に進むほうが、unlinked が少なくなります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
45 件
1件あたり現在時間
80 分
1件あたり導入後時間
28 分
現在  45件 × 80分 ÷ 60 = 60 時間/月
導入後 45件 × 28分 ÷ 60 = 21 時間/月
月間削減時間
39h
削減率
65%
年間削減時間
468h
年間金額換算(時間単価4,000円)
187万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 研究所や開発部門で研究報告書・技術報告書を社内審査に通してから登録する運用があり、毎月数十本の報告書を少人数の審査担当が見ている素材・化学・電機・医療機器・建材などの製造業や研究機関。報告書がデータ表とグラフを多く含み、本文に転記した数値の誤り、単位の書き違い、有効数字のそろわなさが審査の差し戻しの理由として繰り返し出ている場合。報告書の様式(表番号・図番号の付け方)がある程度決まっている場合。
向いていない
  1. 報告書が月に数本しかなく、審査担当が1本ずつ時間をかけて読める場合。報告書の中身がほとんど文章で、数値の表やグラフが少ない場合。測定の元データから表を作り直して数値そのものの正しさを確かめたい場合(この構成は報告書の中で数値どうしが食い違っていないかを見るもので、測定や計算が正しいかは見ません)。未公開の研究データを社外のクラウドへ出すことが社内規程で認められていない場合。

07最小構成で試す方法

  1. 先月審査に出た報告書から5本を選ぶ(審査で数値の指摘が多かったものを入れる)
  2. その5本で、当時審査担当が返した数値の指摘を管理表から抜き出す
  3. 報告書のPDFを手元のAIサービスに1本ずつ読み込ませる
  4. 「本文の数値をすべて拾い、それぞれがどの表のどのセルを指しているかを一覧にしてください。数値は書かれたとおりの文字列で、単位も書かれたとおりにしてください。合っているかは判断しないでください」と指示する
  5. 出てきた一覧を表計算ソフトに貼り、表の値と並べて、当時の指摘が見つかるかを確かめる

5本で十分です。 1本に数値が100か所あれば、5本で500か所の拾い方と結び付け方を確かめられます。当時の指摘と並べると、AIが拾ったのに当時は指摘しなかった食い違いが見つかることもあります。それが本当の誤りか、規程で許される書き方かを審査担当で話し合うと、1週目に作る記載規程の表の材料になります。

出てきた内容判断
当時の指摘の箇所が、参照先付きで拾えた比べる部分を Python で作る段階に進む
数値を正規化して返した指示の書き方で直る。構成は有効
参照先が結び付かない数値が多い報告書の書き方(表番号の引用)を先にそろえる

08実装時につまずきやすいポイント

問題対策
「12.30」が「12.3」になって返る文字列のまま返すよう例付きで指示し、Python も文字列で受け取る
参照先を推測で1つに決める候補を並べさせ、決まらないものは unlinked にする
グラフから読んだ値で一致と判定するグラフからは値を取らない。 軸の単位と増減の向きだけ
増減率を生成AIに計算させる計算は Python で行う
比べられなかった数値が「問題なし」に混ざるstatus で分け、一覧の別の欄に並べる
ワープロ文書のまま渡してグラフが読めないPDFにしてから渡す。 PDF以外は純粋なテキストとして扱われる
横向きの表で行と列を取り違えるページの向きを直してから渡す
付録の生データで指摘が埋まる本文が参照している表だけを点検する
記載規程が文章のままで判定できない1行ずつの規則の表にする
前の報告書の値の引用が unlinked で埋まる引用の番号を付けて書く様式にし、引用の値は点検の対象外と表示する
単位を換算しただけの記述が指摘になる単位をそろえてから値を比べる。 換算して一致したものは記録だけにする
研究の中身まで指摘させたくなるさせない。 中身は審査会で議論する

上の2行が、この構成の失敗のほとんどです。 どちらも「生成AIが親切に整えた結果、食い違いが見えなくなる」という同じ失敗です。値を文字列で持つことと、決まらないものを決めさせないこと。 この2つを守れば、指摘の一覧は使えるものになります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 未公開の研究データ、試料の組成や処理の条件、研究の結論。特許出願前の発明が含まれていることもあります。

  1. 有料の枠を使う … Gemini API の無料の枠では、入力と出力を人が読むことがあり、機密の情報や個人の情報を送らないよう求められています。 有料の枠では、禁止された使い方の検出のために限られた期間だけ記録されるとされています。研究報告書は有料の枠で扱います
  2. 出願前の報告書の扱いを知財と決める … 外部のサービスに送ってよい報告書の範囲を、知財部門と決めます。決まらない報告書は点検の対象から外します
  3. 報告書に書き込まない … 指摘は管理表に置き、直すのは研究員です
  4. 指摘を研究員の評価に使わない … 指摘の件数は報告書の書き方の問題を見るための数字です。研究員ごとの件数を人事の材料にすると、研究員は数値を書かなくなります
  5. この構成は研究の正しさを保証しない … 見ているのは報告書の中の食い違いだけです。表の値そのものが測定の誤りでも、本文と一致していれば指摘は出ません
  6. 点検の記録を報告書と同じ扱いで保管する … 3回の呼び出しで受け取ったJSONには、報告書の数値と条件がそのまま入っています。記録の置き場所の権限を、報告書の登録先と同じにします

誤りが起きた場合のリスクは、食い違いを見逃すことと、誤った指摘で研究員の時間を使わせることの2つです。 前者は比べられなかった数値を「問題なし」に混ぜると起き、後者は参照先を推測で決めると起きます。どちらも status と候補の扱いで防ぐので、そこは設計で守ります。

10まず何から始めるか

1週目:記載規程を表にする

社内の記載規程から、丸めの許容、「約」の扱い、桁の過剰、単位の換算、増減率の許容を1行ずつの表にします。審査担当4名で、これまでの指摘の判断が分かれていた点を決め直します。

2週目:5本で試す

先月の報告書から5本を選び、手元のAIサービスで本文の数値と参照先の一覧を作らせます。数値を正規化していないか、参照先を推測で決めていないかを最優先で見ます。

3週目:比べる部分を作る

5本の一覧を使い、Python で単位の換算と値の比較を作ります。この時点では丸めの判定と増減率は入れず、値違いと単位違いだけを出します。

4週目:API でつなぐ

Gemini API で表・本文・グラフの3回の呼び出しを作り、提出された報告書の点検を審査担当だけで試します。研究員にはまだ返しません。

2か月目: 記載規程の表を読み込んで丸めと増減率の判定を足し、研究員にも同時に返し始めます。誤った指摘の印を毎週数えます。3か月目以降: 1本80分が何分になったかを実測し、unlinked の多い書き方を報告書の様式に反映します。誤った指摘の割合が下がり、審査担当が一覧だけで研究員に返せるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-05/最終更新:2026-10-05
確認した内容情報源確認日
PDFの文章・画像・図・グラフ・表を読めること、PDFが50MBまたは1,000ページまでであること、1ページが258トークン相当であること、アップロードしたファイルが48時間保存されること、PDF以外の形式は純粋なテキストとして扱われグラフや書式の情報が失われること、ページの向きを直しぼやけたページを避けるよう勧められていることGemini API: Document understanding2026-10-05
JSON Schema の一部(enum、required など)に対応した構造化出力、構文として正しいJSONでも意味の正しさは保証されず、アプリケーションの側で値を検証するよう案内されていることGemini API: Structured outputs2026-10-05
無料の枠では入力と出力を人が読むことがあり、機密・個人の情報を送らないよう求められていること、有料の枠では禁止された使い方の検出のために限られた期間記録されることGemini API 追加利用規約2026-10-05

研究の中身が正しいか、どちらの数値が正しいかは、研究員と審査会で判断してください。 本記事は Gemini API の公開ドキュメントで確認できた範囲だけを扱っています。文書管理システムとのつなぎ方は、お使いのシステムの仕様を確かめてください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0415)についてのご相談はこちらから。

AI活用について相談する
目次