【UiPath】カタログからの情報抽出 with GenAI アクティビティ

# はじめに

- 本記事は、***UiPath GenAI Activities の「コンテンツ生成」アクティビティ***をもちいたカタログ情報の抽出を扱います。
- 今回の抽出テストではRICOH（リコー）さんの製品カタログ（※）を使わせていただきます。
- 抽出テストは製品カタログ（※）の***スキャン画像***に対しておこないます。利用した生成AIのモデルは「***gpt-4o-2024-05-13***」です。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 24.10 バージョンのもので構成しています。

※：【参考】抽出テストで利用したページ（https://www.ricoh.co.jp/pdf/office#02 から引用）
![抽出テストのページ上段.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/66ead1ad-066a-9e9b-68d8-2d9b1211f394.jpeg)
![抽出テストのページ中段.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/3dd7aa4a-715c-4ea1-e899-57fb7aa04f97.jpeg)
![抽出テストのページ下段.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/49993334-2cba-6ea3-06e3-2034365ce60c.jpeg)

# 抽出テストの結果
## 前提補足
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c9fc0edd-c8a3-272b-aaee-ca8f7cfd5d03.png)

以降、抽出ターゲットに対して「指示文」と「結果」というかたちでテスト結果を記載していきます。
「指示文」の中の（「次のデータから～」の）『データ』の部分はデジタル化したテキストをそのまま記載するのは量的に厳しいため省略しています。

## レーザープリンターの「製品名」と「サイズ」情報を抽出

指示文：
```
次のデータから、レーザープリンターの「製品名」と「サイズ」の情報を抽出し、CSV形式のデータで出力してください。
出力はヘッダーと明細のレコードのみでお願いします。（出力内容に関する補足メッセージ等は不要です。）
明細レコードは製品名でソートをかけてください。
 → ```1 柔 軟 な 用 紙 対 応 力 、 高 速 フ ァ ー ス ト プ リ ン ト 、 コ ン パ ク ト 設 計 で 、 患 者 様 を お 待 た せ し な い オ ー ダ リ ン グ / 電 子 カ ル テ 業 務 を サ ポ ー ト し て い ま す 。

診

レ ー ザ ー プ リ ン タ ー
・・・以降は省略
```
結果：
```csv
製品名,サイズ
RICOH IP 500SF,476(W)×442(D)×510(H)mm
RICOH P 500,375(W)×412(D)×311(H)mm
RICOH P 501,375(W)×412(D)×311(H)mm
RICOH P 6010,469(W)×392(D)×286(H)mm
RICOH P 6020,469(W)×392(D)×348(H)mm
RICOH Pro 6100,1,999(W)×799(D)×1,568(H)mm(フルオプション時)
RICOH SP 8400,1,760(W)×798(D)×1,565(H)mm(フルオプション時)
```
::: note
***◎*** 指示文通り完璧な結果を返す
:::

## 「製品名」「プリンターの種類」「製品特徴」情報を抽出

指示文：
```
次のデータから、「製品名」「プリンターの種類」「製品特徴」の情報を抽出し、CSV形式のデータで出力してください。
出力は次の例の様にヘッダーと明細のレコードのみでお願いします。（出力内容に関する補足メッセージ等は不要です。）
製品名とプリンターの種類をキーとし、重複は削除し製品名でソートをかけてください。

