2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IQ Bot:誤り検知の条件設定

Last updated at Posted at 2020-04-13

IQ Botでは、読み取った値が正当かどうかを検証するルールを項目別に柔軟に設定することができます。

この記事では、IQ Botの誤り検知についてまとめます。

#IQ Botの誤り検知とは?

IQ Botの利用フローは以下のとおりです。
IQ Bot 利用フロー

右半分の⑤~⑧が実運用のフローですが、⑤でIQ Botを起動したあとで、矢印が二つに分かれていますね。
⑧のCSV出力に直接のびている矢印と、⑥の人間の検証に回る矢印です。

「直接CSVを出力していいか、人間の検証が必要か」を切り分ける条件は、左側③のマッピングの学習の際に設定することができます。

#誤り検知の設定方法

誤りを検知する条件は、マッピング設定画面の以下の3か所で指定することができます。
誤り検知.jpg

##誤り検知の設定①:型による誤り検知

date(日付)、number(数値)などの型を指定しておくと、その型にあてはまらない値が入ってきた場合に誤りとして検知し、人間の検証に回してくれます。
日付や金額など、入ってくる項目の型が決まっている場合に有効です。

型はほぼほぼ見たままですが、ちょっと意外な機能として以下を挙げておきます。

  • number型を指定した場合、通貨の単位($,€,£,円マーク)は自動で除外される(日本語の「円」は除外されない)
  • number型を指定した場合、桁区切りのカンマ等は自動で除外される
  • date型は和暦にも対応している

さらに詳細を以下の記事にまとめましたのでご覧ください。

##誤り検知の設定②:必須指定による誤り検知

必須/任意を指定し、必須指定した項目に値が入っていない場合に誤りとして検知し、人間の検証に回してくれます。

##誤り検知の設定③:パターン指定による誤り検知

パターンを定義し、そのパターンから外れている値が入ってきた場合に誤りとして検知し、人間の検証に回してくれます。

電話番号や郵便番号、製品の型番など、形式(桁数など)が決まっているデータに対して、その形式を正規表現で指定できるだけでなく、帳票上に出現する数字項目の同士の検算(数量×単価が合計金額と一致しているか/税抜価格と消費税の合計が税込み価格と一致しているか など)もできるのが特徴です。

パターンの定義のしかたはベンダーの公式ドキュメントサイトの以下のページに詳しく載っていますが……
https://docs.automationanywhere.com/bundle/iq-bot-v6.5/page/iq-bot/topics/iq-bot/user/bot-training-validation.html

日本語で、よりわかりやすい説明をお求めの方には以下の記事がおすすめです。

#誤りが検知されるとどうなる?

誤りが検知された帳票は、以下のようにValidation(検証)の画面に回り、誤りとして検知された項目が赤枠で表示されます。

誤り検知_convertio.gif

赤枠以外の項目も修正が可能です。

修正が完了したら「保存」を押すと、そのタイミングで修正結果を反映したCSVが出力されます。

このとき、IQ Botが修正前後の値を蓄積して機械学習します。
同じような誤りを何度も繰り返して修正していくと、そのうちIQ Botが自動修正してくれるようになるという仕組みです。

#誤り検知の注意点

##数式を使った検知で、数式の文法を間違えると……

数式を使った検知で数式の文法を間違えると、その誤った数式を設定した項目が必ずエラー(=検知対象)になります。

「あれ? 計算結果合ってるのになんで赤くなるの?」という場合は、数式の文法に間違いがないか確認しましょう。

##機械学習の仕組みは、日本語に対しては無効(2020.4.13現在)

最後に紹介した機械学習の仕組みは、修正後の値が英数字や記号(すべて半角)の組み合わせの場合のみ有効ということで、日本語の項目に対してはまだ使えないようです。

そんなわけで、商品名などの日本語を含む項目は、型番などの英数字記号の組み合わせの項目で代替できるのであれば、後者で取得したほうがIQ Botの強みを活かせるのかなという感じです。

請求書で請求元の社名などを取得したい場合も、IQ Bot側では電話番号の取得にとどめておき、RPA側でDBと突合して社名を取得……というフローにする方が現実的です。

##Validation画面では、正当な条件を満たすまで保存ができない

これは記載のとおりなんですが、たとえばnumber型の項目に対して、formulaで「消費税額 == 小計 * 0.1」(消費税が小計の10%であること)という検証の条件を組んでいたとします。

でも、消費税は軽減税率で品目によっては8%になるケースがありますよね。

そういう場合でも、誤り検知の条件に「消費税額 == 小計 * 0.1」という条件を組んでしまうと、この式がtrueにならない限りValidationの結果を保存することができません(「無効としてマーク」はできるが、その場合はCSVが出力されない)。

つまりこの場合、帳票には8%の税率の消費税が書いてあって、それが正しい結果なのに、10%の消費税で入力しないとエラーになってしまう、というような変なことになってしまいます。

この点を踏まえ、誤り検知の条件は適切に設定しましょう。

#まとめ

  • IQ Botでは、①型/②必須指定/③パターン の三つの条件で誤りを検知できるよ
  • 誤り検知して人間が修正すると、IQ Botが機械学習してくれるよ
  • ただし上記の機械学習は日本語の項目に対しては使えないよ(2020.4.13現在)
  • 誤りを検知してValidationに回ると、設定した条件がすべてtrueになるまで保存できないよ
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?