Media > AI活用ユースケース > 総務 > 専門学校に実習先から毎月届く手書きの実習評価票を読み取り、学生・評価項目ごとの点数とコメントを成績台帳にそろえて、評価の低い項目と未提出の実習先を拾う

専門学校に実習先から毎月届く手書きの実習評価票を読み取り、学生・評価項目ごとの点数とコメントを成績台帳にそろえて、評価の低い項目と未提出の実習先を拾う

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

実習先の指導者が手書きした実習評価票を読み取り、学生・実習先・評価項目ごとの点数とコメントを成績台帳の形にそろえます。基準を下回る項目のある学生と、評価票が届いていない実習先を、毎週教務の担当に返します。

サマリー
生成AI
ChatGPT/Claude
AIサービス
Azure AI/Google Document AI
連携・自動化
Google Apps Script/Python
対象業界
介護/医療/教育
対象部門
総務
対象業務
データ入力・転記/内容確認・チェック
主な課題
入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
30h/月
AI導入後
9h/月
想定削減
70%
年間削減
252h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 郵送で届いた評価票を開封し、メールで届いたものは印刷する
  2. 実習の配置表に、届いた評価票の学生と実習先に印を付ける
  3. 学科の成績のスプレッドシートを開き、学生の行に評価項目ごとの点数を打ち込む
  4. コメント欄の手書きを読み、要点を備考の列に書き写す
  5. 点数が2以下の項目があれば、付箋を付けて実習担当の教員の机に置く
  6. 月末に配置表を見て、印の付いていない実習先に電話やメールで催促する
  7. 原本を学生ごとのファイルに綴じる
導入後(After)
  1. 人郵送の評価票をスキャンし、メールで届いた画像とあわせて受付フォルダに保存する
  2. 自動数分おきに動く仕組みが新しいファイルを見つける
  3. 自動OCRが欄のキーと値、評価の表、各要素の信頼度を返す
  4. 自動生成AIが、学生・実習先・評価項目ごとの点数とコメントを台帳の形にそろえる。読めない値と書かれていない値を分けて印を付ける
  5. 自動学生名簿と実習の配置表に照らして、学生と実習先を特定する
  6. 自動基準を下回る点数、空欄、読めない欄に印を付ける
  7. 自動「確認待ち」のシートに1枚1行で書き出し、画像へのリンクを添える
  8. 人教務の職員が、印の付いた行を画像と見比べて確かめ、成績台帳へ反映する
  9. 自動毎週、配置表のうち評価票の届いていない学生・実習先と、基準を下回る項目のある学生を一覧にする
  10. 人実習担当の教員が一覧を見て、学生との面談と実習先への確認を決める
各工程の詳しい説明を読む
  1. 郵送で届いた評価票を開封し、メールで届いたものは印刷する
  2. 実習の配置表に、届いた評価票の学生と実習先に印を付ける
  3. 学科の成績のスプレッドシートを開き、学生の行に評価項目ごとの点数を打ち込む
  4. コメント欄の手書きを読み、要点を備考の列に書き写す
  5. 点数が2以下の項目があれば、付箋を付けて実習担当の教員の机に置く
  6. 月末に配置表を見て、印の付いていない実習先に電話やメールで催促する
  7. 原本を学生ごとのファイルに綴じる

(a)低い評価に気づくのが遅い。 3番の打ち込みは届いた順ではなく、手の空いたときにまとめて行います。評価票が届いてから教員が付箋を見るまでに、2週間かかることがあります。

(b)○囲みとチェックの読み違い。 5段階の数字の上に○を付ける書き方では、○が2つの数字にまたがっていることがあります。打ち込む職員ごとに読み方が違い、同じ評価票でも3と4のどちらになるかが人で変わります。

(c)空欄の意味が分からない。 指導者が「この期間では評価できない」として空欄にした項目と、書き忘れた項目が区別できません。空欄を0点として打ち込む職員と、平均で埋める職員がいて、学科ごとに扱いが違います。

