特許・商標の年金管理で特許事務所から届く紙の納付案内を読み取り、権利番号・納付期限・金額を年金台帳と照らして、期限の近いものと台帳との食い違いを拾う
特許事務所から届く紙の年金・更新の納付案内を読み取り、権利番号・年分・納付期限・金額を年金台帳と照らします。期限の近いもの、台帳と期限や年分が食い違うもの、台帳に無い権利を拾い、事業部への維持の確認に回します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/士業/製造
- 対象部門
- 知財
- 対象業務
- 内容確認・チェック/台帳・マスタ管理
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 郵便で届いた案内を開封し、スキャンして共有フォルダに保存する
- 担当が案内を1件ずつ見て、年金台帳で権利番号を探す
- 案内の年分・納付期限・金額を、台帳の記録と見比べる
- 食い違いがあれば付箋を付け、事務所に電話かメールで確かめる
- 台帳に案内の受領日と金額を書き写す
- 期限の近いものを拾い、事業部に維持するかの確認を頼むメールを書く
- 事業部の返事を受けて、事務所への回答書の「納付する」「放棄する」に印を付けて返送する
- 人案内を開封し、スキャンして共有フォルダに保存する(1通の案内を1つのPDFにする)
- 自動Python のプログラムが1時間おきに共有フォルダを確かめ、新しいPDFを取り出す
- 自動Google Document AI の Form Parser が、案内の欄のキーと値、一覧の表、回答欄のチェック、それぞれの信頼度を返す
- 自動OpenAI API が、読み取り結果を権利ごとの行に、書かれたとおりに写す
- 自動Python が、権利番号で年金台帳を引き、年分と納付期限を台帳と比べ、期限までの日数を数える
- 自動「照合結果」の一覧に権利ごとの行を書き、食い違いと台帳に無い権利には印を付け、期限までの日数の短い順に並べる
- 人担当が、印の付いた行を確かめ、事務所に問い合わせる。印の無い行は流し見て台帳に受領日を反映する
- 人担当が、期限の近い順に、事業部への維持の確認を送る
各工程の詳しい説明を読む
- 郵便で届いた案内を開封し、スキャンして共有フォルダに保存する
- 担当が案内を1件ずつ見て、年金台帳で権利番号を探す
- 案内の年分・納付期限・金額を、台帳の記録と見比べる
- 食い違いがあれば付箋を付け、事務所に電話かメールで確かめる
- 台帳に案内の受領日と金額を書き写す
- 期限の近いものを拾い、事業部に維持するかの確認を頼むメールを書く
- 事業部の返事を受けて、事務所への回答書の「納付する」「放棄する」に印を付けて返送する
(a)期限の近いものの確認が遅れる。 案内は期限の数か月前に届きますが、担当が台帳との照合を終えるまで、事業部への確認は始まりません。 照合が月末にまとまると、期限まで1か月を切った権利の確認が後回しになります。
(b)食い違いに気づかない。 案内の年分が台帳より1年進んでいる、期限が1か月ずれている。台帳の書き写しに気を取られて、見比べを省いてしまうことがあります。食い違いは、どちらかの記録の誤りを示しています。
(c)台帳に無い権利の案内。 他の事務所から移ってきた権利や、台帳への登録が遅れた権利の案内が届くことがあります。探しても見つからない案内は後回しになり、そのまま期限が近づきます。
(d)一覧形式の案内の書き写し。 数十件が1枚に並んだ案内は、1行ずつ台帳を探して書き写すので、1枚で1時間を超えます。 行を飛ばすと、その権利だけ確認が始まりません。
- 【人】 案内を開封し、スキャンして共有フォルダに保存する(1通の案内を1つのPDFにする)
- 【自動】 Python のプログラムが1時間おきに共有フォルダを確かめ、新しいPDFを取り出す
- 【自動】 Google Document AI の Form Parser が、案内の欄のキーと値、一覧の表、回答欄のチェック、それぞれの信頼度を返す
- 【自動】 OpenAI API が、読み取り結果を権利ごとの行に、書かれたとおりに写す
- 【自動】 Python が、権利番号で年金台帳を引き、年分と納付期限を台帳と比べ、期限までの日数を数える
- 【自動】 「照合結果」の一覧に権利ごとの行を書き、食い違いと台帳に無い権利には印を付け、期限までの日数の短い順に並べる
- 【人】 担当が、印の付いた行を確かめ、事務所に問い合わせる。印の無い行は流し見て台帳に受領日を反映する
- 【人】 担当が、期限の近い順に、事業部への維持の確認を送る
6番目が、この設計の分かれ目です。 照合結果を期限までの日数の短い順に並べ、担当はその順に事業部への確認を始めます。照合が全部終わるのを待たずに、期限の近い権利から確認が動きます。
年金台帳への反映と、事務所への回答は、人が行います。 読み取った期限がそのまま台帳の期限になる経路は作りません。
02今回想定するシステム構成
年金・更新の納付案内(紙、特許事務所から郵送) │ 開封・スキャン(1通1PDF) ▼【トリガー】Python の定時実行(1時間おき) Python ── 新しいPDFを取り出す ▼ Google Document AI(Form Parser) │ 欄のキーと値、一覧の表、回答欄のチェック、信頼度 ▼ OpenAI API ── 権利ごとの行に、書かれたとおりに写す ▼ Python ── 年金台帳の引き当て/年分と期限の比較/期限までの日数 ▼ 「照合結果」一覧(期限までの日数の短い順、印の付いた行は先頭へ) ▼ 【担当が食い違いを確かめる/事業部への維持の確認を送る】 ▼ 年金台帳への反映と事務所への回答(人の操作)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence |
| 生成AI | OpenAI API(案内の欄と一覧を権利ごとの行に写す) | Claude API、Gemini API |
| 連携 | Python(フォルダの確認、各APIの呼び出し、一覧への書き込み) | Google Apps Script |
| 差異計算 | Python(台帳の引き当て、年分と期限の比較、日数の計算) | Google Apps Script |
| 保管 | 社内のファイルサーバー(案内のPDFと読み取り結果) | 知財管理のシステムの文書の欄 |
新しく足すのは、事務所の一覧と、権利番号の書き方の読み替え表です。 事務所ごとに「特許第1234567号」「JP1234567」「1234567」と書き方が違うので、権利の種類と番号の数字だけに直す読み替えを表にします。直すのは Python の規則で、AIには書かれたとおりに写させます。
土台は Document AI の Form Parser です。 公式のページでは、OCRのテキストに加えてキーと値のペア、チェックボックス、表、一般的なエンティティを取り出すとされ、プロセッサの一覧で日本語(ja)は手書きに対応する言語として示されています。案内の「納付期限」「登録番号」はキーと値のペアとして、一覧形式の案内は表として、回答欄はチェックボックスとして読めます。
一般的なエンティティの中には、日付(date_time)と金額(price)、番号(id)があります。 公式のページでは、Form Parser は11種類の一般的なエンティティを取り出すとされています。期限と金額の候補を、キーと値とは別の経路でも拾えます。
処理する場所は、リージョンの一覧から選びます。 マルチリージョンの us と eu、シンガポール(asia-southeast1)などがあり、日本のリージョンはありません。 案内には出願前の情報は載りませんが、どの権利を維持するかの検討は自社の事業の方向を示すので、国外で処理してよいかを導入前に確かめます(第13章)。
03どうやって実装するのか
処理の起点を決める
Python のプログラムを1時間おきに動かし、複合機の保存先の共有フォルダに新しいPDFがあるかを確かめます。 動かすのは社内のサーバーの定時実行の仕組みで、平日の業務時間だけにします。
1時間おきで足りるのは、案内が期限の数か月前に届くためです。 分単位の速さは要りませんが、1日の終わりにまとめると、その日に届いた期限の近い案内の確認が翌日になります。 届いた日のうちに照合結果に載る間隔にします。
処理が終わったPDFは「処理済み」のフォルダに移します。 移すのは照合結果への書き込みが終わったときだけで、保存先のフォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 納付案内のPDF | スキャンした案内の画像、受領日 | 複合機の保存先の共有フォルダ |
| 読み取り結果 | 欄のキーと値、一覧の表のセル、回答欄のチェック、一般的なエンティティ、信頼度と位置 | Google Document AI |
| 年金台帳 | 権利番号、権利の種類、次の納付期限と年分、担当の事業部、維持の方針、管理する事務所 | 知財管理のシステムから出したスプレッドシート |
| 事務所の一覧 | 事務所名、管理を頼んでいる権利の範囲、問い合わせ先 | 新しくまとめる表 |
| 権利番号の読み替え表 | 事務所ごとの番号の書き方と、権利の種類・数字への直し方 | 新しくまとめる表 |
| 確認の決まり | 期限まで何日で事業部に確かめるか、何日で上席に知らせるか | 自社で用意する表 |
質を決めるのは、年金台帳の「管理する事務所」の列です。 案内を送ってきた事務所と台帳の事務所が違う権利は、事務所の移管の記録が台帳に反映されていないことを示します。
確認の決まりは、仕分けの基準にします。 たとえば、期限まで90日を切ったら事業部に確かめ、30日を切ったら上席にも知らせる、という日数を表にします。日数は自社の事業部の返事の早さで決めます。
データの取得方法を決める
Python は、Document AI のクライアントライブラリで Form Parser のプロセッサに案内のPDFを送ります。オンラインの処理は1回の要求で最大15ページなので、ふつうの案内は1回で足ります。一覧が15ページを超える案内は、ページで分けて送ります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 見出しの欄 | 各ページの formFields(fieldName/fieldValue) | 事務所名、案内の日付、回答の期限、1件の案内の権利番号・年分・期限・金額 |
| 一覧の表 | 各ページの tables(headerRows/bodyRows のセル) | 一覧形式の案内の、権利ごとの行 |
| 回答欄のチェック | fieldValue の valueType(filled_checkbox/unfilled_checkbox) | 事務所が事前に印を付けた回答欄の有無 |
| 一般的なエンティティ | 応答の entities(date_time・price・id など) | 期限と金額の候補をもう一つの経路で拾う |
| 信頼度と位置 | 各要素の layout の confidence・boundingPoly | 読めた数字とかすれた数字の区別、案内の該当箇所 |
公式のページでは、Form Parser の表のセルの rowSpan と colSpan は常に1とされています。一覧形式の案内で、権利の名称が長く2行に折り返されていると、2行目が番号や期限の空いた行として返ります。これを前の行の続きとしてつなげるのが、次の生成AIの仕事の1つです。
年金台帳と読み替え表は、Python が読み込むだけです。権利番号は文字列のまま扱い、先頭の0や記号が落ちないようにします。
AIへ渡す前に整形する
- 形式の確認 … 公式の対応形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などです。複合機の保存はPDFにそろえます
- 解像度の確認 … 公式のページでは、スキャンは最低200dpiが望ましく、300dpi以上が一般に最もよいとされています。一覧形式の案内は字が小さいので、300dpiで取ります
- 事務所の決定 … 案内の見出しの事務所名を読み取り結果から決め、事務所の一覧と読み替え表のどの行を使うかを決めます
- ページの分割 … 15ページを超える一覧は、ページで分けて送ります
- 重複の確認 … 同じ権利・同じ年分の案内がすでに照合結果にあれば、再送か、内容の訂正かを確かめる印を付けます
- 同封物の外し … 請求書や回答書の返信用の用紙は、照合の対象から外します
5番目を軽く見ないでください。 事務所は回答が無いと、期限の前にもう一度案内を送ってきます。同じ権利の2通目を新しい案内として数えると、事業部に同じ確認を2回送ることになります。 2通目は「督促」として、むしろ優先して扱います。
AIに処理させる
させるのは、読み取り結果を権利ごとの行に書かれたとおりに写すことと、表が崩れたときに行をつなぎ直すことです。 権利番号の読み替えも、台帳との比較も、期限までの日数も、Python の規則で行います。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 見出しの写し | 事務所名、案内の日付、回答の期限 | 読めなければ unreadable |
| 権利番号の写し | 書かれたとおりの番号と、権利の種類の書き方 | 読めない桁があれば unreadable |
| 年分の写し | 「第5年分」「第4年分〜第6年分」など書かれたとおり | 空欄なら blank |
| 期限と金額の写し | 納付期限、特許庁に納める額、手数料を別々に | 読めない桁があれば unreadable |
| 行のつなぎ直し | 2行に折り返された名称を、1つの権利の行に戻す | 戻せなければ table_broken |
| 案内の種類 | 年金の案内、更新の案内、督促、期限経過の案内 | 決められなければ unknown |
6行目が、AIを使う理由の1つです。 事務所によって「再度のご案内」「納付期限経過のお知らせ」「追納のご案内」と書き方が違い、本文の言い回しから案内の種類を決めるのは、決まった規則では書きにくい作業です。期限を過ぎた権利の案内は、照合結果の先頭に出します。
| させないこと | 理由 |
|---|---|
| 読めない番号や期限をそれらしく決める | 別の権利の期限として台帳に入る |
| 権利番号の書き方を直す | 直し方は事務所ごとの読み替え表で決める |
| 期限を計算する、期限と年分の食い違いを片方に寄せる | どちらが正しいかは事務所と確かめる |
| 金額の内訳を推す、合計から逆算する | 書かれた金額だけを写す |
| 維持するか、追納できるかを判断する | 事業部・知財部と弁理士が決める |
3行目が、この題材でいちばん起きやすい失敗です。 「第6年分」と書かれた案内の期限が、AIの知っている数え方と合わないとき、AIはもっともらしい側に期限を直して写しがちです。 直した瞬間に、事務所の誤記か台帳の誤りかを見つける手がかりが消えます。
指示内容を固定する
あなたは知財部の年金管理の担当で、特許事務所から届いた
納付案内の読み取り結果を、権利ごとの行に写す立場です。
OCRが返した結果だけを見て、書かれていることを写してください。
【写す項目】
見出し:office_name、notice_date_text、reply_deadline_text、
notice_type(annuity/renewal/reminder/overdue/unknown)
権利ごとの行:right_type_text(権利の種類。書かれたとおり)、
right_no_text(権利番号。書かれたとおり)、application_no_text、
title_text、year_text(年分。書かれたとおり)、due_date_text(納付期限)、
office_fee_text(特許庁に納める額)、agent_fee_text(手数料)
【厳守事項】
- 番号・日付・金額は、書かれたとおりの文字列で写してください。
読みにくい桁を、ありそうな数字に直さないでください。
読めない桁があれば status を unreadable にしてください。
- 権利番号の書き方(「特許第」「JP」の有無、ハイフン)をそろえないでください。
- 納付期限を、登録日や年分から計算しないでください。
期限と年分が合わないように見えても、どちらも直さないでください。
- 金額は書かれたものだけを写してください。内訳を推したり、
合計から逆算したりしないでください。
- 「再度のご案内」「期限経過」「追納」などの言葉があれば、
notice_type をそれに合わせて選んでください。
- 名称が2行に折り返され、2行目の番号と期限が空のときは、
前の行の続きとしてつなげてください。つなげられなければ
table_broken を true にしてください。
- 維持するか、追納できるかは書かないでください。
- 納付案内でない書類と判断した場合は、document_type に種類を書いてください。
【読み取り結果】{ocr_result}
年金台帳をAIに渡していないことが、このプロンプトのいちばんの工夫です。 台帳を見せると、読みにくい番号を台帳にある番号に寄せ、期限も台帳の期限に合わせて写します。 照合の意味が無くなります。
出力形式を固定する
次の形のJSONで受け取ります。 OpenAI API の構造化出力(Responses API の text.format に type: "json_schema" と strict: true を指定する方式)を使い、形を固定します。
{
"document_type": "annuity_notice",
"office_name": "",
"notice_date_text": "",
"reply_deadline_text": "",
"notice_type": "annuity | renewal | reminder | overdue | unknown",
"table_broken": false,
"rights": [
{
"right_type_text": "", "right_no_text": "", "application_no_text": "",
"title_text": "", "year_text": "", "due_date_text": "",
"office_fee_text": "", "agent_fee_text": "",
"status": "read | blank | unreadable"
}
]
}
公式のページでは、構造化出力ではすべての項目を required にする必要があるとされ、省略してよい項目は null との組み合わせで表すとされています。1件の案内でも一覧でも同じ rights の配列で受け、空欄は空文字と status で表します。
1つ目の理由は、年金台帳の照合を行ごとに機械的に回せることです。 Python は right_no_text を読み替え表で権利の種類と数字に直し、台帳の行を引いて、年分・期限・事務所を並べます。
2つ目は、確認に回す理由を規則で持てることです。
| 条件 | 印 |
|---|---|
権利番号が unreadable、または台帳に無い | right_not_found |
| 案内の納付期限が、台帳の次の納付期限と違う | due_mismatch |
| 案内の年分が、台帳の次の年分と違う | year_mismatch |
| 案内を送った事務所が、台帳の管理する事務所と違う | office_mismatch |
| 台帳の維持の方針が「放棄予定」なのに案内が届いた | policy_check |
notice_type が reminder か overdue | urgent |
表が崩れている、または document_type が案内でない | check_image |
期限までの日数は、Python が案内の期限から数えます。 確認の決まりの日数で「事業部に確認」「上席にも知らせる」を付け、照合結果は urgent を先頭に、残りを日数の短い順に並べます。
urgent の行には、期限を過ぎた後の扱いを知財部が確かめる印も付けます。 特許法第112条では、期限内に納付できなかった特許料は期間の経過後6月以内に追納でき、その場合は特許料と同額の割増特許料を納めるとされています。商標の後期分割登録料にも同じ形の追納の定めがあります(商標法第41条の2、第43条)。追納できるかの判断は、AIにも Python にもさせず、弁理士と確かめます。
公式のページでは、拒否の応答は refusal の要素として返り、出力の上限で切れたときは status が incomplete になるとされています。どちらのときも照合結果に書かず、check_image で人に回すか呼び直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 複合機の保存先の共有フォルダ | Python のファイル操作 | 新しいPDFを取り出し、処理済みに移す |
| Google Document AI | クライアントライブラリでの呼び出し | 欄、一覧の表、回答欄、エンティティ、信頼度を返す |
| OpenAI API | Responses API の呼び出し | 案内を権利ごとの行に写す |
| 年金台帳・読み替え表・事務所の一覧 | Python での読み込み | 引き当てと比較 |
| 照合結果の一覧 | 書き込み | 権利ごとの行、印、期限までの日数、案内の画像のリンク |
年金台帳には、この構成から書き込みません。 受領日と金額を台帳に反映するのは担当で、期限の食い違いが解けた行だけを反映します。事務所への回答も、人が回答書に印を付けて返します。
人が確認する
担当が見るのは、照合結果の一覧です。 印の無い行は流し見て台帳に受領日を反映し、印の付いた行は確かめます。
urgentを先に見る … 督促と期限経過の案内です。事業部と上席に同じ日のうちに知らせ、弁理士に扱いを確かめますdue_mismatchとyear_mismatchを見る … 案内の画像と台帳の登録日を見て、どちらが正しいかを事務所に確かめます。 推測でどちらかに合わせませんright_not_foundとoffice_mismatchを見る … 移管の記録の漏れか、台帳への登録の漏れかを確かめ、台帳を直しますpolicy_checkを見る … 放棄の方針が事務所に伝わっているかを確かめます- 期限の近い順に、事業部に維持の確認を送る … 確認を送った日を照合結果に残します
目標は、300件をならして1件2分です。 印の無い行は流し見で数十秒、食い違いのある行は事務所や事業部に確かめるので数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 一覧の名称が折り返されて表が崩れる | AIが行をつなぎ直す。戻せなければ table_broken で担当へ |
| 一覧が15ページを超える | ページで分けて送り、行を1つの案内にまとめる |
| 同じ権利の案内が2通届く | 2通目は urgent として扱い、事業部への確認を重ねて送らない |
| 外国の権利の案内が混ざる | 台帳の国の列で引き当てる。無ければ right_not_found |
| 年分が「第4年分〜第6年分」とまとめて書かれる | 書かれたとおりに写し、台帳の年分と範囲で比べる |
| 手書きの追記(「至急」など)がある | 全文から拾い、照合結果の備考に写す |
| AIが拒否の応答を返す | check_image で人に回す。照合結果には書かない |
| OCR・AIが応答しない | PDFを処理済みに移さずに残す。次の実行で拾い直す |
上の3行が大半を占めます。 どれもAIの問題ではなく、事務所ごとの案内の書式と、回答の遅れの問題です。崩れやすい書式の事務所には、一覧の電子データも送ってもらえないかを相談します。
記録を残す
- 元の案内のPDFと、受領日・事務所
- OCRが返したJSONの全文と、OpenAI API の応答の全文
- 照合に使った年金台帳の出力日時と、読み替え表の版
- 付いた印と、担当が確かめた結果・事務所とのやり取り・確かめた日時
- 事業部に維持の確認を送った日と、返事の日と内容
- 事務所に回答書を返した日と、回答の内容
5つ目と6つ目は、期限の管理の記録そのものです。 期限を過ぎかけたときに、どこで止まっていたか(照合、事業部の返事、事務所への回答)を後から確かめられるようにします。
04実装レベルの3段階
半自動化で、1件8分が5分程度になります。 書き写しは無くなりますが、台帳を探して見比べる作業と、期限の近いものを拾う作業は、目で行う作業として残ります。 本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、探すことと見比べることが規則に移り、担当が見るのが印の付いた行だけになるためです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、番号の書き方の癖と、台帳の事務所の列の古さが分かります。
05工数削減シミュレーション
導入後 300件 × 2分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数百から数千件の特許・実用新案・意匠・商標を持つメーカーなどの知財部で、複数の特許事務所から紙の年金(特許料・登録料)や更新の納付案内が届き、担当が年金台帳と見比べて書き写している場合。事務所ごとに案内の書式が違い、1枚に複数の権利が一覧で載る案内もある場合。期限の近い権利を事業部に確かめる依頼が遅れがちで、台帳と案内の期限や年分の食い違いに気づくのが遅い場合。
- 年金の管理を1つの特許事務所や年金管理の会社に任せきりにしていて、自社で台帳を持っていない場合。案内がすべて電子データで届き、台帳に取り込む仕組みがすでにある場合。持っている権利が数十件で、担当が目で見て足りる場合。なお、権利を維持するか放棄するかの判断、納付期限や追納の可否の法的な判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた案内から30件を選ぶ(一覧形式の案内、督促、台帳と期限が食い違っていた案内を必ず入れる)
- その30件について、当時の台帳の記録と、事務所とのやり取りを用意する
- 案内のPDFを手元のAIサービスの画面に1枚ずつ貼り付ける
- 「この納付案内の事務所名、権利番号、年分、納付期限、特許庁に納める額、手数料、回答の期限を、権利ごとに書かれたとおりに写してください。番号や日付を補ったり直したりしないでください。期限を計算しないでください。読めない桁は『読めない』としてください」と指示する
- 写された値を、当時の台帳の記録と比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ値が写せ、一覧の行がすべて出た | OCRと Python の連携に進む |
| 期限を年分から計算して直した | 指示の書き方で直る。構成は有効 |
| 一覧の名称の折り返しで行がずれる | 事務所ごとの傾向を見る。直らない書式は table_broken として人に回す |
| 読めない数字が多い | スキャンの設定が先。 300dpiで取り直して比べる |
1行目の「一覧の行がすべて出た」が、この構成の価値を確かめるところです。 書き写しで行を飛ばすという失敗の型が、そこで無くなります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 期限をAIが年分から計算して直す | 書かれたとおりに写させ、食い違いは印にして事務所に確かめる |
| 番号や期限が台帳に寄せられる | 年金台帳をAIに見せない。 照合は Python で行う |
| 一覧の行を飛ばす、折り返しで行がずれる | AIに行をつなぎ直させ、戻せなければ人へ |
| 番号の書き方が事務所ごとに違う | 読み替え表で直す。 AIにはそろえさせない |
| 督促を新しい案内として数える | 同じ権利・同じ年分の2通目は urgent |
| 追納できるかを機械で決める | 判断させない。 弁理士と確かめる |
| 権利番号の先頭の0や記号が落ちる | 文字列のまま読み書きする |
| 国外での処理を確かめていない | 日本のリージョンが無い。社内の決まりを先に確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも、案内に書かれていた事実が、照合の前に消えてしまうという同じ型の失敗です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 権利番号、発明の名称や商標、納付期限と金額、事務所名、回答の期限です。権利そのものは公開されていますが、どの権利を維持し、どれを手放すかの検討は、自社の事業の方向を示す情報です。
- 国外で処理することを確かめる … Document AI のリージョンの一覧に日本はありません。社内の決まりで、案内を国外のリージョンで処理してよいかを確かめます。認められない場合は、日本のリージョンで処理できる製品を検討します
- 生成AIに渡す範囲を絞る … 渡すのは案内の読み取り結果だけです。年金台帳の維持の方針や事業部の情報は渡さず、照合は Python の側で行います
- 台帳の期限を自動で書き換えない … 年金台帳への反映は担当の操作だけです
- 事務所への回答を自動で返さない … 「納付する」「放棄する」の回答は、事業部の返事を受けて担当が返します
- 期限と追納の判断を機械に任せない … 期限までの日数は並べ替えに使うだけで、追納の可否や権利の扱いは弁理士と確かめます
- APIキーを社内の決まりに沿って保管する … プログラムに書き込まず、扱える人を絞ります
誤りが起きた場合のリスクは、期限の近い権利の確認が遅れて期限を過ぎることと、誤った期限が台帳に入ることの2つです。 期限の近い順に並べることと、期限を直させないことで、設計の側から防ぎます。
10まず何から始めるか
1週目:権利番号の読み替え表と確認の決まりを作る
5つの事務所の案内を並べ、番号の書き方と、権利の種類の書き方を表にします。あわせて、期限まで何日で事業部に確かめ、何日で上席に知らせるかを決めます。
2週目:30件で試す
先月の案内30件を手元のAIサービスに貼り付けて、権利ごとの行を写させます。期限を計算で直していないか、一覧の行を飛ばしていないかを最優先で見ます。
3週目:社内の決まりの確認と、台帳の整備
案内を外部のサービスで、国外のリージョンで処理してよいかを、社内の決まりで確かめます。 あわせて、年金台帳の「管理する事務所」の列を最新にします。
4週目:フォルダから照合結果までをつなぐ
Python で共有フォルダを確かめ、OCRを呼び、写した値を照合結果の一覧に書き出すところまで作ります。この時点では印を出さず、担当がこれまでどおり台帳と見比べながら、一覧の値が合っているかを見ます。
2か月目: 台帳の引き当て、年分と期限の比較、期限までの日数の並べ替えを足し、期限の近い順に事業部への確認を始めます。3か月目以降: 1件8分が何分になったかを実測します。事業部への確認が案内の届いた週に始まり、食い違いが事務所との確かめで解けるものだけになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Form Parser がOCRのテキストに加えてキーと値のペア、チェックボックス、表、一般的なエンティティを抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が最大15ページであること | Google Cloud: Processor list | 2026-10-14 |
11種類の一般的なエンティティ(date_time、price、id など)を取り出すこと。表はセルが行や列にまたがらない単純なものが対象であること | Google Cloud: Form Parser | 2026-10-14 |
formFields の fieldName/fieldValue、valueType の filled_checkbox/unfilled_checkbox、layout の confidence・boundingPoly、表の headerRows/bodyRows と、Form Parser では rowSpan・colSpan が常に1であること | Google Cloud: Handle the processing response | 2026-10-14 |
| 対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などであること。スキャンは最低200dpiが望ましく、300dpi以上が一般に最もよいこと | Google Cloud: Supported files | 2026-10-14 |
マルチリージョンが us と eu で、単一リージョンにシンガポール(asia-southeast1)などがあり、日本のリージョンが一覧に無いこと | Google Cloud: Regional and multi-regional support | 2026-10-14 |
Responses API で text.format に type: "json_schema" と strict: true を指定して構造化出力を使えること。すべての項目を required にする必要があり、省略は null との組み合わせで表すこと。拒否の応答が refusal として返ること。出力の上限で incomplete になりうること | OpenAI API: Structured model outputs | 2026-10-14 |
| 第4年以後の各年分の特許料は前年以前に納付すること(第108条第2項)。期間内に納付できないときは期間の経過後6月以内に追納でき、特許料と同額の割増特許料を納めること(第112条) | e-Gov法令API: 特許法 | 2026-10-14 |
| 後期分割登録料は存続期間の満了前5年までに納付し、期間内に納付できないときは経過後6月以内に追納できること(第41条の2)。その場合に登録料と同額の割増登録料を納めること(第43条第3項) | e-Gov法令API: 商標法 | 2026-10-14 |
権利を維持するか放棄するか、納付期限と追納の扱い、案内を外部のサービスで処理してよいかは、自社の知財の方針と弁理士の確認に沿って決めてください。 本記事は各製品の公式ページと法令の条文で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1509)についてのご相談はこちらから。