（出力例）
製品名,プリンターの種類,製品特徴
G900ES,デジタルカメラ,防水・防塵対応（IP8/6） 2.1m 落下衝撃対応 他
RICOH P 6020,レーザープリンター,自動両面印刷を標準搭載でコンパクト 他
 → ```1 柔 軟 な 用 紙 対 応 力 、 高 速 フ ァ ー ス ト プ リ ン ト 、 コ ン パ ク ト 設 計 で 、 患 者 様 を お 待 た せ し な い オ ー ダ リ ン グ / 電 子 カ ル テ 業 務 を サ ポ ー ト し て い ま す 。

診

レ ー ザ ー プ リ ン タ ー
・・・以降は省略
```
結果：
```
製品名,プリンターの種類,製品特徴
G900ES,デジタルカメラ,防水・防塵対応（IP8/6） 2.1m 落下衝撃対応 他
RICOH P 6020,レーザープリンター,自動両面印刷を標準搭載でコンパクト 他
RICOH P 501,レーザープリンター,柔軟な用紙対応力、高速ファーストプリント、コンパクト設計で、患者様をお待たせしないオーダリング/電子カルテ業務をサポートしてます
RICOH P 500,レーザープリンター,柔軟な用紙対応力、高速ファーストプリント、コンパクト設計で、患者様をお待たせしないオーダリング/電子カルテ業務をサポートしてます
RICOH P 6010,レーザープリンター,ハイスピードのファーストプリント 6.5 秒以下 自動両面印刷を標準搭載でコンパクト
RICOH P 500SF,レーザープリンター,高耐久 高信頼なプリンター
RICOH SP 8400,レーザープリンター,エラー発生を周囲に知らせるオペレーターコールライト付き
RICOH Pro 6100,レーザープリンター,エラー発生を周囲に知らせるオペレーターコールライト付き
```
::: note
***〇*** ***およそ***指示文通りの適当な結果を返す

「およそ」としている理由：
- × 製品名のソートが正しくない
- △ RICOH P 500SF は「レーザープリンター複合機」が正
- △ 製品個別の特徴ではなく同種のプリンターの特徴を記載している
:::

上記の課題を解消するため、指示文に補足を追加します↓↓

指示文：
```
次のデータから、「製品名」「プリンターの種類」「製品特徴」の情報を抽出し、CSV形式のデータで出力してください。
出力は次の例の様にヘッダーと明細のレコードのみでお願いします。（出力内容に関する補足メッセージ等は不要です。）
製品名とプリンターの種類をキーとし、重複は削除し製品名でソートをかけてください。

（出力例）
製品名,プリンターの種類,製品特徴
G900ES,デジタルカメラ,防水・防塵対応（IP8/6） 2.1m 落下衝撃対応 他
RICOH P 6020,レーザープリンター,自動両面印刷を標準搭載でコンパクト 他

## 補足
- 入力データに存在しない製品名や特徴は出力しないでください。
- プリンターの種類には「デジタルカメラ」「レーザープリンター」「レーザープリンター複合機」「カラーレーザープリンター」「ジェルジェットプリンター」のいずれかの値を指定してください。
- 製品特徴は「●」からはじまる箇条書きの製品特徴から100文字以内におさまるように記述してください。
 → ```1 柔 軟 な 用 紙 対 応 力 、 高 速 フ ァ ー ス ト プ リ ン ト 、 コ ン パ ク ト 設 計 で 、 患 者 様 を お 待 た せ し な い オ ー ダ リ ン グ / 電 子 カ ル テ 業 務 を サ ポ ー ト し て い ま す 。

診