(d)未提出に気づくのが月末。 配置表の印は付け忘れがあり、届いているのに未提出として催促することと、届いていないのに気づかないことの両方が起きています。

  1. 【人】 郵送の評価票をスキャンし、メールで届いた画像とあわせて受付フォルダに保存する
  2. 【自動】 数分おきに動く仕組みが新しいファイルを見つける
  3. 【自動】 OCRが欄のキーと値、評価の表、各要素の信頼度を返す
  4. 【自動】 生成AIが、学生・実習先・評価項目ごとの点数とコメントを台帳の形にそろえる。読めない値と書かれていない値を分けて印を付ける
  5. 【自動】 学生名簿と実習の配置表に照らして、学生と実習先を特定する
  6. 【自動】 基準を下回る点数、空欄、読めない欄に印を付ける
  7. 【自動】 「確認待ち」のシートに1枚1行で書き出し、画像へのリンクを添える
  8. 【人】 教務の職員が、印の付いた行を画像と見比べて確かめ、成績台帳へ反映する
  9. 【自動】 毎週、配置表のうち評価票の届いていない学生・実習先と、基準を下回る項目のある学生を一覧にする
  10. 【人】 実習担当の教員が一覧を見て、学生との面談と実習先への確認を決める

6番目の「基準を下回る」は、規則で決めます。 どの点数から面談の対象にするかは学科ごとに違い、年度で変わることもあります。AIには点数を写させるだけにし、基準の判定は台帳の側に置きます。

9番目の一覧が、月末の配置表の見直しを置き換えます。 実習の配置表と届いた評価票を機械が突き合わせるので、印の付け忘れが起きません。

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

構成図
実習評価票(郵送の原本・実習先からのスキャン)
   │  教務がスキャンし、受付フォルダへ保存
   ▼【トリガー】Apps Script の時間主導型トリガー(数分おき)
Google Apps Script ── 新しいファイルを見つけ、処理待ちへ
   ▼
Google Document AI(Form Parser)
   │   欄のキーと値、評価の表、各要素の信頼度
   ▼
Claude API ── 評価項目ごとの点数とコメントを台帳の形にそろえる
   ▼
Google Apps Script ── 学生名簿・配置表との照合/基準の判定
   ▼
「確認待ち」シート(印と画像へのリンク)
   ▼
【教務が確かめて成績台帳へ反映】
   ▼
毎週の一覧(未提出・基準を下回る学生)→ 実習担当の教員
役割想定する製品代替候補
OCRGoogle Document AI(Form Parser)Azure AI Document Intelligence
生成AIClaude API(評価票の値を台帳の形にそろえる)OpenAI API
連携Google Apps Script(フォルダの確認、OCRとAIの呼び出し、シートへの書き込み)Python
差異計算Google Apps Script(配置表との照合と基準の判定)Python
保管Google ドライブ(評価票の画像と読み取り結果)学内のファイルサーバー

新しく足すのは、「確認待ち」のシートと、評価票の書式の見直しです。 書式の見直しは、この構成でいちばん効く準備です(第7章の前処理)。

土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出するとされ、Form Parser の言語の一覧で日本語(ja)は手書きに対応する言語として示されています。評価票の上部の「学生氏名」「実習先」「実習期間」はキーと値のペアとして、評価項目と点数は表として読めます。

Form Parser の注意書きのうち、この題材に効くのは3つです。 1つ目は、値が空のキーと値のペアは確実には読み取れないとされていること。2つ目は、表はセルが行や列にまたがらない単純なものだけが対象とされていること。3つ目は、チェックボックスのモデルはラジオボタンの読み取りに対応しないとされていることです。5段階の数字を○で囲む書式は、3つ目に当たると考えておきます。

処理する場所は、us・eu やシンガポール(asia-southeast1)などから選び、日本のリージョンはありません。 学生の氏名と成績が国外で処理されることになるため、導入前に学校の規程と照らします(第13章)。

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

Step1

処理の起点を決める

受付フォルダへの保存を、Apps Script の時間主導型トリガーで数分おきに見に行きます。 インストール型トリガーの一覧に、ドライブのフォルダへのファイルの追加を起点とするものはありません。そのため、最短1分ごとから設定できる時間主導型のトリガーで新しいファイルを探します。実行の時刻はわずかにずれることがあるとされています。

毎週の一覧は、別の時間主導型トリガーで週に1回作ります。 読み取りと切り離しておくと、読み取りが止まっていても未提出の一覧は出ます。

処理が終わったファイルは処理済みのフォルダへ移します。移すのは、確認待ちのシートへの書き出しまで成功したときだけです。

Step2

入力データを集める

