【Document Understanding】アンケートの読み取り～出力を試してみる

# はじめに

- 本記事は、UiPath Studio の基礎知識をお持ちで、これから Document Understanding を利用したい方向けの内容となっています。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 23.4 バージョンで構成しています。
- Automation Cloud のアカウントおよび Pro Trial を申請するなどして DU のアクセス権限を取得している必要があります。

# Document Understanding をミニマム構成で試してみたい

Document Understanding（以降、DUと略す）は、***ドキュメントから情報を抽出・解釈する機能群***です。
請求書やINVOICE、領収書、源泉徴収票等々、様々な文書からデータの読み取り、操作をおこなうための魅力な機能が多く搭載されているものの、機能が多い故のわかりづらさがあります。

マシンラーニングを利用した本格的なDUの実装ですと、
***DocumentManager（Automation Cloud のDUのサービスの一画面）での何十ページにも及ぶアノテーション作業から、AI Center でのモデルの追加学習、デプロイ作業*** 等も必要となります。
```
『そこまで本格的じゃなくていいんだけど、どうやって文書データ読み取って、データ操作するのかをミニマムで試したい』
```
そんな方向けに、***アンケート*** を題材にした記事を書きます！！（以下、今回の記事用に用意した架空のアンケートの雛）
![アンケート_フォーマット.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/5d106751-3e2c-b913-aaae-4cf889a44725.jpeg)

::: note
- 入力済みのアンケートのサンプルは画像ファイル（962*785 ピクセルの「.JPG」データ）です。自由記述欄の文字には手書きフォントなどを利用しています。
- 文書のフォーマットは1つのため分類は設定しますが、検証はおこないません。
- 文書からのデータ抽出には「フォーム抽出器」のみもちいます。
:::

## STEP1. 文書の項目定義（タクソノミーの設定）（1/6）

チェックボックス（計9つ）と自由記述欄、部署名、お名前のフィールドを作成します。
![タクソノミー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/162e4773-ea27-684a-5930-2b2e909f76b8.jpeg)
次に、入力済みのアンケートデータを用意します。（記事の末尾にサンプル画像データあり）

## STEP2. 前処理の実装（2/6）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/fd205bbd-79b3-b069-9cc9-0fc95924ca77.png)
1. 「タクソノミーの読み込み」を配置　←　STEP1 で設定したタクソノミーをロードします。
1. 「複数代入」を設置し、「APIキー」「入／出力のフォルダパス」「インテリジェントキーワード分類用の学習ファイルパス（※1）」を指定
※1：DocumentProcessing\IntelligentKeywordClassifierLearningFile.json　←　***最初は在りません。空のテキストファイルで結構ですので同名にて作成・配置お願いします。*** 分類器のスコープで学習することで内容は更新されます。

## STEP3. 文書の分類アクティビティの設定（3/6）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/74bd52f9-1236-cd14-1f77-fbe560378b3f.png)
「繰り返し（フォルダ内の各ファイル）」アクティビティなどを配置し、取得した画像ファイル毎にデジタル化・分類・抽出の処理にかけていきます。

::: note
OCRのエンジンは既定では「UiPath ドキュメント OCR」が設定されていますが、日本語の文書を読み取る場合は「CJK-OCR」に変更しましょう。（CJKは Chinese Japan Korea の略）
エンドポイント：https://du-jp.uipath.com/cjk-ocr
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/1b454c07-7afa-f35a-5c9f-9074466367a2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/827ef668-6632-747c-90dc-b703342358d7.png)
1. 「ドキュメント分類スコープ」「インテリジェントキーワード分類器」を配置します。
1. 「学習を管理」より、空のアンケートフォーマットを学習させます。（以下のメッセージを確認した際は、「{プロジェクトフォルダ}\DocumentProcessing\IntelligentKeywordClassifierLearningFile.json」を指定してください。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/a5c126c4-7511-b9e1-c9f7-3f9a56972267.png)
1. 「分類器を設定」のリンクをクリックし、表示された画面でタクソノミーを設定した文書のチェックをONにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/d172eb95-4c6f-7593-ec23-d5fb34ead221.png)

## STEP4. 文書の抽出アクティビティの設定（4/6）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/123f0114-f074-bfe2-a3dd-b9011b72a36b.png)
1. 「繰り返し（コレクションの各要素）」アクティビティを配置し、自動分類結果をもとにデータの抽出・出力処理をかけていきます。
1. 「フォーム抽出器」を配置し、テンプレートを作成します。（※2）***なお、今回アンケートで利用するチェックボックス（Boolean のフィールド）などは「署名フィールド」や「はい／いいえ」の類義語を設定しないと期待動作は得られません。***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/b3e2fbc5-459b-0b49-d4e3-62e28f103a17.png)
1. 「抽出器を設定」のリンクをクリックし、表示された画面でタクソノミーを設定した文書のチェックをONにします。

