研究報告書を社内審査に出す前に、データ表・グラフの数値と本文の数値・単位・有効数字の食い違いを点検する
研究報告書のPDFから、本文に書かれた数値と、データ表・グラフの値を拾って突き合わせます。値・単位・有効数字・増減率の食い違いを、審査の前に指摘の一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 医療/建設/製造
- 対象部門
- 研究開発
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 校正
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 研究員が報告書のPDFを提出用のフォルダに置く
- 審査担当が報告書を開き、本文を読みながら数値に印を付ける
- 印を付けた数値ごとに、どの表・どの図を指しているかを探し、値を見比べる
- 単位、桁、有効数字が表と本文でそろっているかを見る
- 「30%向上」のような増減の記述があれば、表の値から電卓で計算し直す
- 食い違いをスプレッドシートに書き出し、研究員に返す
- 研究員が直した版を受け取り、指摘した箇所を見直す
- 人研究員が報告書のPDFを提出用のフォルダに置く
- 自動ファイルの保存をきっかけに点検のプログラムが動き、ページ数・サイズ・テキストの有無を確かめる
- 自動Gemini API がPDFを読み、表の値を表番号・行・列付きで、本文の数値を参照先付きで、グラフの軸と単位を拾う
- 自動Python が単位をそろえ、本文の数値と表の値を比べる。丸めとして許されるかを社内の記載規程で判定する
- 自動増減率の記述は、参照先の表の値から Python が計算し直して比べる
- 自動グラフについては、軸の単位と増減の向きだけを本文と比べる
- 自動食い違いの候補を、ページ・該当の文・参照先・種類付きの指摘の一覧にする
- 人審査担当が一覧の指摘だけを報告書と見比べ、研究員に返すものを決める
- 人研究員が直した版を再提出すると、同じ点検をもう一度通す
各工程の詳しい説明を読む
- 研究員が報告書のPDFを提出用のフォルダに置く
- 審査担当が報告書を開き、本文を読みながら数値に印を付ける
- 印を付けた数値ごとに、どの表・どの図を指しているかを探し、値を見比べる
- 単位、桁、有効数字が表と本文でそろっているかを見る
- 「30%向上」のような増減の記述があれば、表の値から電卓で計算し直す
- 食い違いをスプレッドシートに書き出し、研究員に返す
- 研究員が直した版を受け取り、指摘した箇所を見直す
(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名は値の照合までで止めることが多くあります。同じ報告書でも、誰が読むかで返る指摘が変わります。 研究員の側からは、審査の基準が分からないように見えています。
- 【人】 研究員が報告書のPDFを提出用のフォルダに置く
- 【自動】 ファイルの保存をきっかけに点検のプログラムが動き、ページ数・サイズ・テキストの有無を確かめる
- 【自動】 Gemini API がPDFを読み、表の値を表番号・行・列付きで、本文の数値を参照先付きで、グラフの軸と単位を拾う
- 【自動】 Python が単位をそろえ、本文の数値と表の値を比べる。丸めとして許されるかを社内の記載規程で判定する
- 【自動】 増減率の記述は、参照先の表の値から Python が計算し直して比べる
- 【自動】 グラフについては、軸の単位と増減の向きだけを本文と比べる
- 【自動】 食い違いの候補を、ページ・該当の文・参照先・種類付きの指摘の一覧にする
- 【人】 審査担当が一覧の指摘だけを報告書と見比べ、研究員に返すものを決める
- 【人】 研究員が直した版を再提出すると、同じ点検をもう一度通す
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どうやって実装するのか
処理の起点を決める
起点は、提出用のフォルダに報告書のPDFが保存されたことです。 研究員が提出したその場で点検を動かし、審査担当が読み始める前に指摘の一覧ができている状態にします。
審査会の前日にまとめて動かすことはしません。 指摘が審査会の直前に出ると、研究員が直す時間が残りません。提出のたびに1本ずつ点検し、結果を研究員本人にも同時に返します。 研究員が自分で直してから再提出できれば、審査担当の手に渡る前に片付く指摘が増えます。
再提出の版も、同じ点検を最初から通します。 指摘した箇所だけを見直すと、直したときに別の箇所の数値を書き換えてしまった誤りを見逃します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 研究報告書のPDF | 本文、データ表、グラフ、表番号と図番号、付録 | 提出用のフォルダ |
| 社内の記載規程 | 単位の表記、有効数字の扱い、丸めの規則、許容する書き方 | 研究企画グループが作る表 |
| 単位の換算表 | 同じ量の単位どうしの換算(mPa·s と Pa·s、µm と mm など) | 同上 |
| 提出の情報 | 報告書の番号、版、研究員、提出日 | 提出用のフォルダの命名規則 |
質を決めるのは、記載規程を表にできるかです。 「本文では有効数字を表に合わせる」「丸めは四捨五入」「『約』を付けたら上位2桁まで一致すればよい」といった規則が、文章で書かれた規程のままでは Python で判定できません。 規則を1行ずつの表にします。
| 規則 | 内容の例 |
|---|---|
| 丸めの許容 | 本文の値を表の値の丸めと見なせるのは、表の値を本文の桁で四捨五入して一致するとき |
| 「約」の扱い | 「約」が付いた値は、上位2桁が一致すればよい |
| 桁の過剰 | 本文の桁が表より多いもの(表「12.3」、本文「12.30」)は指摘する |
| 単位の換算 | 換算表にある単位どうしは換算して比べる。換算表に無ければ指摘する |
| 増減率 | 本文の増減率と、表の値から計算した増減率の差が、本文の桁の丸めの範囲を超えたら指摘する |
3行目は、規程によって扱いが分かれる行です。 桁を増やして書くのを誤りとするか、許すかは研究所ごとに違います。この表を研究企画グループが決めることが、最初の作業です。
データの取得方法を決める
PDFは Gemini API に直接渡します。 30ページ程度なら、呼び出しの中にそのまま入れられます。何度か呼び出しを分けて同じPDFを読む場合は、ファイルを先にアップロードしておく方法があり、アップロードしたファイルは48時間保存されるとされています。
呼び出しは、拾うものごとに3回に分けます。
| 回 | 拾うもの | 返させる形 |
|---|---|---|
| 1回目 | データ表の全セル | 表番号、行の見出し、列の見出し、値の文字列、単位 |
| 2回目 | 本文の数値 | ページ、文、値の文字列、単位、参照先の表番号・図番号、「約」などの修飾 |
| 3回目 | グラフ | 図番号、横軸と縦軸の名前と単位、系列の名前 |
3回に分けるのは、拾い漏れを減らすためです。 1回で全部を拾わせると、表のセルを拾うのに集中して本文の数値を飛ばしたり、その逆が起きたりします。拾うものを1種類に絞ると、それぞれの拾い方の指示を細かく書けます。
値は文字列のまま受け取ります。 「12.30」を数値にすると「12.3」になり、有効数字の情報が消えます。 桁の判定は Python が文字列から行います。表の側も同じで、元のスプレッドシートの表示形式で桁が落ちたまま貼られていることがあります。比べる対象は、PDFに表示されている文字列です。
AIへ渡す前に整形する
- PDFであることを確かめる … ワープロ文書で提出されたものはPDFに変換します
- ページ数とサイズを確かめる … 50MBまたは1,000ページの上限を超えるものは分けます
- テキストの有無を確かめる … スキャンして作られたPDFは、本文の数値の読み違いが増えるので、指摘の一覧にその旨を付けます
- ページの向きを直す … 横向きの大きな表が回転したまま入っていれば、正しい向きにします
- 表番号と図番号の付け方を確かめる … 「表3」「Table 3」「表 3-1」などの書き方をそろえる規則を Python に持たせます
- 付録を分ける … 付録の生データの表は、本文から参照されている表だけを点検の対象にします
4番目は、公式のドキュメントでも勧められています。 ページを正しい向きに回転させてから渡し、ぼやけたページを避けるよう案内されています。研究報告書の大きな表は横向きのページに入っていることが多く、向きが違うまま渡すと行と列を取り違えます。
6番目を省くと、指摘の一覧が埋まります。 付録の生データの表には数百のセルがあり、本文から参照されないものがほとんどです。本文と突き合わせる意味があるのは、本文が参照している表だけです。
AIに処理させる
させるのは、数値を拾うことと、その数値がどの表のどのセルを指しているかを結び付けることだけです。 比べることはさせません。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 表のセルの値を拾う | 表番号・行・列・値の文字列・単位 | 読めないセルは unreadable |
| 本文の数値を拾う | ページ・文・値の文字列・単位・修飾 | 単位が書かれていなければ単位を空にする |
| 参照先を結び付ける | 本文の数値が指す表番号・行・列、または図番号 | 結び付かなければ ref を空にして unlinked |
| グラフの軸を拾う | 図番号・横軸と縦軸の名前と単位 | 軸の単位が無ければ空 |
| 本文の増減の記述を拾う | 「向上」「低下」「増加」と、比べている2つの条件 | 条件が特定できなければ unlinked |
真ん中の列の「参照先を結び付ける」が、この構成で最も難しい部分です。 本文には「表3に示すとおり」と書かれていることもあれば、「試料Bの引張強さは12.8 MPaであった」とだけ書かれていることもあります。後者は、どの表の、どの行と列かを、試料名と量の名前から探す必要があります。 これは生成AIに向いた作業で、規則だけでは書けません。
| させないこと | 理由 |
|---|---|
| 値が一致するかの判定 | 丸めの許容は記載規程で決まる。Python で行う |
| 増減率の計算 | 計算は Python で行う。生成AIの計算は検証できない |
| グラフから値を読み取ること | 目盛りから読んだ値は幅を持ち、一致の判定に使えない |
| 値の補完・正規化 | 「12.30」を「12.3」にすると有効数字の情報が消える |
| どちらの値が正しいかの判断 | 正しい値を知っているのは研究員だけ |
3行目が、最も起きやすい失敗です。 本文の「約45%」をグラフの棒の高さから「44%くらい」と読み、一致と判定してしまうことがあります。グラフからは軸の単位と増減の向きだけを取り、値は取らせません。 本文がグラフだけを根拠に数値を書いている場合は、その数値は「グラフのみ」として審査担当に回します。
指示内容を固定する
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つあるときに片方に決めると、たまたま違う方を選んで「値違い」の誤った指摘が出ます。 候補を並べさせ、決まらないものは審査担当に回します。
出力形式を固定する
本文の数値は、次の形の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 の数値を次の順で比べます。
- 単位をそろえる … 本文と表の単位が違えば換算表で換算します。換算表に無ければ
unit_mismatchにして終わります - 値をそのまま比べる … 文字列として同じなら一致です
- 丸めとして許されるかを見る … 表の値を本文の桁で四捨五入して一致すれば、記載規程の「丸めの許容」に照らします。本文の桁が表より多ければ
sigfigにします - 「約」を見る … 修飾が「約」なら、上位2桁の一致で判定します
- 増減率を計算し直す …
compareの2つの条件の値を表から引き、本文の桁で丸めて比べます
順番に意味があります。 単位をそろえる前に値を比べると、「1.2 Pa·s」と「1,200 mPa·s」が値違いとして出ます。換算した結果が一致したものは、指摘ではなく「単位を換算して記載」とだけ記録します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 提出用のフォルダ | 保存の検知 | 報告書のPDFを受け取る |
| Gemini API | API呼び出し | 表・本文・グラフから数値と参照先を拾う |
| 記載規程と換算表 | 読み取り | 丸めの許容と単位の換算に使う |
| 審査の指摘の管理表 | 書き込み | 指摘の一覧を報告書ごとに書き出す |
| 社内のチャット | 投稿 | 研究員と審査担当に、指摘の件数と一覧の場所を知らせる |
報告書のPDFには書き込みません。 指摘を報告書に直接書き込むと、研究員の原稿と事務局の指摘が混ざります。指摘は管理表の側に置き、直すのは研究員です。
人が確認する
審査担当が見るのは、指摘の一覧だけです。 一覧の上から、次の順で確かめます。
unlinkedとfigure_onlyを先に見る … 参照先が決まらなかった数値です。表に無い値を本文に書いていることもあり、ここに重い誤りが入っていることがありますvalue_mismatchとrate_mismatchを確かめる … 報告書の該当の文と表を開き、計算の内容を見ますunit_mismatchとsigfigを確かめる … 記載規程に照らして、研究員に返すかを決めます- 研究員に返す … 指摘の一覧から返すものを選び、管理表の状態を「返却」にします
- 誤った指摘に印を付ける … 指摘が外れていたものは理由を書き、記載規程の表と指示を見直す材料にします
1番目を最初にするのは、比べられなかったものが最も危ないからです。 比べた結果の食い違いは目に見えますが、参照先が決まらなかった数値は、比べられないまま通ってしまいます。
目標は、1本28分です。 指摘の一覧を見て、該当の箇所を報告書で確かめ、研究員に返すまでです。
例外に対処する
| 起きること | 対応 |
|---|---|
| スキャンで作られたPDF | 読み違いが増える旨を一覧に付け、value_mismatch は必ず画像で確かめる |
| 表が画像で貼り付けられている | 読めないセルは unreadable。研究員に元の表を添付してもらう |
| 前の報告書の値を本文で引用している | 報告書の中に参照先が無いので unlinked。引用の番号があれば一覧に表示する |
| 表の単位が列見出しにだけある | 1回目で列見出しの単位をセルに付けて返させる |
| 指数表記(1.2×10³、1.2E+03) | 文字列のまま受け取り、Python で同じ書き方にそろえて比べる |
| 換算表に無い単位 | 比べずに unit_mismatch として審査担当に回す |
| 同じ量が複数の表にある | 候補を並べ、unlinked として回す |
| 1本に数値が300か所を超える | 章ごとに呼び出しを分ける |
| APIの呼び出しが失敗する | 提出用のフォルダに残し、時間をおいて再実行する |
上の3行が、指摘の一覧の質を決めます。 どれも報告書の書き方の問題で、研究員に「表は画像で貼らない」「前報の値は引用の番号を付ける」と頼むほうが、点検の精度を上げるより早く効きます。
記録を残す
- 提出された報告書のPDFと、版・提出日
- 3回の呼び出しで受け取ったJSONの全文
- Python が比べた結果と、そのとき使った記載規程の表と換算表の版
- 指摘の一覧と、審査担当が研究員に返したもの
- 誤った指摘に付けた印と理由
- 再提出の版で指摘が解消したか
3つ目で記載規程の版を残すのは、規程が後から変わるためです。 丸めの許容を変えると過去の指摘の意味が変わり、当時の規程が残っていないと、なぜ指摘したかが説明できません。
04実装レベルの3段階
最小構成では、比べるのは人です。 一覧はできますが、表の値と見比べる作業が残ります。拾い方と結び付け方を確かめるための段階です。 半自動化で、1本80分が45分程度になります。 値違いと単位違いは自動で出ますが、有効数字と増減率は人が確かめます。本格構成で28分になり、この段階が本記事の想定です。 差が大きいのは、記載規程を表にして丸めと増減率まで規則で判定できるようになるからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、どの書き方で参照先が結び付かないかが分かります。報告書の様式を直してから本格構成に進むほうが、unlinked が少なくなります。
05工数削減シミュレーション
導入後 45件 × 28分 ÷ 60 = 21 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 研究所や開発部門で研究報告書・技術報告書を社内審査に通してから登録する運用があり、毎月数十本の報告書を少人数の審査担当が見ている素材・化学・電機・医療機器・建材などの製造業や研究機関。報告書がデータ表とグラフを多く含み、本文に転記した数値の誤り、単位の書き違い、有効数字のそろわなさが審査の差し戻しの理由として繰り返し出ている場合。報告書の様式(表番号・図番号の付け方)がある程度決まっている場合。
- 報告書が月に数本しかなく、審査担当が1本ずつ時間をかけて読める場合。報告書の中身がほとんど文章で、数値の表やグラフが少ない場合。測定の元データから表を作り直して数値そのものの正しさを確かめたい場合(この構成は報告書の中で数値どうしが食い違っていないかを見るもので、測定や計算が正しいかは見ません)。未公開の研究データを社外のクラウドへ出すことが社内規程で認められていない場合。
07最小構成で試す方法
- 先月審査に出た報告書から5本を選ぶ(審査で数値の指摘が多かったものを入れる)
- その5本で、当時審査担当が返した数値の指摘を管理表から抜き出す
- 報告書のPDFを手元のAIサービスに1本ずつ読み込ませる
- 「本文の数値をすべて拾い、それぞれがどの表のどのセルを指しているかを一覧にしてください。数値は書かれたとおりの文字列で、単位も書かれたとおりにしてください。合っているかは判断しないでください」と指示する
- 出てきた一覧を表計算ソフトに貼り、表の値と並べて、当時の指摘が見つかるかを確かめる
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ガバナンス上の注意点
この構成で扱うデータ: 未公開の研究データ、試料の組成や処理の条件、研究の結論。特許出願前の発明が含まれていることもあります。
- 有料の枠を使う … Gemini API の無料の枠では、入力と出力を人が読むことがあり、機密の情報や個人の情報を送らないよう求められています。 有料の枠では、禁止された使い方の検出のために限られた期間だけ記録されるとされています。研究報告書は有料の枠で扱います
- 出願前の報告書の扱いを知財と決める … 外部のサービスに送ってよい報告書の範囲を、知財部門と決めます。決まらない報告書は点検の対象から外します
- 報告書に書き込まない … 指摘は管理表に置き、直すのは研究員です
- 指摘を研究員の評価に使わない … 指摘の件数は報告書の書き方の問題を見るための数字です。研究員ごとの件数を人事の材料にすると、研究員は数値を書かなくなります
- この構成は研究の正しさを保証しない … 見ているのは報告書の中の食い違いだけです。表の値そのものが測定の誤りでも、本文と一致していれば指摘は出ません
- 点検の記録を報告書と同じ扱いで保管する … 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技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| PDFの文章・画像・図・グラフ・表を読めること、PDFが50MBまたは1,000ページまでであること、1ページが258トークン相当であること、アップロードしたファイルが48時間保存されること、PDF以外の形式は純粋なテキストとして扱われグラフや書式の情報が失われること、ページの向きを直しぼやけたページを避けるよう勧められていること | Gemini API: Document understanding | 2026-10-05 |
JSON Schema の一部(enum、required など)に対応した構造化出力、構文として正しいJSONでも意味の正しさは保証されず、アプリケーションの側で値を検証するよう案内されていること | Gemini API: Structured outputs | 2026-10-05 |
| 無料の枠では入力と出力を人が読むことがあり、機密・個人の情報を送らないよう求められていること、有料の枠では禁止された使い方の検出のために限られた期間記録されること | Gemini API 追加利用規約 | 2026-10-05 |
研究の中身が正しいか、どちらの数値が正しいかは、研究員と審査会で判断してください。 本記事は Gemini API の公開ドキュメントで確認できた範囲だけを扱っています。文書管理システムとのつなぎ方は、お使いのシステムの仕様を確かめてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0415)についてのご相談はこちらから。