データ中身取得元
評価票の画像郵送の原本のスキャン、または実習先から届いた画像。届いた日受付フォルダ
読み取り結果欄のキーと値、評価の表のセル、全テキスト、各要素の信頼度Google Document AI
学生名簿学籍番号、氏名、学科、学年学校のスプレッドシート
実習の配置表学生ごとの実習先・実習期間・担当教員学校のスプレッドシート
評価項目の表学科ごとの評価項目の並びと番号、面談の対象とする基準の点数教務が用意する表

質を決めるのは、下の2つです。 配置表が無いと、どの評価票が届いていないかを機械が判断できません。 評価項目の表が無いと、学科ごとに違う項目の並びを取り違えます。

評価票の右上に、学籍番号を印字して実習先へ渡します。 学生名の手書きだけで照合すると、同姓同名や旧字体で外れます。学校が印字した番号なら、読み取りの信頼度が高く、照合の鍵になります。

Step3

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

取るものどこから何に使うか
欄のキーと値pages[].formFields(fieldName/fieldValue)学籍番号、学生氏名、実習先、実習期間、指導者名
評価の表pages[].tables の headerRows/bodyRows の cells評価項目ごとの点数
全テキストtext と各要素の textAnchorコメント欄の全文
信頼度と位置各要素の layout(confidence・boundingPoly)読めない値の判定と、画像の該当箇所の切り出し

チェックボックスは、□に印を付ける書式ならフォームのフィールドの valueType が filled_checkbox/unfilled_checkbox で返ります。 表の中のチェックボックスは ✓ や ☐ の文字として返るとされています。○囲みはこのどちらにも当たらないため、読み取りの対象から外します。

値は text から写します。 text が文書の文字の source of truth で、他の要素は textAnchor でそこを指すとされています。表のセルの値も textAnchor の範囲で text から引き、セルの外の文字を足しません。

Step4

AIへ渡す前に整形する

  1. 評価票の書式を見直す(導入の前に1回) … 点数は数字を書き入れる欄にし、○で囲む書式をやめます。表は結合したセルの無い単純な格子にします。右上に学籍番号を印字します
  2. 形式の確認 … PDF、TIFF、JPEG、PNG などの対応形式であることを確かめます
  3. 解像度の確認 … 公式のページでは、スキャンは最低200dpi、300dpi以上が一般に最もよいとされています。実習先がスマートフォンで撮った画像は下回ることがあるため、低いものは要目視にします
  4. ページ数とサイズ … Form Parser のオンラインの処理は1回の要求で15ページまで、ファイルは40MBまでです。実習先がまとめてスキャンしたものは学生ごとに分けます
  5. 向きの補正 … 横向きや逆さの画像を直してから渡します
  6. 重複の検知 … 同じ学籍番号・同じ実習期間の評価票が直近にあれば、二重の送付として印を付けます

1番目が、この構成でいちばん効きます。 書式を変えずにAIを足しても、○囲みとセルの結合が残る限り、人が画像を見る行は減りません。 書式の変更は実習先への依頼になるため、年度の切り替えに合わせて行います。

Step5

AIに処理させる

させるのは、OCRの結果を評価項目の表に当てはめ、それぞれに状態の印を付けることです。

台帳の項目させること判断できないときの扱い
学籍番号・学生氏名書かれたとおりに写す信頼度が低ければ unreadable
実習先・実習期間・指導者名写す書かれていなければ missing
評価項目ごとの点数評価項目の表の番号に合わせて、書かれた数字を写す空欄は missing、読めなければ unreadable
点数の欄の手書きの注記「評価できず」「保留」などの書き込みを写すそのまま写す
コメント全文を写す要約しない
個人の特定につながる記述実習先の利用者・患者の氏名や病室など、学生以外の個人を特定しうる記述があるかを示すあれば third_party_info を true

状態の印は、ok・missing・unreadable・ambiguous の4つです。 2つの数字にまたがる書き込みや、訂正の線が引かれた数字は ambiguous にします。

させないこと理由
空欄の点数を埋める平均や前月の点数で埋めると、保留と書き忘れの区別が消える
点数の合計・平均の計算計算は台帳の式で行う
基準を下回るかの判定基準は学科と年度で変わる。規則で判定する
コメントの要約・言い換え指導者の言葉を変えない
学生の評価・指導方針の提案教員が決めること

1行目がいちばん起きやすい失敗です。 空欄のある評価票を渡すと、ほかの項目の傾向から「おそらく3」と埋めてくることがあります。埋めた点数は、基準の判定にそのまま使われます。