::: note
※2：チェックボックスのカスタム領域は「□」の内側を指定します。外側で指定する場合は「□」を「いいえ」の類義語で設定する必要あり。「自由記述欄」や「部署名」、「お名前」は余分な文字等が入らない範囲で余裕をもって指定しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/84f2584f-6a4f-f5fe-274c-dc6c845b49fe.png)
:::

## STEP5. 抽出結果の確認（5/6）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/4c98976a-2d53-b586-2515-83ae53bc63f7.png)
表示された抽出結果の正しさを確かめながら、確認済みのチェックをONにし、「送信」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/6dd9ac89-4bec-879c-88b3-0e6ef1ad5fea.png)

## STEP6. 抽出結果の出力（6/6）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/abd698fd-56e0-2ddf-7901-eed10052145b.png)
「抽出結果をエクスポート」アクティビティを使うことでデータセット型（※）の情報を出力できます。
※：複数のデータテーブルを保持できます。データテーブルを単一の「テーブル」とした場合、データセットは「データベース」のイメージです。
「繰り返し（コレクションの各要素）」「範囲に書き込み（ワークブック）」等のアクティビティをもちいて抽出データを出力します。

（出力サンプル）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/86be5d24-f320-8a82-c6fc-48c809d12d1f.png)

# 実行結果
■自動抽出結果と検証結果の比較　＝＞　***適合率：92%以上*** （一致しなかっケースは後述します。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/09192d77-5dd3-bada-12b8-098d5c1cc42b.png)
■創出効果　***自動抽出：1分　＞　自動抽出（検証あり）：6分　＞　手動：12分***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/d94da5e4-9564-4193-d8f9-cb9e9ad2929c.png)

（期待通りに抽出されなかったケースのサンプル）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/9aa73a31-29d0-8558-9ddc-f72783531ef5.png)
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/00767ba2-7576-5ed6-adc6-ae228c47d9be.png)
--
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/1941b4da-3441-4686-8b92-eae002c98367.png)
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e462c189-232b-b378-75ad-d3edfa0155fa.png)
--
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/217d3099-f89e-81eb-1308-ab75d4774d40.png)
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c0a6288a-4d2d-d5b2-db5c-a08825c3296f.png)

## （予想外に完璧に抽出されたケースのサンプル）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/26d4ed36-a1be-acb9-cb7a-da28367a8b7e.png)
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/a8358d26-bf9d-1d59-fbec-529d72fc0bfd.png)
--
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/863148c5-a2b8-71a0-683c-3ae69bea3133.png)
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/840de82a-fe47-f41a-5b25-1d0676ec7257.png)

# 最後に

いかがでしたでしょうか？
***Document Understanding = AI製品 = AIわからないと使えない？*** とおもわれがちですが、
ルールを設定してあげるだけでこれだけ利用できます！
***個社のフォーマットからデータを読み取って操作するだけであれば「CJK-OCR」×「フォーム抽出器」で十分力を発揮できます！！***
ご自身の業務で力を発揮しそうなものがあるなーとおもっていただいた方は、是非以下の記事もお読みいただけますと幸いです。

https://qiita.com/Kajiita/items/0dd8d410b572e076dcfe

# おまけ - 入力済みのアンケートのサンプル
![アンケート入力1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/a5992b1c-95c1-51d4-ecb0-da14bc4aec92.jpeg)
![アンケート入力2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e3147673-1d8b-9cbd-e42f-da6ba76aa0ca.jpeg)
![アンケート入力3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/3405f590-3d5a-6eba-542b-c4e5658cd734.jpeg)
![アンケート入力4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/9a84db40-5766-e5f8-9021-3f63855383ec.jpeg)
![アンケート入力5.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/6c281d88-b109-a6b2-edeb-b53c15dd4a93.jpeg)
![アンケート入力6.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/59c0ee3c-11f2-e6c8-23e9-4d95b014c0d8.jpeg)
![アンケート入力7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/fa6ae25b-325e-9c1c-47f0-c2fa34323899.jpeg)
![アンケート入力8.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/fcf2e2d3-2f72-7807-ba2c-9e8c88465801.jpeg)
![アンケート入力9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/17d34f51-460b-6264-6fc1-30d0722b548a.jpeg)