レ ー ザ ー プ リ ン タ ー
・・・以降は省略
```
結果：
```csv
製品名,プリンターの種類,製品特徴
G900SE,デジタルカメラ,防水・防塵対応（IP8/6） 2.1m 落下衝撃対応 他
RICOH P 500SF,レーザープリンター複合機,ハイスピードのファーストプリント6.5秒以下
RICOH P 501,レーザープリンター,自動両面印刷を標準搭載でコンパクト
RICOH P 6010,レーザープリンター,自動両面印刷を標準搭載でコンパクト
RICOH P 6020,レーザープリンター,自動両面印刷を標準搭載でコンパクト
RICOH Pro 6100,カラーレーザープリンター,「レセプト専用1穴パンチ」対応で普通紙に1穴パンチが可能
RICOH SP 8400,レーザープリンター,音と光でエラー発生を周囲に知らせるオペレーターコールライト
```
::: note
***〇*** ***ほぼ***指示文通りの適当な結果を返す

「ほぼ」としている理由：
- △ RICOH P 500SF の製品特徴に記載のある「ハイスピードのファーストプリント6.5秒以下」は RICOH P 6010 の特徴である

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/a1acae77-4cd8-8d0a-32a5-8b7eca09c9f4.png)

所感：OCRのレスポンスにはピンクの枠は含まれないので、左上から右下に向けてテキスト情報を読み取る中で発生するのは仕方がない様におもう。座標情報を付与した際の効果は後段で触れる。
:::

## 特定製品の仕様情報を抽出

指示文：
```
次のデータから、「RICOH IP 500SF」の仕様情報を箇条書きで出力してください。
出力内容に関する補足メッセージ等は不要です。
 → ```1 柔 軟 な 用 紙 対 応 力 、 高 速 フ ァ ー ス ト プ リ ン ト 、 コ ン パ ク ト 設 計 で 、 患 者 様 を お 待 た せ し な い オ ー ダ リ ン グ / 電 子 カ ル テ 業 務 を サ ポ ー ト し て い ま す 。

診

レ ー ザ ー プ リ ン タ ー
・・・以降は省略
```
結果：
```
- 製品名：RICOH IP 500SF
- 製品カテゴリ：レーザープリンター複合機
- 寸法：476(W)×442(D)×510(H)mm
- 用紙対応：A4
- ファーストプリント速度：4.8秒以下
- モノクロ連続印刷速度：43枚/分
- 自動両面印刷：標準搭載
- 最大給紙枚数：500枚
- 一日の耐久使用枚数：800枚
- 耐久性：120万ページ
- ネットワーク対応：2系統のネットワークに対応
- コンパクト設計
```
::: note warn
***×*** 一部不適当な結果を返す

次の情報は RICOH P 6010 の仕様情報である
- 一日の耐久使用枚数：800枚
- 耐久性：120万ページ
- ネットワーク対応：2系統のネットワークに対応

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/57e117a9-3078-1937-a915-7be0027ff48d.png)

ページ左上の RICOH P 501 で同様の指示を出した際も、不要な仕様情報が一部含まれたため、スキャン画像をデジタル化したテキストデータでは正確性の担保が課題になりそうです。***※ネイティブテキストを含むPDFでは正確に情報を抽出できます。***

- 用紙対応: A4
- ファーストプリント: 4.3秒以下
- 連続印刷: 43枚/分
- サイズ: 375(W)×412(D)×311(H) mm
- 一日の耐久使用枚数: 約400枚
- 給紙枚数: 最大500枚
- 自動両面印刷: 標準搭載
- ***消費電力: 省電力設計***
- ネットワーク対応: 2系統のネットワークに対応
- ***耐久枚数: 120万ページ***
- コンパクト設計
:::

## 座標情報を付与するとどうなるか？

![表抽出テスト4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c5162d25-9526-f757-3758-2cfd7c98c7e2.jpeg)

上の簡易なスキャンデータで試験

指示文：
```
次のデータから、「視力」「聴力」の表データのみ可読性のあるかたちで出力してください。
出力内容に関する補足メッセージ等は不要です。
 → ```名 称           身 長   体 重   名 称           視 力   聴 力
ウ ル ト ラ 太 郎   165   65    ウ ル ト ラ 太 郎   2     A  
ウ ル ト ラ 次 郎   158   52    ウ ル ト ラ 次 郎   1.5   B  

名 称           測 定 A   測 定 B   測 定 C
ウ ル ト ラ 太 郎   D       -       A    
ウ ル ト ラ 次 郎   C       B       A    ```
```
結果：
```
| 名称              | 視力  | 聴力 |
|------------------|------|------|
| ウルトラ太郎    | 2    | A    |
| ウルトラ次郎    | 1.5  | B    |
```