最後の行のコメントについての扱いも大事です。 実習のコメントには、実習先の利用者や患者についての記述が混ざることがあります。台帳に写す前に人が見て、必要なら伏せるための印です。

Step6

指示内容を固定する

あなたは専門学校の教務課の職員で、実習先から届いた評価票を
成績台帳の形に書き写す立場です。
OCRが返した読み取り結果だけを見て、書かれているとおりに写してください。

【写す項目】
1. 学籍番号・学生氏名
2. 実習先・実習期間・指導者名
3. 評価項目ごとの点数(評価項目の表の番号に合わせる)
4. 点数の欄の手書きの注記(「評価できず」「保留」など)
5. コメント(全文)

【status の選び方】
- ok ......... 値が読み取れており、その項目として解釈できる
- missing .... 値が無い。空欄の場合も missing
- unreadable . 文字は検出されているが信頼度が低く、値として確定できない
- ambiguous .. 値の候補が複数ある(2つの数字にまたがる、訂正線がある等)
迷ったときに ok を選ばないでください。

【厳守事項】
- 点数が書かれていなければ missing にしてください。
  他の項目の点数、前月の点数、平均から埋めないでください。
- 点数は書かれた数字をそのまま value に入れてください。
  1〜5の範囲外の数字が書かれていても、直さずにそのまま写してください。
- 合計・平均の計算、基準を下回るかの判定はしないでください。
- コメントは要約せず、全文を写してください。言い換えないでください。
- コメントに、学生以外の個人(実習先の利用者・患者・職員)の氏名や、
  その人を特定しうる記述があれば third_party_info を true にしてください。
  その記述を evidence に写さないでください。
- 学生の評価や指導の方針についての意見は書かないでください。
- evidence には、判定の根拠にした文字列をそのまま写してください。
- confidence は OCR が返した値をそのまま入れてください。
- 評価票でない書類と判断した場合は、写さずに document_type に種類を書いてください。

【読み取り結果】{ocr_result}
【この学科の評価項目の表】{item_master}

「範囲外の数字を直さない」を書いておくのは、読み違いを見つけるためです。 5段階の評価で「8」と読まれたなら、それは「3」の読み違いかもしれません。AIが黙って3に直すと、読み違いがあったこと自体が消えます。 範囲外の値は、後段の規則で要目視にします。

third_party_info の評価は、AIに任せきりにしません。 印が付かなかったコメントも、成績台帳に写す前に職員が一度は読みます。印は、読む順番を決めるためのものです。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude API の構造化出力では、output_config.format に json_schema を渡してこの形に固定し、オブジェクトには additionalProperties: false を付けます。

{
  "file_id": "",
  "document_type": "practicum_evaluation",
  "student": {
    "student_id": { "status": "ok", "value": "", "confidence": 0, "evidence": "" },
    "name": { "status": "ok", "value": "", "confidence": 0, "evidence": "" }
  },
  "site": { "name": "", "period": "", "supervisor": "" },
  "scores": [
    { "item_no": 1, "status": "ok | missing | unreadable | ambiguous",
      "value": "", "note": "", "confidence": 0, "evidence": "" }
  ],
  "comment_fulltext": "",
  "third_party_info": false
}

構造化出力を使う理由は3つです。 1つ目は、評価項目の番号で点数を並べられることです。自由文では、項目の順がずれます。2つ目は、status を基準の判定の前にふるいとして使えることです。ok 以外を含む行は、判定の前に人へ回します。3つ目は、third_party_info を必ず返させられることです。

公式のページでは、列挙の値の大文字・小文字が変わることがあるとされているため、比較は大文字・小文字を区別せずに行います。 max_tokens で途切れた出力はスキーマに合わないことがあるため、検証に通らないものは要目視で載せます。

Apps Script が付ける印は次のとおりです。

印条件
基準を下回るok の点数のうち、評価項目の表の基準より低いものがある
範囲外点数が1〜5の範囲外
保留・空欄missing の点数がある、または注記がある
要目視unreadable・ambiguous を含む/解像度が低い/third_party_info が true
照合できない学籍番号が名簿に無い、または配置表の実習先と一致しない
Step8

システムへ連携する

