Microsoft Syntexの構造化抽出モデルの精度を検証する

Microsoft Syntexのカスタムモデルとして「Layout メソッド(Layout method)」が追加されたアップデートに関しては、以前こちらの記事で紹介しました。

blog.jbs.co.jp

「Layout メソッド」は、現在は「構造化抽出」モデルとして、「類似したレイアウトのドキュメントからカスタム情報を抽出する」*1方法の一つの選択肢となっているようです。

今後のアップデートも期待される本モデルについて、日本語PDFファイルを対象に、現時点でどれほどの抽出精度が出るのか、ドキュメントの抽出対象項目やその形式を変更しながら検証を行いましたので、その結果についてご紹介します。

前提条件

前提条件については、下記のとおりです。

  • 想定ユーザーはSharePoint Online運用担当者とし、「SharePoint Syntex」ライセンスが付与されているものとします
  • SharePoint Online運用担当者は、「グローバル管理者」の役割を付与されているものとします

検証条件

検証の対象とするドキュメントについては、以下のようなフォーマットの注文書とします。

なお、本検証で使用するドキュメントは、トレーニングとテストで同じフォーマットのものを使用します。

※ トレーニングしていないドキュメントに対するモデルの精度、つまりトレーニングしたドキュメントと異なるフォーマットのドキュメントに対してテストを実行したモデルの検証精度については、検証結果セクションにて後述します。

ドキュメント内の抽出項目については、以下のNo.1からNo.11の11項目とします。

各抽出項目の呼称は、下記のとおりです。

  1. 企業名
  2. 発注金額
  3. 希望納期
  4. 品名
  5. 単価
  6. 合計
  7. 郵便番号
  8. 住所
  9. 自社名
  10. 電話番号
  11. 担当者名

今回は、上記11の抽出項目について、抽出項目の記載内容を以下の表のように変更し、各変更内容ごとの抽出精度を見ることとします。

上記の変更点については、11か所の抽出箇所におけるそれぞれの変更点をトレーニング用のドキュメント内で組み合わせることで、トレーニング後のモデルに反映させます。

たとえば、モデルAでトレーニングするドキュメントでは、表中の1-1、2-1、3-1…の項番条件を反映させ、モデルBでトレーニングするドキュメントでは、1-2、2-2、3-2…の項番条件を反映させることで、上の表内の変更点を網羅するようにします。

このような条件でドキュメントを作成することで、各抽出対象における変更点それぞれの精度を、モデルの実行結果ごとに確認、比較できるようにします。

また、モデル側の抽出器については、以下のように種類が選択できますが、今回は汎用的に使える「Text field」を主に使用します。「単価」「合計」の数値の情報については「Number field」を使って検証してみます。

検証結果

今回は、上記の検証条件を考慮して、8モデルをコンテンツセンターで作成しました。

作成した8モデルについては、それぞれ個別のドキュメント ライブラリに格納された、トレーニングで使用したドキュメントと同じ書式の5つのドキュメントに対し、一対一対応でモデルを実行します。

モデルを実行した際の抽出結果については、以下のような抽出判定としました。

  • 誤字脱字がない場合:抽出成功、「〇」判定
  • 誤字脱字があるがおおよそ抽出できている場合:人の手で修正可能、「△」判定
  • 指定と異なる箇所から抽出 or 抽出できていない場合:抽出失敗、「×」判定

上記のようにモデルを実行し、抽出されたプロパティと実際のドキュメントの記載内容を比較した際の検証結果は、以下のようになりました。

検証結果の概要をまとめると以下のようになります。

  • 「Text Field」抽出器を利用してモデルを作成すれば、トレーニング時と同じ形式のドキュメントであれば、基本的に正確に抽出できる
  • フォントサイズに関係なく、特殊記号を含めても、正確に抽出できる
  • 「企業名」の「御中」など、抽出対象との間に空白が存在しなくても、「御中」を除いた抽出対象を抽出することができる
  • 一方、トレーニングを行うドキュメントについて、抽出対象外の記号等がトレーニング時の仕様によって抽出対象範囲に含まれる場合、そのトレーニング結果によって作成されたモデルを実行すると、そのまま対象外の情報を抽出するモデルとなる
  • そのため、必要な情報以外については抽出対象範囲としないようにトレーニングする、もしくは、トレーニング時の仕様によって抽出対象範囲とさせないドキュメントの構成を考える必要がある
  • 「品名」「単価」など、1ドキュメント内に複数存在する項目であっても、一つの抽出器で抽出することで、ドキュメント ライブラリの一つの列内に、プロパティとして抽出することができる
  • 「単価」「合計」については、カンマ区切りがある場合、「Number field」の抽出器とした際は精度が低かったが、「Text field」とした際は100%の精度となった
  • 「住所」の末尾の数字(特に10-10-10など)が取得できていないケースが発生した
  • 「住所」を2行にしたドキュメントを抽出しようとすると、2行目の先頭文字における小文字やのばし文字「ー」を正確に抽出できないケースが発生した
  • 「担当者名」の「祥」「﨑」「朗」などの一部の旧漢字については正しく抽出できなかった

また、トレーニングしたドキュメントと異なるフォーマットのドキュメントに対してテストを実行したモデルについても精度検証を行いましたが、「〇」「△」判定となったのはおおよそ35-50%程で、残りの50-65%については、「×」判定となりました。

こちらについては、トレーニングで追加するドキュメントの種類を増やしたり、テストで使用するドキュメントに類似したフォーマットのドキュメントをトレーニング時にコレクションとして追加することで、抽出の精度は向上すると思われますが、今回のようなトレーニング時と同じ形式のドキュメントに対する精度レベルでの抽出は、期待できない可能性が高いです。

まとめ

同一フォーマットのドキュメントから必要な情報をSharePoint Onlineのドキュメント ライブラリに追加する作業を自動化するには、やはりMicrosoft Syntexの構造化抽出モデルが最も適しているようです。

トレーニングの際、必要な情報の範囲のみを抽出できず、その前後の「:」や「()」の記号を含んでしまうケースもありましたので、そちらの点については動作の改善を期待したいと思います。

*1:Microsoft Syntexのコンテンツセンターの記載より抜粋

執筆担当者プロフィール
色部 晟洋

色部 晟洋(日本ビジネスシステムズ株式会社)

SharePoint Onlineサイト構築・Microsoft365移行等でプリセールス・PMを経験後、AI等の先端技術を扱う部門に異動。好きな映画は『風立ちぬ』です。

担当記事一覧