はじめに
IQ Botでフィールド項目をマッピングする3つの方法のうち、この記事では「フローティング」について解説します。
フローティングによるマッピングとは
IQ Botは以下のように、ラベルを指定すると、それに紐づく値を自動で取得してきます。
この、自動取得したマッピングを変えずにそのままにしておくのが「フローティング」のやりかたです。
動画の字幕には「値の場所が正しい場合は、このままでOK」と書いてありますが、フローティングの考え方をしっかり理解した上でないと、つまずく原因になるので注意が必要です><!
フローティングでマッピングすることの意味
フローティングでマッピングするということは、「どんな場合でも、IQ Botが自動取得してきた値の位置を信じます」という意味になります。
具体例
例えば、帳票の一部が以下のようになっている請求書があったとします。
IQ Botで読み取ると、以下のようなSIRが生成されました。
この中で、「送料」をラベルとして選択すると、おそらく以下のように、送料の右側の「1,000円」をIQ Botが送料に紐づく値として自動取得してくるはずです。
これをそのまま放っておけば、フローティングによるマッピングをしたということになります。
フローティングの注意点
フローティングによるマッピングは、一見すると楽ですが、注意が必要な場合もあります。
具体例1
先ほどと同じ請求書で、今度は送料の欄が空白になっている帳票が来ました。
IQ Botは送料のラベルに紐づく値を探しに行こうとしますが、最もそれらしい右側には値がありません。
そこで、下にある「合計」という文字を値として拾ってきてしまう場合があります。
フローティングによるマッピングは、「どんな場合でも、IQ Botが自動取得してきた値の位置を信じます」という意味ですが、このケースは、IQ Bot が自動取得した値の位置を信じてはいけませんよね。
なので、このケースはフローティングによるマッピングが適さないケースであるといえます。
具体例2
例えば手書きの帳票で、氏名欄が以下のように書かれてくるとします。
手書きの帳票は活字帳票と違って、値の書かれる位置が安定しません。
SIRの括られ方も、以下のように変わることがあります。
これをフローティングでマッピングすると、例えば以下のような問題が出てきてしまいます。
フローティングの問題点の回避策
以上のような、フローティングによるマッピングの問題点を回避するための方法が、「相対座標によるマッピング」です。
筆者が実際にIQ Bot を使うときは、フィールドのほぼ全項目を相対座標でマッピングしています。
ぜひ、上記のリンクをご参照ください。