つなぎ先方式内容
受付フォルダApps Script の時間主導型トリガー新しいファイルを見つける
Google Document AIAPI呼び出し欄のキーと値、評価の表、信頼度
Claude APIAPI呼び出し評価票の値を台帳の形にそろえる
学生名簿・配置表スプレッドシートの読み取り学生と実習先の特定、未提出の判定
確認待ちのシートスプレッドシートへの書き込み1枚1行と画像へのリンク
成績台帳職員が確認した行だけを反映学科ごとの成績のスプレッドシート

成績台帳へは、職員が確かめた行しか反映しません。 確認待ちのシートと台帳を分けるのは、未確認の点数が評定の計算に入らないようにするためです。

学生名簿と配置表はAIに渡しません。 照合は Apps Script の側で行います。AIに渡すのは、1枚の評価票の読み取り結果と、その学科の評価項目の表だけです。

Step9

人が確認する

  1. 要目視と照合できない行を先に見る … 画像の該当箇所と見比べ、点数と学籍番号を直します
  2. 保留・空欄の行を見る … 注記を読み、実習先に確かめるかを決めます
  3. コメントを読む … third_party_info の印の有無にかかわらず、台帳に写す前に読み、学生以外の個人の記述があれば伏せます
  4. 印の無い行を流し見る … 点数の並びに違和感が無いかを見て、台帳へ反映します
  5. 基準を下回る学生の一覧を教員に渡す … 面談をするかは教員が決めます

3番目を省かないでください。 成績台帳は複数の教員が見るもので、実習先の利用者の記述がそのまま残ると、見る必要のない人の目に触れます。

4番目で「違和感」を見るのは、AIの読み取りの誤りが点数の並びに出やすいからです。 全項目が同じ点数、1項目だけが極端に低い、前月から急に下がった、といった並びは、読み取りの誤りか、本当に伝えるべき変化のどちらかです。どちらであっても教員に知らせる価値があるため、画像で確かめてから台帳へ反映します。

目標は、180枚をならして1枚3分です。 印の無い行は1分ほどで済み、時間を使うのは要目視とコメントの伏せ字が要る行です。

Step10

例外に対処する

起きること対応
○囲みの旧書式の評価票が届く点数は ambiguous として要目視。実習先に新しい書式を送り直す
学籍番号の印字が無い(実習先が自作の書式で書いた)氏名と配置表で照合し、一致しなければ照合できないとして人へ
1枚に複数の学生の評価が書かれている学生ごとの評価票に分けて書き直してもらうよう実習先に依頼する
評価項目の数が評価項目の表と合わない学科や年度の取り違えを疑う。人が確かめる
コメント欄が裏面や別紙に続く全ページを1つの評価票として扱う
配置表に無い実習先から届く配置の変更が配置表に反映されていないかを教務が確かめる
実習先の画像が暗い・傾いている解像度と向きを確かめ、読めなければ原本の郵送を依頼する
OCRやAIが応答しない受付フォルダに残し、次の回で再実行する

上の2行は、書式の切り替えの時期にまとまって起きます。 切り替えの前後の数か月は、旧書式の評価票が混ざるものと見込んでおきます。

未提出の催促は、自動で送りません。 毎週の一覧で未提出と出ても、実習先の指導者が多忙な時期であったり、実習が延長になって評価の時期がずれていたりします。催促するかどうか、誰から連絡するかは、実習先との関係を持っている担当教員が決めます。 一覧には、実習期間の終了日から何日たっているかを並べ、判断の材料にします。

Step11

記録を残す

  • 評価票の画像と、届いた日・経路(郵送/メール)
  • OCRが返したJSONの全文
  • AIの出力(scores、status、evidence、confidence、third_party_info)
  • 職員が直した点数の記録 … どの項目を、何から何に直したか
  • コメントの伏せ字の記録(伏せた箇所と理由。伏せた文字そのものは残さない)
  • 毎週の一覧と、教員が行った面談・実習先への確認の記録

4つ目は、書式の見直しの材料になります。 特定の項目で直しが続くなら、その欄の大きさや位置に原因があります。

原本は、これまでどおり学生ごとのファイルに綴じます。 画像や台帳を原本の代わりにするかは、この構成とは別に学校が決めることです。

04実装レベルの3段階

最小構成:黒塗りの写しを手でAIの画面に貼り、点数とコメントを写させる / 1枚ごとの読み取りの確認
半自動化:上記+OCRのAPIを呼び、確認待ちのシートに1枚1行で書き出す / 読み取りと台帳の形へのあてはめ
本格構成:上記+受付フォルダを起点に自動で動かし、名簿・配置表と照合し、基準の判定と毎週の一覧まで出す / 読み取りから未提出と低評価の拾い出しまで

