保険会社の商品部が約款の改定案を Claude で現行の約款と比べ、保障の範囲が変わる条項と説明の要る箇所を新旧対照表にする
約款・特約の改定案と現行の約款を、プログラムで条項ごとに対応づけ、Claude で組ごとに「保障の範囲が変わるか」を判定します。表現だけの修正、範囲の拡大、縮小、条件の変更に分け、根拠の文言を添えた新旧対照表の下書きにします。
- 生成AI
- Azure OpenAI Service/ChatGPT/Claude
- 連携・自動化
- Python
- 対象業界
- 保険/金融
- 対象部門
- 法務
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 判断に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 入力漏れ削減/判断支援/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 商品開発の担当から、改定案の Word ファイルと改定の趣旨のメモを受け取る
- 現行の約款のファイルを文書管理のフォルダから取り出す
- 条番号で新旧を並べる。条の追加・削除で番号がずれているところは、見出しと中身で手で対応づける
- 1条ずつ読み比べ、変わった箇所に下線を引く
- 定義の条と別表が変わっていれば、その語を使っている条項を思い出して読み直す
- 備考の欄に、表現の修正か、保障の範囲が広がるか狭まるか、条件が変わるかを書く
- 契約者への説明や募集文書の見直しが要りそうな箇所に印を付ける
- 対照表を法務の審査に回し、指摘を受けて直す
- 人改定案の Word ファイルと改定の趣旨のメモを、案件ごとの受付フォルダに置く
- 自動プログラムが現行と改定案から条・項・号・別表を取り出し、構造の表にする
- 自動見出しと本文の似ている度合いで新旧の条項を対応づけ、追加・削除・移動を見分ける
- 自動定義の条と別表の差を取り、変わった定義語を使っている条項をすべて拾う
- 自動文字が変わった組と、定義が変わった組を Claude に渡し、変化の種類を判定させる
- 自動判定の根拠として写された文言を、プログラムが新旧の原文と照らす
- 自動新旧対照表の下書きを作る。範囲の縮小・条件の追加・判断不能の行を上に並べる
- 人担当者が、上に並んだ行から読み、備考を確かめて直す
- 人法務の担当者が、説明の要否の印を見て、審査の資料として仕上げる
各工程の詳しい説明を読む
- 商品開発の担当から、改定案の Word ファイルと改定の趣旨のメモを受け取る
- 現行の約款のファイルを文書管理のフォルダから取り出す
- 条番号で新旧を並べる。条の追加・削除で番号がずれているところは、見出しと中身で手で対応づける
- 1条ずつ読み比べ、変わった箇所に下線を引く
- 定義の条と別表が変わっていれば、その語を使っている条項を思い出して読み直す
- 備考の欄に、表現の修正か、保障の範囲が広がるか狭まるか、条件が変わるかを書く
- 契約者への説明や募集文書の見直しが要りそうな箇所に印を付ける
- 対照表を法務の審査に回し、指摘を受けて直す
(a)番号がずれると、対応づけだけで時間がかかる。 第5条の後に1条が挿入されると、第6条以降の番号がすべてずれ、条番号で並べるとすべての条が「全文変更」に見えます。 担当者は見出しと中身で対応を決め直しています。
(b)定義の変更が及ぶ先を、記憶で探している。 定義の条で「入院」の要件が変われば、入院給付金、手術給付金、先進医療の特約、保険料の払込免除まで、その語を使う条項すべての読みが変わります。どこで使われているかを全文検索で拾うことはできても、そのうちどれの保障が動くかを決めるのは担当者の読みです。 経験の長い担当者ほど拾えて、そうでない担当者は見落とします。
(c)「表現の修正」と書いた行に、範囲の変化が紛れる。 「ただし、〜の場合を除きます」の一文が「〜の場合を含みます」に変わるような修正は、文字の差は数文字でも、保障の範囲は逆を向きます。 改定の趣旨のメモに「表現の見直し」とあると、その先入観で読んでしまいます。
(d)備考の書き方が担当者ごとに違う。 同じ種類の修正を、ある担当者は「支払事由の明確化」、別の担当者は「表現の修正」と書きます。審査の側は備考を信じきれず、すべての行を読み直します。
- 【人】 改定案の Word ファイルと改定の趣旨のメモを、案件ごとの受付フォルダに置く
- 【自動】 プログラムが現行と改定案から条・項・号・別表を取り出し、構造の表にする
- 【自動】 見出しと本文の似ている度合いで新旧の条項を対応づけ、追加・削除・移動を見分ける
- 【自動】 定義の条と別表の差を取り、変わった定義語を使っている条項をすべて拾う
- 【自動】 文字が変わった組と、定義が変わった組を Claude に渡し、変化の種類を判定させる
- 【自動】 判定の根拠として写された文言を、プログラムが新旧の原文と照らす
- 【自動】 新旧対照表の下書きを作る。範囲の縮小・条件の追加・判断不能の行を上に並べる
- 【人】 担当者が、上に並んだ行から読み、備考を確かめて直す
- 【人】 法務の担当者が、説明の要否の印を見て、審査の資料として仕上げる
8番目が、この設計の分かれ目です。 担当者は、AIが「範囲の縮小」「条件の追加」「判断不能」と付けた行から読み、 「表現だけ」の行は下線を流し見て終わりにします。
4番目をプログラムにしているのも意図してのことです。 定義語の使われ方は文字列の検索で漏れなく拾えますが、AIに「影響する条項を挙げて」と頼むと、数条を挙げて残りを落とします。
02今回想定するシステム構成
改定案(Word)と現行の約款(Word) │ 案件ごとの受付フォルダに置く ▼【トリガー】受付フォルダへの改定案の保存 Python(差異計算) ├──▶ 条・項・号・別表の構造の表を作る ├──▶ 新旧の条項の対応づけ(見出しと本文の似ている度合い) └──▶ 定義の条と別表の差 → その定義語を使う条項を全部拾う ▼ Claude API ── 組ごとに変化の種類を判定(構造化出力の JSON) │ ① 表現だけ ② 範囲の拡大 ③ 範囲の縮小 │ ④ 条件の変更 ⑤ 判断不能 + 説明の要否の候補 ▼ Python ── 根拠の文言を新旧の原文と照らす(無ければ人へ) ▼ 新旧対照表の下書き(Word)と判定の一覧 ▼ 【担当者が上の行から確かめる → 法務が審査の資料に仕上げる】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Claude API(新旧の条項の組ごとの判定。構造化出力) | OpenAI API、Azure OpenAI(Microsoft Foundry) |
| 差異計算 | Python(difflib による条項の対応づけと差の抽出) | - |
| 文書の置き場 | 既存の文書管理の共有フォルダ | - |
約款の原稿の管理と社内の審査の流れは、いまのままです。 この構成が作るのは対照表の下書きと判定の一覧までで、約款の原稿には何も書き込みません。 改定案を直すのは商品開発の担当で、対照表を仕上げて審査に出すのは約款担当です。
判定に Claude API の構造化出力を使うのは、600組の結果を同じ形で受け取るためです。 公式のドキュメントでは、output_config.format に type: "json_schema" と JSON スキーマを渡すと、応答がそのスキーマに沿った JSON になるとされています。変化の種類を enum(決めた値の一覧)で縛れるので、 担当者ごとに備考の言い回しがばらつく問題が、出力の側から消えます。
新旧の対応づけに使うのは、Python の標準の difflib です。 公式のドキュメントでは、SequenceMatcher の ratio() が2つの並びの似ている度合いを0から1で返し、0.6を超えればよく似ていると見る目安が示されています。get_opcodes() は、一方を他方に直すための replace・delete・insert・equal の操作を返します。この2つで、条の対応づけと、条の中の変わった箇所の下線の両方を作ります。
03どうやって実装するのか
処理の起点を決める
案件ごとの受付フォルダに、改定案の Word ファイルが置かれたことを起点にします。 フォルダの名前に案件番号を付け、その中に改定案と改定の趣旨のメモを置きます。プログラムは定時(毎時)にフォルダを見て、まだ処理していない案件があれば動きます。
改定案は何度も版が変わります。 審査の指摘を受けて直した版が同じ案件のフォルダに置かれたら、前の版との差ではなく、必ず現行の約款との差を取り直します。 版と版の差だけを見ていると、最初の版で入った変更が対照表から消えます。
現行の約款は、文書管理のフォルダの「施行中」の版からプログラムが自分で取ります。 担当者の手元の古い版が混ざらないようにするためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 改定案 | 約款・特約の改定案の全文(条・項・号・別表) | 案件の受付フォルダ(Word) |
| 現行の約款 | 施行中の版の全文 | 文書管理の共有フォルダ(Word) |
| 改定の趣旨のメモ | 何のために、どこを変えるつもりか | 案件の受付フォルダ |
| 判定の基準 | 変化の種類の定義と、判定の例(社内で決めた30例ほど) | 約款担当が管理する一覧 |
| 保障に関わる語の一覧 | 支払事由、免責事由、給付の額、支払の期限、告知、解除などの見出し語 | 約款担当が管理する一覧 |
質を決めるのは、下の2つです。 判定の基準が「保障の範囲が変わるもの」とだけ書かれていると、AIは文字の変化の大きさで判定します。「支払の対象となる場合が増える」「支払の額が減る」「請求の手続が増える」のように、変化の種類ごとに社内の例を置きます。 約款担当が過去の対照表の備考から選んだ例が、そのまま判定の物差しになります。
改定の趣旨のメモは、判定には渡しません。 担当者が「表現の見直し」の先入観で読んでしまう問題(第3章の(c))を、AIに持ち込まないためです。メモは対照表の頭に載せ、判定と趣旨が食い違う行を担当者が見つけられるようにします。
データの取得方法を決める
Word の原稿からの取り出しは、プログラムが行います。段落の書式(見出しのスタイル)と、「第○条」「(○)」のような番号の書き方の両方で、条・項・号を見分けます。 約款の原稿は長年の改定で書式が崩れていることが多く、片方だけでは見分けられない段落が出ます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 条の番号・見出し・本文 | 本文の段落 | 新旧の対応づけと判定 |
| 項・号の番号と本文 | 条の中の段落 | 条の中のどこが変わったかの特定 |
| 定義の条の語と定義文 | 「用語の定義」の条、各条の「(以下「〜」といいます。)」 | 定義語の差と、使っている条項の検索 |
| 別表の行 | 表の行とセル | 対象となる手術・疾病、支払の倍率などの差 |
| 改定案の変更履歴 | Word の変更履歴(あれば) | 使わない。現行との差は自分で取り直す |
Word の変更履歴は当てにしません。 改定案の作成の途中で履歴を承諾してから直した箇所は、履歴に残りません。差は必ず、現行の版と改定案の全文から取り直します。
新旧の対応づけは3段で行います。 まず見出しが同じ条を組にし、残った条を本文の似ている度合い(ratio())で組にし、どちらにも組が見つからない条を「追加」「削除」とします。似ている度合いが0.6前後の組は、移動か書き換えかを決めきれないので、判定には「対応づけが不確か」の印を付けて渡します。
AIへ渡す前に整形する
- 構造の表を作る … 条・項・号・別表ごとに1行。番号、見出し、本文、親の条を持たせます
- 表記をそろえる … 全角と半角、漢数字と算用数字、括弧の種類をそろえた写しを作り、比べるのはその写しで行います。原文は別に持ち、根拠の照合と対照表には原文を使います
- 新旧を対応づける … 上の3段の手順で組を作り、組ごとに
get_opcodes()で変わった箇所を取ります - 定義語の差を取る … 定義の条と「(以下「〜」といいます。)」の定義文を新旧で比べ、定義文が変わった語の一覧を作ります
- 定義が変わった語を使う条項を拾う … 本文の文字が変わっていなくても、その語を含む条項を「定義の波及」の組として加えます
- 別表の差を取る … 行の追加・削除・セルの変更を取り、別表を引いている条項を同じく波及の組として加えます
- 判定に回す組を絞る … 文字の差が無く、波及にも当たらない組は判定に回さず「変更なし」とします
5番目と6番目が、この構成のいちばん大事な前処理です。 「入院」の定義に「治療を目的として」の一句が足されると、本文の入院給付金の条は1字も変わりませんが、支払の対象になる入院は減ります。 文字の差だけで組を選ぶと、この条は7番目で「変更なし」に落ちます。
7番目で落とす組は、件数だけを対照表の末尾に載せます。 「変更なし 412組」と出ていれば、担当者は流し見で足りることが分かります。落とした組を消してしまうと、対応づけの誤りで落ちた条があっても気づけません。
AIに処理させる
させるのは、新旧の条項の組ごとに、変化の種類を1つ選び、根拠の文言を新旧の両方から写すことだけです。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 支払の対象になる場合 | 増える/減る/変わらない | 定義の波及で読みが決まらなければ undetermined |
| 支払の額・回数・期間 | 増える/減る/変わらない | 別表の倍率の変更は別表の行を根拠にする |
| 支払わない場合(免責) | 増える/減る/変わらない | 但し書きの向きが読み取れなければ undetermined |
| 請求の手続・期限・書類 | 契約者の手間が増えるか | 手続の主体が変わる場合は condition_changed |
| 契約者の義務(告知・通知) | 義務が増えるか | 義務違反の効果が変わる場合も含める |
| 文の形だけの変化 | 意味が変わらないか | 迷えば wording_only を選ばない |
選ばせる変化の種類は、wording_only(表現だけ)、scope_expanded(範囲の拡大)、scope_reduced(範囲の縮小)、condition_changed(条件・手続の変更)、undetermined(判断できない)の5つです。 1つの条で拡大と縮小が同時に起きる場合は、契約者に不利な向きの方を選び、両方を notes に書かせます。 審査で先に読むべきなのは不利な向きだからです。
説明の要否は、AIに決めさせず「候補」として付けさせます。 範囲の縮小、免責の増加、手続の増加のどれかに当たる組に explain_candidate: true を立てさせ、どの書面で説明するか、既契約に及ぶかは書かせません。
| させないこと | 理由 |
|---|---|
| 認可が要る変更か届出で足りる変更かの判断 | 法令と監督当局との調整に関わる。法務が決める |
| 既契約に及ぶかの判断 | 約款の経過の規定と会社の方針で決まる |
| 改定案の文言の書き直し | 文案を決めるのは商品開発と法務 |
| 改定の趣旨の推測 | 趣旨のメモは渡さない。文言だけで読む |
| 根拠の文言の要約 | 根拠は原文のまま写す。要約すると照合できない |
指示内容を固定する
あなたは保険会社の約款担当として、約款の現行の条項と改定案の条項を比べ、
保障の範囲がどう変わったかを分類する立場です。
渡された条文だけを見て判定してください。改定の意図を推測しないでください。
【入力】
- old_text:現行の条項(原文)
- new_text:改定案の条項(原文)
- diff:変わった箇所の一覧(プログラムが作ったもの)
- changed_terms:定義が変わった語と、新旧の定義文(ある場合)
- changed_tables:この条項が引いている別表の差(ある場合)
- mapping_uncertain:新旧の対応づけが不確かなら true
【change_type の選び方】
- wording_only ........ 文の形が変わっただけで、支払の対象・額・免責・手続・義務が変わらない
- scope_expanded ...... 支払の対象になる場合や額が増える、または免責が減る
- scope_reduced ....... 支払の対象になる場合や額が減る、または免責が増える
- condition_changed ... 請求の手続・期限・書類、契約者の義務が変わる
- undetermined ........ 渡された文言だけでは向きが決められない
迷ったときに wording_only を選ばないでください。
拡大と縮小が同時に起きる場合は scope_reduced を選び、両方を notes に書いてください。
【厳守事項】
- 本文の文字が同じでも、changed_terms や changed_tables があれば、
その定義・別表の変化を本文に当てはめて読んでください。
本文が同じであることを理由に wording_only を選ばないでください。
- 「ただし」「〜を除きます」「〜を含みます」「〜に限ります」の向きを必ず確かめてください。
- old_quote と new_quote には、判定の根拠にした文言を原文から一字一句そのまま写してください。
言い換え・要約・省略をしないでください。追加・削除の条では、無い側は空にしてください。
- 渡されていない条項・別表・法令の内容を根拠にしないでください。
- 認可・届出の要否、既契約への適用、契約者への案内の方法は書かないでください。
- explain_candidate は、scope_reduced、免責の増加、手続や義務の増加のときに true にしてください。
- mapping_uncertain が true のときは、まず新旧が同じ内容の条項かを確かめ、
別の条項どうしと考えられる場合は undetermined にして notes に理由を書いてください。
【判定の例】{judgement_examples}
【保障に関わる語の一覧】{coverage_terms}
【判定する組】{pair}
「本文が同じでも定義の変化を当てはめて読む」を明記しないと、波及の組はほぼ wording_only になります。 本文の新旧が同じ文字列で、AIはその一致を最も強い手がかりにするからです。禁じるのは、本文の一致を根拠にした判断そのものです。
「迷ったら wording_only を選ばない」も同じ考えです。 wording_only の行は担当者が流し見する行で、そこに紛れた縮小は審査まで誰にも読まれません。 迷った行は undetermined にして、人が読む側に寄せます。
出力形式を固定する
構造化出力で、次の形の JSON を受け取ります。
{
"pair_id": "",
"old_ref": "第12条第1項",
"new_ref": "第13条第1項",
"pair_kind": "text_changed | term_propagation | table_propagation | added | deleted",
"change_type": "wording_only | scope_expanded | scope_reduced | condition_changed | undetermined",
"aspects": ["payment_trigger", "benefit_amount", "exclusion", "claim_procedure", "policyholder_duty"],
"old_quote": "",
"new_quote": "",
"explain_candidate": true,
"notes": ""
}
1つ目の理由は、pair_kind と change_type を別の項目に置けることです。 pair_kind はプログラムが付ける「なぜこの組を見ているか」で、change_type は AI が付ける「何が変わったか」です。定義の波及で拾った組のうち何割が実際に範囲を動かしたかを、あとで数えられます。 波及の組がほとんど wording_only なら、拾い方が広すぎるか、指示が効いていないかのどちらかです。
2つ目は、old_quote と new_quote をプログラムで照らせることです。 写された文言を、表記をそろえる前の原文の中で探し、見つからなければ、その行の change_type をそのまま使わず「根拠不一致」として人の確認に回します。 照合は文字列の一致だけで行い、AIにもう一度確かめさせることはしません。
3つ目は、対照表の並べ替えが機械的にできることです。 対照表の下書きは次の順に並べます。
| 並び | 条件 | 担当者の読み方 |
|---|---|---|
| 1 | 根拠不一致、または undetermined | 原文を開いて読み直す |
| 2 | scope_reduced | 新旧の根拠の文言を読み、説明の要否を決める |
| 3 | condition_changed | 契約者の手間が増えるかを確かめる |
| 4 | scope_expanded | 意図した拡大かを趣旨のメモと照らす |
| 5 | wording_only | 下線を流し見する |
| 末尾 | 判定に回さなかった組 | 件数だけを見る |
4行目で趣旨と照らすのは、意図しない拡大も、保険料の算出の前提と合わなくなるからです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件の受付フォルダ | プログラムが毎時見る | 改定案と趣旨のメモを読む |
| 文書管理の共有フォルダ | 読み取りのみ | 施行中の版の約款を取る |
| Claude API | API呼び出し(構造化出力) | 組ごとの判定 |
| 対照表の下書き | Word ファイルの書き出し | 案件のフォルダに置く |
| 判定の一覧 | 表の書き出し | 組ごとの判定・根拠・照合の結果 |
約款の原稿にも、文書管理の「施行中」の版にも書き込みません。 対照表の下書きは案件のフォルダに新しいファイルとして置き、ファイル名に現行の版と改定案の版を入れます。 どの版どうしを比べた表かが分からなくなると、審査の指摘がどの版に対するものかが追えなくなります。
Claude API に送るのは、判定する組の条文と、その組に関わる定義・別表だけです。 約款の全文や、改定の案件の一覧は送りません。1組ずつ送ると、1つの組の判定がうまくいかなくても、その組だけを送り直せます。
人が確認する
担当者は、対照表の上から読みます。 第7章の出力形式の表の1から4までを読み、5は流し見、末尾は件数だけを見ます。全行を同じ深さで読む運用にすると、第10章の40.0時間には収まりません。
- 根拠不一致と
undeterminedを先に読む … 多くは対応づけの誤りか、条をまたぐ書き方です。原文を開いて新旧を自分で決めます scope_reducedの根拠を確かめる …old_quoteとnew_quoteを読み、本当に範囲が狭まっているかを確かめます- 説明の要否の候補を見直す …
explain_candidateの行から、説明が要るものを法務と決めます wording_onlyの下線を流し見する … 数文字の差で向きが変わる言い回しが紛れていないかを見ます- 判定を覆したら記録する … どの組を、どの種類からどの種類に変えたかと、理由を一言残します
2番目を省かないでください。 scope_reduced の行は、審査の資料でいちばん重く読まれる行です。 AIが縮小と判定した理由が誤っていれば、改定の趣旨と違う議論が審査で始まります。
5番目の記録は、同じ種類の覆しが続いたら、その組を判定の例に加える材料になります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 条・項・号を見分けられない段落がある | 構造の表で「不明」とし、対照表の冒頭に一覧で出す。判定には回さない |
| 新旧の対応づけが不確か | mapping_uncertain を立てて判定に回し、対照表の1の並びに入れる |
| 1つの条が2つに分かれた、2つの条が1つにまとまった | 1対多の組として、関わる条をすべて渡す |
| 定義語が別の語に言い換えられた | 語の一覧の差に「旧語→新語」として出し、担当者が対応を決める |
| 別表が画像で貼られている | 差を取れないので、別表を引く条項をすべて undetermined にする |
| 根拠の文言が原文に無い | 「根拠不一致」として人へ。判定は使わない |
| 応答が途中で切れる・スキーマに沿わない | その組だけ送り直す。2回続けば undetermined |
| 応答が判定を断る | その組を人へ回す。断った理由は記録に残す |
| 現行の版が文書管理に見つからない | 処理を止めて約款担当に知らせる。手元の版で代用しない |
最後の行は、止めることが正しい例外です。 古い版と比べた対照表は、正しい形をしたまま誤った資料になります。 気づかれずに審査に回るのがいちばん危ないので、代用せずに止めます。
公式のドキュメントでは、応答が max_tokens で切れるとスキーマに沿わないことがあるとされています。 長い組では max_tokens に余裕を持たせます。
記録を残す
- 比べた現行の版と改定案の版(ファイル名と更新日時)
- 構造の表と、新旧の対応づけの結果(組ごとの
ratio()の値を含む) - 定義語の差の一覧と、そこから拾った波及の組
- 組ごとに Claude に送った内容と、返ってきた JSON の全文
- 根拠の文言の照合の結果(一致・不一致)
- 担当者が判定を覆した記録 … 組、変える前と後の種類、理由
- 審査に出した対照表の版と、そのときの判定の一覧
4つ目で送った内容を残すのは、判定の基準の例が後から変わるためです。 例を足すと同じ組の判定が変わることがあり、当時どの例で判定したかが残っていないと、審査で出た判定の理由をたどれません。
04実装レベルの3段階
最小構成では件数がさばけません。 1組ずつ貼るので、月600組には使えません。確かめるための段階です。 半自動化で、1組12分が7分程度になります。 対応づけと判定は自動になりますが、定義の波及を探して読み直す作業と、対照表を Word に組み直す作業が残ります。本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、第3章の(b)の「どこに及ぶかを記憶で探す」作業が、本格構成で初めて機械に移るからです。 段階を飛ばさないでください。 半自動化の一覧を2〜3案件ぶん見ると、どの約款で対応づけが崩れやすいかが先に分かります。
05工数削減シミュレーション
導入後 600件 × 4分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 商品と特約の数が多く、法令の改正・特約の追加・表現の見直しで、毎月どこかの約款の改定案が上がってくる生命保険会社・損害保険会社・少額短期保険業者。約款の原稿を Word などの文書で管理していて、条・項・号の番号と見出しがそろっている場合。新旧対照表を担当者が手で作っており、定義や別表の変更が他の条項に及ぶところの見落としが心配な場合。社内で Python を書ける担当者か、委託先がいる場合。
- 改定が年に数回で、条項の数も少なく、目で読み比べて足りる場合。約款が紙やスキャンした PDF しか残っておらず、条項の文字を正しく取り出せない場合。約款の文案を社外の生成AIのサービスに送ることを社内の規程で認めていない場合。なお、改定が認可を要する変更か届出で足りる変更か、既契約に及ぶか、契約者へどう案内するかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去に審査を終えた改定案件を1件選ぶ(定義の条か別表の変更を含むもの)
- その案件の現行と改定案から、変わった条を10組、定義の変更が及んだ条を5組、変更の無い条を5組選ぶ
- 業務用の Claude のチャットに、変化の種類の5つの定義と、第7章の「厳守事項」を貼る
- 20組を1組ずつ貼り、変化の種類と新旧の根拠の文言を答えさせる。定義の変更が及んだ組には、定義の新旧も一緒に貼る
- 答えを、審査を終えた対照表の備考と突き合わせる
20組は必ずやってください。 プログラムを書く前に、「新旧を並べて渡せば、範囲の向きを読めるのか」を確かめます。 対応づけと波及の拾い出しはこの段階では手で行います。
| 出てきた内容 | 判断 |
|---|---|
| 審査済みの備考と同じ向きが出た | プログラムでの対応づけと波及の拾い出しに進む |
定義が変わった組を wording_only にした | 指示の書き方で直る。構成は有効 |
| 根拠の文言が原文と違う | 「一字一句そのまま」を強める。照合の仕組みが要ることが分かる |
2行目が出ることは珍しくありません。 失敗ではなく、担当者が経験で補っていたところが分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
定義が変わった条項が wording_only になる | 波及の組であることと、定義の新旧を必ず渡す。 指示にも本文の一致を根拠にしないことを書く |
| 条の挿入で番号がずれ、全部が「全文変更」になる | 条番号で並べない。見出しと本文の似ている度合いで対応づける |
| 「ただし」の向きの逆転を見落とす | 但し書きと「除きます/含みます/限ります」を確かめるよう指示に書く |
| 根拠の文言が要約されて照合できない | 「一字一句そのまま」と書き、照合できない判定は使わない |
| Word の変更履歴を信じて差を取る | 履歴は使わない。 現行の全文と改定案の全文から取り直す |
| 別表が画像で、差が取れない | 別表を表として作り直すよう商品開発に頼む。それまでは関わる条項を人が読む |
| スキーマに数値の範囲や文字数の制約を書いて400になる | 構造化出力は minimum/maximum、minLength/maxLength に非対応。プログラムの側で確かめる |
| 改定の趣旨のメモを判定に渡して先入観が移る | メモは渡さない。 対照表の頭に載せて人が照らす |
| 説明の要否をAIに決めさせる | 出させるのは候補まで。決めるのは法務 |
| 拡大と縮小が同じ条で起きる | 不利な向きを選ばせ、両方を notes に書かせる |
上の2行が、この構成の失敗のほとんどです。 定義の波及は文字の差が無いのに意味が変わり、番号のずれは意味が同じなのに文字の差が大きく出ます。 この2つを前処理で正しく扱えるかどうかで、判定の質が決まります。
下から2行目も早く効いてきます。 説明の要否をAIに決めさせると、決める責任のある人が一覧を読まなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公表前の約款・特約の改定案、改定の趣旨、社内の判定の基準です。契約者の個人情報は扱いません。 ただし、公表前の商品の内容は、競合や市場に先に知られては困る営業秘密に当たります。
- API に送る範囲を、判定する組に限る … 約款の全文、案件の一覧、改定の趣旨のメモは送りません。送るのは組ごとの条文と、関わる定義・別表だけです
- データの扱いを契約の条件で確かめる … 公式のプライバシーの案内では、API などの商用の製品の入力と出力は、既定ではモデルの学習に使わないとされ、API の入力と出力はバックエンドから30日以内に削除されるとされています。ゼロデータ保持の契約を結んだ場合は例外になるとされているので、社内の情報の区分に合わせて契約の形を選んでください
- 判定を審査の結論として扱わない … 判定は読む順番を決めるための印です。改定が認可を要する変更か届出で足りる変更か、既契約に及ぶかは、法務が決めます
- 約款の原稿に書き込まない … この構成は原稿を読むだけです。書き込みの経路を作らないことで、AIの誤りが約款そのものに入ることを防ぎます
- 根拠の照合を外さない … 外すと、存在しない文言を根拠にした判定が審査の資料に載ります
- 判定の基準の例を、約款担当の管理に置く … 例の書き換えは判定の向きを変えます。誰がいつ変えたかを残します
誤りが起きた場合のリスクは、範囲の縮小を wording_only として見落とすことと、変わっていない条項を縮小として審査に上げることの2つです。 前者の方が重いので、迷った行はすべて人が読む側に寄せています。
10まず何から始めるか
1週目:判定の基準の例を30個集める
過去1年の新旧対照表から、変化の種類ごとに数個ずつ例を選び、新旧の条文と備考を一覧にします。定義の変更が他の条に及んだ例を必ず入れます。
2週目:20組で試す
審査を終えた改定案件から20組を選び、業務用の Claude のチャットで判定させます。定義の変更が及んだ組を wording_only にしていないかを最優先で見ます。
3週目:1つの約款で構造の表を作る
主契約の約款を1つ選び、Word の原稿から条・項・号・別表を取り出すプログラムを作ります。条の切れ目が正しいかを担当者が目で確かめます。
4週目:新旧の対応づけと判定の一覧を出す
その約款の過去の改定案で、対応づけと Claude API による判定の一覧を出します。この時点では対照表の並べ替えをせず、判定の一覧だけを審査済みの備考と突き合わせます。
2か月目: 定義語と別表の波及の拾い出しと、根拠の文言の照合を足し、並べ替えた新旧対照表の下書きを出します。新しい改定案件で、担当者がいまのやり方と並行して使います。3か月目以降: 対象の約款を広げ、1組12分が何分になったかを実測します。覆した記録から判定の例を足し、担当者ごとの備考の差が出力の側でそろった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 保険会社の免許の申請に事業方法書・普通保険約款・保険料及び責任準備金の算出方法書を添えること(第4条第2項)。保険契約者等の権利義務その他保険契約の内容が保険契約者等にとって明確かつ平易に定められていることが審査の基準であること(第5条第1項第3号ニ)。これらの書類に定めた事項を変えるときは内閣総理大臣の認可を受けなければならず、保険契約者等の保護に欠けるおそれが少ないものとして内閣府令で定める事項は、あらかじめ届け出なければならないこと(第123条)。保険契約の内容その他保険契約者等に参考となるべき情報の提供を行わなければならないこと(第294条) | e-Gov 法令API: 保険業法 | 2026-10-15 |
構造化出力が output_config.format に type: "json_schema" と JSON スキーマを渡して使うこと。数値の minimum/maximum、文字列の minLength/maxLength などに対応しておらず400になること。enum に対応すること。max_tokens で切れた応答はスキーマに沿わないことがあること | Claude Docs: Structured outputs | 2026-10-15 |
| 商用の製品の入力と出力を既定ではモデルの学習に使わないこと | Anthropic Privacy Center: Is my data used for model training? | 2026-10-15 |
| API の入力と出力をバックエンドから30日以内に削除すること。ゼロデータ保持の契約などを結んだ場合は例外になること | Anthropic Privacy Center: How long do you store my organization's data? | 2026-10-15 |
SequenceMatcher の ratio() が似ている度合いを0から1で返し、0.6を超えればよく似ていると見る目安であること。get_opcodes() が replace・delete・insert・equal の操作を返すこと | Python ドキュメント: difflib | 2026-10-15 |
改定が認可を要する変更か届出で足りる変更か、既契約に及ぶか、契約者へどう案内するかは、法務・コンプライアンスの担当と、必要に応じて監督当局との調整で決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1690)についてのご相談はこちらから。
