社内規程を改定したときに、改定された条項だけを英語版の規程に訳し直し、用語集と既存の訳にそろえた差分訳の案を作る
日本語の社内規程が改定されたときに、改定された条項だけを取り出し、英語版の該当箇所を訳し直した案を作ります。用語集と今の英語版の言い回しにそろえ、担当者は変わった部分だけを確かめて英語版に反映します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Python
- 対象業界
- IT・SaaS/商社/製造/金融
- 対象部門
- 法務/総務
- 対象業務
- 書類作成/比較検討
- 主な課題
- 属人化している/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 翻訳
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 日本語の規程の改定が決まると、規程の主管部署が新旧対照表を作り、法務部へ回す
- 法務部の担当者が、英語版の Word ファイルを開いて、改定された条項に当たる箇所を探す
- 改定後の日本語を読み、該当箇所を訳し直す。必要に応じて機械翻訳のサービスを使う
- 用語集のスプレッドシートを開き、訳語が用語集とそろっているかを確かめる
- 同じ規程のほかの条項や、別の規程で同じ言い回しがどう訳されているかを探して合わせる
- 英語版の Word ファイルに反映し、改定日と版を書き換える
- 英文の規程を書き慣れた担当者が全体を読み直し、承認して公開する
- 人規程の主管部署が、改定後の日本語の規程を規程ライブラリに保存し、状態の列を「施行確定」にする
- 自動状態の変更をきっかけにフローが動き、英語版のある規程かどうかを確かめる
- 自動改定前と改定後の日本語の Word ファイルを取り出し、条・項・号の単位に分ける
- 自動プログラムが改定前後の差分を計算し、変わった条項と、番号だけが変わった条項を分ける
- 自動変わった条項ごとに、今の英文と、その条項に出てくる用語集の語を集める
- 自動Azure OpenAI が、変わった部分だけを訳し直した英文の案と、用語集に無い語の候補を返す
- 自動プログラムが、数値の一致、用語集の訳の使用、変えていない文が残っているかを点検する
- 自動条項ごとの差分訳の案を、確認用のリストに1行ずつ書き出す
- 人担当者が条項ごとに案を確かめ、直して承認する
- 人承認された英文を英語版の Word ファイルに反映し、英文の規程を書き慣れた担当者が最終確認する
- 【人/自動】 用語集に無かった語のうち、訳を決めたものを用語集に足す
各工程の詳しい説明を読む
- 日本語の規程の改定が決まると、規程の主管部署が新旧対照表を作り、法務部へ回す
- 法務部の担当者が、英語版の Word ファイルを開いて、改定された条項に当たる箇所を探す
- 改定後の日本語を読み、該当箇所を訳し直す。必要に応じて機械翻訳のサービスを使う
- 用語集のスプレッドシートを開き、訳語が用語集とそろっているかを確かめる
- 同じ規程のほかの条項や、別の規程で同じ言い回しがどう訳されているかを探して合わせる
- 英語版の Word ファイルに反映し、改定日と版を書き換える
- 英文の規程を書き慣れた担当者が全体を読み直し、承認して公開する
(a)英語版の反映が遅れる。 日本語の改定は施行日に合わせて必ず公開されますが、英語版は後回しになります。最後の確認が1名に集まるため、忙しい月には2〜3か月分がたまります。 その間、外国籍の社員は古い規程を読んで判断しています。
(b)訳し直すと、変えていない文まで変わる。 改定された条項をまるごと機械翻訳にかけると、改定と関係のない文の言い回しまで変わります。英語版の読み手には、どこが本当に変わったのかが分かりません。 担当者が元の英文に戻す作業も発生します。
(c)同じ用語の訳が、規程ごとにばらつく。 「管理監督者」「所属長」「業務委託先」のような語は、規程ごとに別の担当者が別の時期に訳しています。用語集はありますが、見に行くかどうかは担当者次第です。 用語集に無い新しい語は、その場で誰かが訳を決め、用語集には足されません。
(d)条番号の繰り下げが、ほかの条項に波及する。 条を1つ挿入すると、それ以降の条番号がずれ、「第12条に定める」のような参照が別の規程にまで及びます。日本語版では直っているのに、英語版では Article 12 のままという食い違いが残ります。
- 【人】 規程の主管部署が、改定後の日本語の規程を規程ライブラリに保存し、状態の列を「施行確定」にする
- 【自動】 状態の変更をきっかけにフローが動き、英語版のある規程かどうかを確かめる
- 【自動】 改定前と改定後の日本語の Word ファイルを取り出し、条・項・号の単位に分ける
- 【自動】 プログラムが改定前後の差分を計算し、変わった条項と、番号だけが変わった条項を分ける
- 【自動】 変わった条項ごとに、今の英文と、その条項に出てくる用語集の語を集める
- 【自動】 Azure OpenAI が、変わった部分だけを訳し直した英文の案と、用語集に無い語の候補を返す
- 【自動】 プログラムが、数値の一致、用語集の訳の使用、変えていない文が残っているかを点検する
- 【自動】 条項ごとの差分訳の案を、確認用のリストに1行ずつ書き出す
- 【人】 担当者が条項ごとに案を確かめ、直して承認する
- 【人】 承認された英文を英語版の Word ファイルに反映し、英文の規程を書き慣れた担当者が最終確認する
- 【人/自動】 用語集に無かった語のうち、訳を決めたものを用語集に足す
4番目が、この設計の分かれ目です。 差分を計算するのはプログラムで、AIではありません。どこが変わったかをAIに判断させると、変わっていない条項まで「改善」されます。 変わった条項だけを渡すことで、英語版の変更が日本語の改定と同じ範囲に収まります。
9番目の確認も条項単位にし、1名に集まっていた負荷を3名で分けます。
02今回想定するシステム構成
規程ライブラリ(日本語版/英語版の Word。版管理あり) │ 状態の列を「施行確定」に変更 ▼【トリガー】ファイルが作成または変更されたとき(プロパティのみ) Power Automate ├──▶ 英語版のある規程か(対応表を引く) ├──▶ 改定前と改定後の日本語ファイル、今の英語版ファイルを取得 ▼ Python(Azure Functions) │ ① 条・項・号に分ける │ ② difflib で改定前後の差分を計算(変更/追加/削除/番号のみ) │ ③ 用語集の語を条項ごとに拾う ▼ Azure OpenAI(Microsoft Foundry)── 構造化出力 │ 変わった部分だけを訳し直した英文、用語集に無い語の候補 ▼ Python ── 数値・用語・変えていない文の点検 ▼ 確認リスト「英語版差分訳」(1条項1行) ▼ 【人】条項ごとに確認・承認 → 英語版へ反映 → 最終確認
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude、Gemini |
| 連携 | Power Automate | Make、n8n |
| 差異計算 | Python(Azure Functions 上で difflib を使う) | Azure Container Apps 上の同じ処理 |
| 規程と確認の置き場 | SharePoint のライブラリとリスト | Box、Google ドライブ |
新しく作るのは、日本語版と英語版の規程を対応させた対応表と、条項ごとの案を並べる確認リストの2つです。 用語集は SharePoint のリストへ移します。
土台になるのは、Microsoft Foundry で提供される Azure OpenAI のモデルです。 Azure が販売するモデルは Microsoft の Azure 環境でホストされ、モデルの提供元が運営するサービスとはやり取りしないとされています。入力と出力は他の顧客にもモデルの提供元にも提供されず、許可や指示なしに生成AIの基盤モデルの学習に使われないとされています。施行前の規程の案を扱うので、この点を最初に確かめます。
出力は構造化出力で受け取ります。 指定した JSON Schema に従わせる機能で、Chat Completions では response_format、Responses では text.format にスキーマを書きます。古い JSON モードは、スキーマへの厳密な準拠を保証しないとされています。
差分の計算には、Python の標準ライブラリの difflib を使います。 SequenceMatcher は、ハッシュ可能な要素の並びであればテキストに限らず2つの並びを比べられるクラスで、get_opcodes() は一方をもう一方に変えるための操作を replace/delete/insert/equal の4種類のタグで返します。条項を要素とする並びを比べれば、どの条項が置き換わり、どこに条項が挿入されたかが、そのまま分かります。
03どうやって実装するのか
処理の起点を決める
規程ライブラリの状態の列が「施行確定」に変わったことを起点にします。 SharePoint コネクタのトリガー「ファイルが作成または変更されたとき (プロパティのみ)」で受け、トリガーの条件で状態の列を絞ります。このトリガーはライブラリの列に格納されたプロパティだけを返すので、ファイルの中身は後の手順で取り出します。
保存しただけでは動かしません。 規程の主管部署は、改定の検討中にも何度もファイルを上書きします。そのたびに差分訳を作ると、確定していない改定の英訳が確認リストにたまり、どれが施行される版か分からなくなります。 施行が決まった版だけを対象にします。
あわせて、月に1回、英語版の反映が終わっていない規程を一覧にする定時実行を置きます。確認リストに「未承認」の行が残っている規程と、日本語版の施行日から英語版の改定日までの日数を並べ、反映の遅れを見える状態にします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 改定後の日本語の規程 | 「施行確定」になった版の Word ファイル | 規程ライブラリ |
| 改定前の日本語の規程 | 1つ前に施行された版の Word ファイル | 規程ライブラリの版の履歴 |
| 今の英語版の規程 | 公開中の英語版の Word ファイル | 規程ライブラリ |
| 対応表 | 日本語版と英語版のファイルの組、条番号の対応、英語版の最終改定日 | SharePoint のリスト |
| 用語集 | 日本語の用語、英訳、使わない訳、注記、登録日 | SharePoint のリスト |
| 書き方の決まり | 英語版の文体(shall の使い方、条番号の書き方、敬称の扱いなど) | 法務部が用意する短い文書 |
質を決めるのは、改定前の版です。 改定後の版だけを渡すと、どこが変わったかを判断するのがAIになります。改定前の版を版の履歴から取り出せることが、この構成の前提です。 規程ライブラリで版管理を有効にし、施行した版を「主要な版」として残す運用にします。
用語集の「使わない訳」の列が効きます。 「従業員」なら employee を使い、staff や worker は使わない、といった形で並べます。使ってほしい訳だけでなく、使ってほしくない訳を書いておくと、後段の点検が機械でできます。
データの取得方法を決める
| 取るもの | どの操作で | 何に使うか |
|---|---|---|
| 状態の変更 | トリガー「ファイルが作成または変更されたとき (プロパティのみ)」 | 対象の規程と版を知る |
| 変更の内容 | 「アイテムまたはファイルの変更を取得する (プロパティのみ)」 | 前に施行された版の版ラベルと、どの列が変わったか |
| ファイルの中身 | 「ファイル コンテンツの取得」 | 改定後の日本語、今の英語版 |
| 前の版の中身 | 「SharePoint に HTTP 要求を送信する」で版の履歴を引く | 改定前の日本語 |
| 対応表・用語集 | 「アイテムを取得」 | 英語版の有無、条番号の対応、用語 |
「アイテムまたはファイルの変更を取得する (プロパティのみ)」は、リストのバージョン管理が有効になっている必要があります。 開始には版ラベル(例:3.0)や日付を指定でき、マイナー(下書き)の版を含めるかも選べます。下書きの版は含めない設定にします。 含めると、検討中に上書きされた版との差分を計算してしまいます。
前の版のファイルの中身は、SharePoint の REST API で版の履歴から取ります。 「SharePoint に HTTP 要求を送信する」はアクセス権のある SharePoint の REST API を実行できる操作で、公式にも注意して使うよう書かれています。 フローの接続に使うアカウントには、規程ライブラリの読み取りと確認リストへの書き込みだけを与えます。
呼び出しの回数にも上限があります。 SharePoint コネクタは接続ごとに60秒あたり600回が上限です。組織変更のように何十本もの規程が同時に「施行確定」になる日は、規程ごとに順番に処理するよう、フローの同時実行を絞ります。
AIへ渡す前に整形する
- 本文の取り出し … Word ファイルから段落を順に取り出し、表と注記は別に分けます
- 条・項・号への分割 … 「第N条」「(見出し)」「2」「(1)」の並びで分け、条項ごとに
art12-2-1のような識別子を付けます。英語版は Article 12 (2) (i) の並びで同じ識別子を付けます - 差分の計算 … 改定前後の条項の並びを
SequenceMatcherで比べ、get_opcodes()のタグで「変更」「追加」「削除」を決めます - 番号だけの変更の判定 … 本文が同じで条番号だけがずれた条項は「番号のみ」とし、AIには渡しません
- 参照の洗い出し … 本文中の「第N条」「前条」「別表N」を拾い、番号がずれた条を参照している条項に印を付けます
- 用語の拾い出し … 変わった条項の日本語に用語集の語が出てくるかを文字列で照合し、該当する行だけを集めます
- 今の英文の取り出し … 識別子で英語版の該当条項を引きます。引けない条項は「英語版に対応なし」とします
4番目と5番目を、AIに任せないでください。 条を1つ挿入すると、それ以降の条はすべて「番号が変わった」ことになります。これを全部AIに渡すと、番号を直すついでに本文まで訳し直されます。 番号のずれと参照の書き換えは、規則で直せる作業です。
6番目で用語集を丸ごと渡さないのも同じ理由です。 数百語の用語集を毎回渡すと、その条項に関係のない語の訳に引きずられます。その条項に出てくる語だけを渡します。
AIに処理させる
させるのは、変わった条項について、今の英文を最小限だけ直した案を作ることです。 新しく追加された条項は新しく訳し、削除された条項は AI に渡さず、英語版からも削除する印だけを付けます。
| させること | 中身 |
|---|---|
| 差分の訳 | 改定前後の日本語の違いに当たる部分だけを、今の英文の中で直す |
| 新しい条項の訳 | 追加された条項を、同じ規程のほかの条項の文体に合わせて訳す |
| 用語の適用 | 渡された用語集の語は、用語集の英訳を使う |
| 新しい語の報告 | 用語集に無い語が出てきたら、訳の候補を2つまで挙げて報告する |
| 変更箇所の説明 | 英文のどの部分を、日本語のどの変更に合わせて直したかを書く |
| させないこと | 理由 |
|---|---|
| 変わっていない文の言い回しの改善 | 英語版の読み手が、何が変わったかを読み取れなくなる |
| どこが変わったかの判断 | 差分はプログラムが計算して渡す |
| 条番号と参照の書き換え | 規則で直す。AIに直させると本文まで変わる |
| 用語集に無い語の訳の確定 | 候補を出すだけ。決めるのは担当者 |
| 法的な意味の補足や注釈 | 日本語版に無い説明を英語版にだけ足さない |
1行目がいちばん起きやすい失敗です。 生成AIに英文を渡すと、頼まなくても言い回しを整えます。整った英文になっても、その変更は日本語の改定とは関係がありません。 英語版の改定履歴に、改定していない変更が混ざります。
指示内容を固定する
あなたは、日本語の社内規程の英語版を管理する法務部の担当者です。
日本語の規程が改定されました。英語版を、改定と同じ範囲だけ直してください。
【渡すもの】
- 改定前の日本語の条項:{ja_before}
- 改定後の日本語の条項:{ja_after}
- 差分の種類:{change_type}(modified / added)
- 今の英語版の条項:{en_current}(added のときは空)
- この条項に出てくる用語集の語:{glossary}
- 同じ規程のほかの条項の英文(文体の参考):{en_context}
- 書き方の決まり:{style_rules}
【厳守事項】
- 改定前と改定後の日本語で、変わっていない部分に当たる英文は、
1語も変えないでください。言い回しの改善もしないでください。
- 変えた部分は、changes に「日本語のどの変更に合わせて、
英文のどこをどう直したか」を1件ずつ書いてください。
- 用語集にある語は、用語集の英訳を必ず使ってください。
「使わない訳」の列にある訳は使わないでください。
- 用語集に無い語で、規程の中で意味を持つ語(役職名、制度名、
手続きの名前など)が出てきたら、訳を確定させずに new_terms に
入れ、候補を2つまで挙げてください。本文には第1候補を入れてください。
- 数字、日数、金額、割合、日付は、日本語のとおりに書いてください。
単位の換算や丸めをしないでください。
- 条番号と、ほかの条項への参照(第N条、前条、別表)は直さないでください。
そのまま残してください。
- 日本語に書かれていない説明、注釈、例を足さないでください。
- 日本語の意味が2通りに読めて、英文を1つに決められないときは、
ambiguity にその箇所と2通りの読み方を書いてください。
- added のときは、同じ規程のほかの条項の文体(shall の使い方、
主語の書き方)に合わせてください。
「1語も変えない」を最初に置き、「言い回しの改善もしない」を重ねて書いています。 「変わった部分だけ直す」とだけ書くと、変わった部分を直したうえで、ほかの文も「ついでに」整えます。禁じるのは、頼まれていない改善そのものです。
用語集に無い語を本文に入れさせたうえで new_terms にも出させるのは、空欄の英文を確認リストに並べないためです。第1候補が入った文を読みながら、担当者が訳を決められます。決めた訳は用語集に足し、次の改定からは用語集の語として渡します。
出力形式を固定する
次の形のJSONで受け取ります。 構造化出力で strict: true を指定し、スキーマどおりに返させます。
{
"clause_id": "art12-2",
"change_type": "modified",
"en_proposed": "",
"changes": [
{ "ja_change": "", "en_before": "", "en_after": "" }
],
"glossary_applied": [
{ "ja": "", "en": "" }
],
"new_terms": [
{ "ja": "", "candidates": ["", ""], "used_in_text": "" }
],
"ambiguity": [
{ "ja_text": "", "reading_1": "", "reading_2": "" }
]
}
1つ目の理由は、changes があると確認が速くなることです。 英文を最初から読まなくても、日本語のどの変更に合わせて英文のどこを直したかが1行ずつ並びます。changes に無い箇所の英文が変わっていれば、それは頼んでいない変更です。
2つ目は、後段のプログラムで機械的に点検できることです。 構造化出力では、すべての項目を必須にし、オブジェクトには additionalProperties: false を付ける決まりがあります。項目が欠けた出力が来ない前提で、点検を組めます。 オブジェクトの項目は合計100個まで、入れ子は5段までなので、上の形で十分に収まります。
ただし、文字数や形式の制約はスキーマに書けません。 文字列の minLength、maxLength、pattern、format、配列の minItems、maxItems は使えないキーワードです。「en_proposed が空でないこと」や「候補が2つまで」は、受け取った後にプログラムで確かめます。
後段の点検は次の4つです。
| 点検 | やり方 | 引っかかったとき |
|---|---|---|
| 変えていない文が残っているか | 今の英文と案の英文を difflib で比べ、changes に無い変更を探す | over_rewrite の印 |
| 数値の一致 | 改定後の日本語と案の英文から数字を抜き出して突き合わせる | number_mismatch の印 |
| 用語集の訳 | 用語集の語の英訳が案に入っているか、使わない訳が入っていないか | glossary_violation の印 |
| 条番号と参照 | 案の英文の Article N が今の英文と同じか | 規則で直した番号に置き換える |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 規程ライブラリ | SharePoint コネクタのトリガーと取得の操作 | 施行確定の版、前の版、英語版を取る |
| Azure Functions | HTTP の呼び出し | 条項への分割、差分の計算、点検 |
| Azure OpenAI | 関数の中から API を呼ぶ | 変わった条項ごとの差分訳の案 |
| 確認リスト | 「項目を作成する」 | 1条項1行で案を書き出す |
| 用語集 | 「アイテムを取得」「項目を作成する」 | 語を引く/承認された新しい語を足す |
英語版の Word ファイルへは、この構成からは書き込みません。 承認された英文の反映は担当者が行います。英語版は外国籍の社員が日々読んでいる文書で、誤って書き換えると、そのまま読まれます。 反映まで自動にするのは、確認リストの運用が半年ほど安定してからです。
確認リストの列は、左から「規程名」「条項」「差分の種類」「改定前の日本語」「改定後の日本語」「今の英文」「案の英文」「変更の説明」「点検の印」「状態」です。 状態は「未確認」「修正して承認」「そのまま承認」「差し戻し」の4つにします。
人が確認する
- 点検の印が付いた行から見る …
over_rewrite、number_mismatch、glossary_violationが付いた行は、案の英文をそのまま使えない可能性が高い行です changesと、今の英文・案の英文の違いを見比べる … 確認リストには差分を色付けして表示します。changesに書かれていない色付きの箇所があれば、元に戻しますnew_termsの訳を決める … 候補から選ぶか、別の訳を決めます。決めた訳は用語集への追加の欄に入れますambiguityのある行は、主管部署に日本語の意図を確かめる … 英文を決める前に、日本語の規程のほうが2通りに読めることを主管部署に伝えます- 承認した英文を英語版に反映する … 反映の後、英文の規程を書き慣れた担当者が、改定された条項だけを最終確認します
4番目は、この構成の副産物です。 英訳しようとして初めて、日本語の規程が2通りに読めることに気づく場面があります。それを英語版の側だけで解決しないでください。 日本語の規程を直すべきかは、主管部署が決めることです。
最終確認は全文ではなく、改定された条項だけです。 これまで1名に集まっていた全体の読み直しを、条項単位の確認に変えることで、最終確認の負荷を減らしつつ、英文の質の基準は1名が持ち続けます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 規程を全面改定し、条項の大半が変わった | 差分訳ではなく全体の訳し直しとして別に扱う。変更の条項が全体の半分を超えたら、自動では処理しない |
| 英語版に対応する条項が無い | 「英語版に対応なし」の印を付け、新しい条項として訳す |
| 条・項・号に分けられない書き方の規程 | 表や別表が中心の規程は段落単位で分け、needs_human の印を付ける |
| 前の版が版の履歴に無い | 版管理を有効にする前の規程。新旧対照表を手で添付してもらう |
| 構造化出力が拒否を返した | 拒否の内容を確認リストに残し、その条項は担当者が訳す |
| 数値が合わない | number_mismatch で人へ。案の英文を直さずに承認しない |
| 同じ規程が短い間隔で2回施行確定になった | 前回の確認リストの行が未承認なら、前回の行を「差し戻し」にしてから新しい版で作り直す |
| 呼び出しが上限に当たった | 待って再実行する。確認リストに書き出せた条項は、二重に作らない |
1行目の線引きは先に決めておきます。 全面改定の規程を差分訳の仕組みで処理すると、変更が多すぎて changes の確認が全文を読むより重くなります。差分訳が向くのは、改定が規程の一部にとどまる場合です。
記録を残す
- 処理した規程と、改定前・改定後の版ラベル、英語版の版ラベル
- 条項ごとの差分の種類(変更/追加/削除/番号のみ)
- AIに渡した入力(日本語、英文、用語)と、返ってきたJSONの全文
- 点検の結果(
over_rewrite、number_mismatch、glossary_violation) - 担当者が案をどう直したか(案の英文と、承認した英文の両方)
- 用語集に足した語と、その語が初めて出た規程・条項
- 日本語版の施行日と、英語版の改定日
5つ目が、この構成を育てる材料です。 担当者が直した箇所を月に1回見直すと、AIが繰り返し外す言い回しが分かります。多くは用語集か書き方の決まりに1行足せば直ります。
最後の行で、英語版の遅れを数字で追えます。 日本語版の施行日から英語版の改定日までの日数を規程ごとに並べ、30日を超えているものを月次の一覧に出します。
04実装レベルの3段階
最小構成は、確かめるための段階です。 月80件はさばけません。 半自動化で、1件45分が15分になり、この段階が本記事の想定です。 差分の計算、該当箇所の検索、用語集の照合がなくなり、担当者は確認リストの1行を見て直すことに時間を使います。反映は担当者が行うので、英語版のファイルを壊す経路はありません。 本格構成は、「そのまま承認」の割合が高くなり、over_rewrite がほとんど出なくなった規程から進めます。 就業規則のように処遇に直接関わる規程は、反映まで人が行う形を残してもよいと考えます。
05工数削減シミュレーション
導入後 80件 × 15分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 外国籍の社員や海外の拠点・子会社を抱え、就業規則・情報セキュリティ規程・経費規程などの英語版を社内で持っている会社。日本語の規程が毎月のように改定され、英語版への反映が担当者1〜2名の手作業で、反映が数か月遅れたり、同じ用語の訳が規程ごとにばらついたりしている場合。規程を SharePoint のライブラリで版管理している場合。
- 英語版の規程が数本しかなく、改定も年に数回の場合。英語版を翻訳会社にまとめて発注し、社内で訳文を持っていない場合。英語版のほうを正本とする契約や規程を扱う場合。なお、英語版の訳文が法的に正しいかの判断や、どちらの言語を正本とするかの決定は、この構成では代替できません。
07最小構成で試す方法
- 過去半年に改定された規程から3本を選ぶ(1本は、条の挿入で番号がずれたものを入れる)
- 新旧対照表から、改定された条項を5〜10か所拾い、改定前後の日本語と、改定前の英語版の該当箇所を並べる
- 用語集から、その条項に出てくる語だけを抜き出す
- 社内で使える生成AIの画面に、第7章のプロンプトと、条項ごとの日本語・英文・用語を貼り付ける
- 出てきた案を、実際に英語版で反映した英文と比べる
見るのは上手な英文かではなく、変わっていない英文が残っているかと、用語集の訳が使われているかです。
| 出てきた内容 | 判断 |
|---|---|
| 変わった部分だけが直り、用語もそろっている | 差分の計算と確認リストの連携に進む |
| 変わっていない文の言い回しまで直った | 指示の書き方と、渡す英文の範囲で直る。構成は有効 |
| 条項の対応が取れず、英文の該当箇所を探すのに時間がかかった | 英語版の条項の書き方をそろえるのが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 その場合は、英語版の Article の書き方をそろえる作業を先に行います。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 変わっていない文まで言い回しが変わる | 変わった条項だけを渡す。 指示に「1語も変えない」と書き、difflib で changes に無い変更を検知する |
| 条の挿入で、以降の条がすべて「変更」になる | 本文が同じで番号だけ違う条項を「番号のみ」とし、AIに渡さない |
| 英語版の参照が Article 12 のまま残る | 参照の書き換えは規則で行う。番号がずれた条を参照する条項に印を付ける |
| 用語集を丸ごと渡して、関係ない語に引きずられる | その条項に出てくる語だけを文字列の照合で集めて渡す |
| 新しい語の訳が確認されないまま定着する | new_terms に出させ、担当者が決めてから用語集に足す |
| 下書きの版との差分を取ってしまう | 変更の取得でマイナーの版を含めない。施行した版を主要な版として残す |
| 数字が換算・丸めされる | 指示で禁じ、後段で数字を突き合わせる |
| 文字数の上限をスキーマで指定しようとする | maxLength などは使えないキーワード。受け取った後にプログラムで見る |
| 全面改定の規程を差分訳で処理する | 変更が半分を超えたら自動処理から外す |
| 日本語の規程の曖昧さを英語版だけで解決する | ambiguity は主管部署に戻す |
| 英語版のファイルへの反映を最初から自動にする | 確認リストの運用が安定するまで、反映は人が行う |
上の2行が、この構成の失敗のほとんどです。 どちらも「どこが変わったか」の判断をAIに寄せたときに起きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 施行前の社内規程の改定案、賃金・評価・懲戒に関わる条項、情報セキュリティの管理策の中身です。個人の情報は原則として含みませんが、施行前の規程は社内でも公開範囲が限られる情報です。
- モデルの提供元とデータをやり取りしない環境で動かす … Azure が販売するモデルはMicrosoft の Azure 環境でホストされ、入力と出力はモデルの提供元に提供されないとされています。社内で使う生成AIの画面と同じ扱いにしてよいかを、情報セキュリティの担当と先に確かめます
- デプロイの種類で処理の場所が変わる … 標準のデプロイでは指定した地域の中で処理されますが、「Global」の種類では対象のモデルがデプロイされている任意の地域で、「DataZone」の種類ではそのデータゾーンの中で処理されることがあるとされています。どの種類を使うかを決めて記録します
- 不正利用の監視のためのデータの保存を確かめる … 不正利用の監視では、人の確認のためにプロンプトと出力が保存されることがあり、条件を満たす顧客は監視の変更を申請できるとされています。規程の内容を扱ううえで、この扱いを受け入れるかを決めます
- 英語版は「訳文」であることを明記する … 英語版の冒頭に、日本語版が正本であり、食い違いがあれば日本語版が優先することを書く運用にしておくと、差分訳の誤りがそのまま規程の効力を持つことを防げます。 どちらを正本とするかは、自社の法務が決めることです
- フローの接続のアカウントの権限を絞る … 「SharePoint に HTTP 要求を送信する」はアクセス権のある REST API を実行できるため、接続のアカウントには規程ライブラリの読み取りと確認リストへの書き込みだけを与えます
- 用語集の追加は人が決める … 用語集は以後のすべての訳の基準になるため、AIの候補をそのまま入れません
誤りが起きた場合のリスクは、英語版の規程が日本語版と違う内容になることです。 数値と承認者の記載が違うと、外国籍の社員は英語版に従って行動します。数値の点検と、承認者の名称の用語集での固定は、設計で守ります。
10まず何から始めるか
1週目:英語版のある規程と、条項の書き方を棚卸しする
英語版のある70本について、日本語版と英語版の組を対応表にまとめ、英語版の条番号の書き方(Article 12 (2) か、12.2 か)がそろっていないものを洗い出します。
2週目:過去の改定で試す
過去半年の改定から3本を選び、改定された条項を生成AIの画面に貼って差分訳の案を出させます。変わっていない英文がそのまま残っているか、用語集の訳が使われているかを最優先で見ます。
3週目:用語集を整える
用語集をスプレッドシートから SharePoint のリストに移し、「使わない訳」の列を足します。 2週目の試しで、案と担当者の訳が分かれた語を優先して埋めます。あわせて、規程ライブラリの版管理と、施行した版を主要な版として残す運用を確かめます。
4週目:差分の計算と確認リストをつなぐ
Python の関数で条項への分割と差分の計算を作り、施行確定をきっかけに、変わった条項の一覧を確認リストに書き出すところまで作ります。この時点では AI を呼ばず、差分の一覧が新旧対照表と一致するかだけを見ます。
2か月目: Azure OpenAI の差分訳と後段の点検を足し、確認リストに案を並べます。担当者が直した箇所を毎週数えます。 3か月目以降: 直した箇所の傾向から用語集と書き方の決まりを足し、1件45分が何分になったかを実測します。日本語版の施行から英語版の改定までの日数が30日を切るようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Azure が販売するモデル(Azure OpenAI を含む)が Microsoft の Azure 環境でホストされ、モデルの提供元が運営するサービスとやり取りしないこと。プロンプトと出力が他の顧客やモデルの提供元に提供されず、許可や指示なしに基盤モデルの学習に使われないこと。標準のデプロイでは指定した地域で処理され、Global と DataZone では処理の場所が広がること。不正利用の監視で人の確認のためにデータが保存されることがあり、監視の変更を申請できること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-06 |
構造化出力が JSON Schema に従わせる機能で、Chat Completions では response_format、Responses では text.format に書くこと。JSON モードはスキーマへの厳密な準拠を保証しないこと。すべての項目を必須にし additionalProperties: false を付けること。オブジェクトの項目は合計100個・入れ子5段までであること。minLength・maxLength・pattern・format・minItems・maxItems などが使えないこと | Microsoft Learn: How to use structured outputs with Azure OpenAI | 2026-10-06 |
| トリガー「ファイルが作成または変更されたとき (プロパティのみ)」がライブラリの列のプロパティだけを返すこと。「アイテムまたはファイルの変更を取得する (プロパティのみ)」にリストのバージョン管理が必要で、版ラベルや日付で範囲を指定でき、マイナーの版を含めるかを選べること。「SharePoint に HTTP 要求を送信する」がアクセス権のある REST API を実行できること。「ファイル コンテンツの取得」「アイテムを取得」「項目を作成する」の操作。接続ごとに60秒あたり600回の呼び出しの上限 | Microsoft Learn: SharePoint コネクタ | 2026-10-06 |
SequenceMatcher がハッシュ可能な要素の並びを比べるクラスであること。get_opcodes() が replace/delete/insert/equal のタグで変換の操作を返すこと | Python ドキュメント: difflib | 2026-10-06 |
英語版の訳文が法的に正しいか、どちらの言語を正本とするかは、自社の法務部と顧問弁護士で決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0618)についてのご相談はこちらから。