半自動化で、②と③の打ち込みがほぼ無くなります。 配置表の印付けと未提出の確認は手作業のまま残ります。本格構成で照合と一覧が自動になり、1枚3分になります。 この段階が本記事の想定です。 半自動化の前に、評価票の書式を変えてください。 書式を変えないまま進めると、ambiguous の行が多すぎて確認の時間が減りません。 本格構成に進む前に、実習の配置表を「その日に直す」運用を1か月続けてください。 未提出の一覧は配置表との突き合わせで出るため、配置の変更や実習の延長が配置表に入っていないと、届くはずのない評価票が未提出として毎週並びます。 一覧が信用されなくなると、本当の未提出も見られなくなります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 看護・介護・リハビリ・保育などの専門学校で、学生が数十の病院・施設に分かれて実習し、実習先の指導者が手書きした評価票が毎月百通以上届く学校。教務の職員が評価票を1枚ずつ見ながら成績のスプレッドシートに点数を打ち込み、評価の低い学生への面談が遅れている場合。どの実習先の評価票がまだ届いていないかを、担当教員の記憶で追っている場合。
向いていない
  1. 実習先が数か所で、評価票が月に数十通しか届かない場合。実習先の評価をすでにWebのフォームで受け取っている場合。18歳未満の生徒が在籍する課程(高等課程など)の評価票を扱う場合(この構成の対象から外す)。なお、成績の評定と、評価の低い学生にどう指導するかは教員が決めることで、この構成では代替できません。

07最小構成で試す方法

  1. 先月届いた評価票から20枚を選ぶ(○囲みの書式、空欄のある評価票、コメントの長い評価票を混ぜる)
  2. 学生の氏名と、コメント中の個人の記述を黒塗りにした写しを作る
  3. 手元のAIサービスに1枚ずつ画像を貼り付ける。使うのは、18歳未満の利用を規約で禁じていないサービスに限る
  4. 「この評価票の、評価項目ごとの点数とコメントを書かれたとおりに写してください。空欄は空欄、読めない数字は読めないと書いてください。埋めたり計算したりしないでください」と指示する
  5. 出てきた点数を、成績台帳に打ち込んだ点数と並べる
出てきた内容判断
点数とコメントが台帳と一致したOCRのAPIとシートの連携に進む
空欄を埋めて返した指示の書き方で直る。構成は有効
○囲みの点数が読めない書式の見直しが先。 AIの問題ではない

3行目が出たら、書式を変えるための材料にしてください。 実習先に書式の変更を頼むとき、「読み違いが起きている」という根拠になります。

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

問題対策
空欄の点数を埋める補完を禁じる。空欄は missing で、保留と書き忘れを人が分ける
○囲みの点数を読み違える書式を数字の記入に変える。 旧書式は ambiguous で人へ
セルの結合した表で列がずれる表は単純な格子に。 Form Parser は結合セルの無い表が対象
範囲外の点数を黙って直す直させない。範囲外は規則で要目視にする
学生名の手書きで照合が外れる学籍番号を印字して渡す
実習先の利用者の記述が台帳に残るthird_party_info で読む順番を決め、全件を人が読んでから写す
未提出の判定がずれる配置表の変更を、配置を変えたその日に反映する
基準の判定をAIに任せる基準は学科と年度ごとに表で持ち、規則で判定する
18歳未満の生徒の評価票が混ざる対象の課程を限る。 混ざったら処理せずに戻す

上の3行が、この構成の失敗のほとんどです。 どれも、点数が「それらしく」入ってしまうことから起きます。点数は評定と面談の判断にそのまま使われるので、読めないものは読めないまま人に渡すことを最初に決めます。

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

