Azure AI Content Understandingのプロモードを使ってみた。

以前、Azure AI Content Understandingの概要と、標準モードを用いた単一ファイルの文書(注文書)から情報を抽出する文書分析(Document analysis)の方法について紹介しました。

Azure AI Content Understandingの文書分析(Document analysis)を使ってみた。 - JBS Tech Blog

実務では、1枚の文書から抽出するだけでなく、「複数の文書間で内容が一致しているか」を確認したい場面も多くあります。目視での確認作業は工数がかかり、表記ゆれや差分の確認が難しい場合があります。そのため、より効率的な方法を検討することが有効です。

そこで本記事では、Microsoft Foundry(旧:Azure AI Foundry)ポータルを用いて、Azure AI Content Understandingのプロモードで注文書と注文請書を比較し、内容が一致しているか確認する方法を紹介します。

注文書と注文請書を比較する方法

注文書と注文請書の「注文番号」「発注者と受注者」「発注金額」「明細」が一致するか確認します。

以下に注文書、注文書と内容が一致する注文請書(一致)、内容が一致しない注文請書(不一致)を用意しました。

  • 注文書

  • 注文請書(一致)

  • 注文請書(不一致)

前提条件

手順

  1. Microsoft Foundry(classic)ポータルで「Content Understanding」の「Custom task」を開き、「Create」を押します。

  2. 「Pro mode – Cross file analysis」を選択して、 「Create」を押します。

  3. 「Create test file set」を押します。

  4. 「Browse for files」から比較するデータをアップロードし、「Create」を押します(注文書と比較する注文請書をアップロードする)。

  5. 「Import」を押し、jsonからスキーマを読み込みます。(必要なら「Add new field」でフィールドを追加できます。)

    jsonは以下を使用しました。注文番号は一致時に true、不一致時に false を返します。その他の項目は、一致していれば true を返し、不一致の場合は内容を返します。
        {
    	"fieldSchema": {
    		"fields": {
    			"注文番号": {
    				"type": "boolean",
    				"method": "generate",
    				"description": "注文書や注文請書の注文番号。通常は右上にある。注文書と注文請書の値が同じならtrue、そうでなければfalseを返す"
    			},
    			"発注者と受注者": {
    				"type": "string",
    				"method": "generate",
    				"description": "発注者と受注者。注文書では通常、左上に発注者情報を記載し、右下に受注者情報を記載する。 注文請書では通常、左上に受注者情報を記載し、右下に発注者情報(注文元の確認欄など)を記載する。 このとき、  「注文書の発注者 == 注文請書の発注者」 「注文書の受注者 == 注文請書の受注者」 が成り立っていれば「True」、そうでなければその違いを説明する。"
    			},
    			"発注金額": {
    				"type": "string",
    				"method": "generate",
    				"description": "発注金額。通常は中央左上に書いてある。「円」や「¥」など数値以外のものは無視する。例:¥1230-(税込み)→1230\"。注文書と注文請書で同じ値なら「true」、注文書と注文請書でもし違う値ならばどこが違うか書く。"
    			},
    			"明細": {
    				"type": "string",
    				"method": "generate",
    				"description": "明細。通常は中央のテーブルで書かれている。取得するものは「No.」「品目」「数量」「単価」「金額」「小計」「消費税」「合計」。注文書と注文請書で同じ値なら「true」、違う値があればどこが違うか指摘する。"
    			}
    		},
    		"definitions": {}
    	}
    }
  6. 「Run analysis」を押し、テストします。

結果

内容が一致する場合

内容が一致する場合は、すべての項目でtrueが返されました。

比較に使用したデータは、以下の注文書と注文請書(一致)です。

内容が違う場合

内容が異なる場合は、注文番号は false、その他の項目は内容の違いが返されました。

比較に使用したデータは、以下の注文書と注文請書(不一致)です。

まとめ

本記事ではAzure AI Content Understandingのプロモードを使い、注文書と注文請書の内容を比較し、一致・不一致を確認する手順を紹介しました。

確認したい項目をスキーマとして定義しておくことで、差分の有無だけでなく、どこが異なるのかまで返せるため、確認作業の効率化やミスの早期発見に役立つと感じました。

また、本記事では触れていませんが、内容の不一致があった場合にどちらが誤っている可能性が高いかを判断しやすくするために、参照ファイル(Reference files)を設定できます。基準となるドキュメントを参照として与えることで、単なる差分検出にとどまらず、確認・修正作業をより進めやすい形で結果を得られる点も有用です。

執筆担当者プロフィール
守 康之介

守 康之介(日本ビジネスシステムズ株式会社)

Data&AI事業本部に所属。AzureのAI系を勉強中です。

担当記事一覧