上のものに座標情報を付与して実行↓↓

指示文：
```
次のデータから、「視力」「聴力」の表データのみ可読性のあるかたちで出力してください。
出力内容に関する補足メッセージ等は不要です。
 → ```{ "値":"名","X座標":41,"Y座標":32 }
{ "値":"称","X座標":42,"Y座標":55.5 }
{ "値":"身","X座標":42,"Y座標":229 }
{ "値":"長","X座標":42,"Y座標":251.5 }
{ "値":"体","X座標":41.5,"Y座標":332 }
{ "値":"重","X座標":41.5,"Y座標":356 }
{ "値":"名","X座標":41,"Y座標":513.5 }
・・・以降は省略
```

結果：
```
視力 表
2 1.5
聴力 表
A B
```

期待するものではありませんでしたが、領域はある程度認識できていそうです。
次に、先ほど RICOH IP 500SF の仕様情報を座標情報つきで再度尋ねてみます↓↓

指示文：
```
次のデータから、「RICOH IP 500SF」の仕様情報を箇条書きで出力してください。
出力内容に関する補足メッセージ等は不要です。
 → ```{ "値":"1","X座標":51.510000000000005,"Y座標":42.18 }
{ "値":"柔","X座標":50.675000000000004,"Y座標":71.845 }
{ "値":"軟","X座標":50.675000000000004,"Y座標":81.685 }
・・・以降は省略
```

結果：
```
- サイズ: 375(W)×412(D)×311(H)mm
- 紙対応: 用紙対応
- 高速フラットプラット対応
- コンパクト設計: 診療エリアやオーダリング/電子カルテ業務をサポート
- モノクロ連続印刷: A4サイズ4.3秒以内、毎分43枚対応
- 耐久性: 1日あたりの耐久使用枚数標準トレイ: 400枚給紙
- 大容量: 500枚給紙
- 自動両面印刷標準搭載
- ネットワーク対応
- A4サイズモノクロ印刷速度: 4.9秒以内、毎分35枚
- 1日あたりの耐久使用枚数標準トレイ: 400枚給紙
- 高速自動両面印刷標準搭載
```

::: note warn
***×*** 一部不適当な結果を返す

- サイズについて RICOH P 500 の情報と読み違えている
- 意味不明な仕様情報→「紙対応: 用紙対応」「毎分35枚」
:::

RICOH P 501 についても再度尋ねてみる↓↓

指示文：
```
次のデータから、「RICOH P 501」の仕様情報を箇条書きで出力してください。
出力内容に関する補足メッセージ等は不要です。
 → ```{ "値":"1","X座標":51.510000000000005,"Y座標":42.18 }
{ "値":"柔","X座標":50.675000000000004,"Y座標":71.845 }
{ "値":"軟","X座標":50.675000000000004,"Y座標":81.685 }
・・・以降は省略
```

```
- 高速出力：43枚/分
- 連続印刷対応
- 耐久枚数：30万枚
- 紙サイズ：A4
- 自動両面印刷：標準搭載
- 本体サイズ：375(W)×412(D)×311(H)mm
```

::: note warn
***×*** 一部不適当な結果を返す

- 記載のない仕様情報→「耐久枚数：30万枚」
:::

# さいごに

いかがでしたでしょうか。
Chat-Gptは***座標情報があれば領域を認識できる***と回答くれますが、
実際に試すと、簡単なものでも情報量が多いためか精度向上は感じられませんでした。
DUの「ドキュメントをデジタル化」の出力である『ドキュメントテキスト』をそのまま投げる方が精度が良いことがわかったのは収穫です。
***OCRの読み取り結果は、左右に表があった際など、レコードが相互に混ざったドキュメントテキストが出力されますが、その状態であっても、無加工で渡す方が精度が高いのがポイントです。***
最後までお読みいただきありがとうございます(・ω・)ノ