この構成で扱うデータ: 学生の氏名・学籍番号・実習先・評価の点数と指導者のコメント、そしてコメントに混ざりうる実習先の利用者・患者についての記述です。

  1. 処理する場所を確かめる … Document AI に日本のリージョンはありません。学生の氏名と成績を国外で処理してよいかを、学校の個人情報の取り扱いの規程に照らして、導入前に決めてください
  2. 対象を18歳以上の学生の課程に限る … 生成AIのサービスには、18歳未満の利用(または18歳未満が利用しうるサービスでの利用)を規約で制限しているものがあります。この構成は Claude API を使い、18歳未満の生徒が在籍する課程の評価票を対象から外します。 採用するサービスの規約は、導入の時点で確かめてください
  3. 学生以外の個人の記述を台帳に残さない … コメントに実習先の利用者・患者の記述があれば、台帳に写す前に伏せます。実習先の守秘の取り決めにも関わります
  4. 名簿と配置表をAIに渡さない … 照合は Apps Script の側で行います
  5. 成績の評定と指導は教員が行う … この構成が出すのは、書かれた点数と、書かれていない・読めない欄の区別だけです。基準を下回る学生への対応は、教員が学生と実習先の事情を聞いて決めます
  6. 閲覧できる人を絞る … 受付フォルダと確認待ちのシートは、教務と実習担当の教員に限ります

誤りが起きた場合のリスクは、読めない点数が埋まって評定や面談の判断を誤らせることと、学生以外の個人の情報が台帳に広がることの2つです。 前者は補完の禁止と status のふるいで、後者は全件の目視で防ぎます。

10まず何から始めるか

1週目:対象と処理する場所を決める

対象とする学科と課程(18歳以上の学生に限る)を決め、学生の情報を国外のリージョンで処理してよいかを学校の規程に照らして確かめます。

2週目:20枚で試す

先月の評価票から20枚を選び、黒塗りの写しを手元のAIサービスに貼って、点数とコメントを写させます。空欄を埋めていないか、○囲みをどう読んだかを最優先で見ます。

3週目:評価票の書式を見直す

点数を数字の記入にし、表を単純な格子にし、学籍番号を印字します。記入例を1枚付けて、次の実習から実習先に送ります。 あわせて、学科ごとの評価項目の表と基準の点数を作ります。

4週目:受付フォルダから確認待ちのシートまでをつなぐ

Apps Script の時間主導型トリガーで受付フォルダを見に行き、OCRとAIを呼んで、確認待ちのシートに1枚1行で書き出すところまで作ります。この時点では基準の判定と一覧を出さず、読み取りだけを回します。

2か月目: 名簿と配置表との照合、基準の判定、毎週の一覧を足します。3か月目以降: 1枚10分が何分になったかを実測します。低い評価の学生に、評価票が届いた週のうちに教員が気づけるようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-12/最終更新:2026-10-13
確認した内容情報源確認日
Form Parser がキーと値のペア、チェックボックス、表を抽出し、日本語(ja)が手書きに対応する言語として示されていること(原文を取得して確認)Google Cloud: Processor list2026-10-12
値の入っていないキーと値のペアを確実には読み取れないこと。表はセルが行や列にまたがらない単純なものが対象であること。チェックボックスのモデルがラジオボタンの読み取りに対応しないことGoogle Cloud: Form Parser2026-10-12
text が文字の source of truth で、ほかの要素は textAnchor で指すこと。formFields、表の cells、layout の信頼度。フォームのチェックボックスが filled_checkbox/unfilled_checkbox で、表の中では ✓ や ☐ の文字で返ることGoogle Cloud: Handle the processing response2026-10-12
Form Parser のオンラインの処理が15ページまで、ファイルが40MBまでであることGoogle Cloud: Document AI quotas and limits2026-10-12
対応形式に PDF、TIFF、JPEG、PNG などが含まれること。スキャンは最低200dpiが望ましく300dpi以上が一般に最もよいことGoogle Cloud: Supported files2026-10-12
マルチリージョンが us と eu で、日本のリージョンが一覧に無いことGoogle Cloud: Regional and multi-regional support2026-10-12
output_config.format に json_schema を渡すこと。additionalProperties: false が必要なこと。列挙の値の大文字・小文字が変わりうること。max_tokens で途切れた出力がスキーマに合わないことがあることClaude API: Structured outputs2026-10-12
時間主導型のトリガーが最短1分ごとから月1回まで設定でき、実行の時刻がわずかにずれることがあること。インストール型トリガーの一覧にドライブのフォルダへのファイルの追加を起点とするものが無いことApps Script: Installable triggers2026-10-12

成績の評定、評価の低い学生への指導、実習先との守秘の取り決めは、教員と学校の規程に沿って決めてください。 本記事は各製品の公式ページで確認できた範囲だけを扱っています。

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

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

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

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