【UiPath】「PDFファイルからデータ抽出する関数」を理解する【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」
0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!
ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。
まずは、間違えた問題の紹介。
Native 画像スクレイピング(Native screen scraping)メソッドはどのように動作しますか。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト
解説部分には、この問題で求めている知識が紹介されていた。内容は以下。※答えは明示されてない
トピック:PDFファイル(.pdf)からデータを抽出するために使用する関数を説明する。(例:OCRの使用)
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

PDFファイル限定なのかな、他のファイルからもデータを抽出できると良いな。
では、以下から、「PDFファイルからデータの抽出」の復習をしていく。
1.座学
書籍やネットの情報をもとに学習
検索
理解する対象に関する情報を書籍やネットで調べる。
今回の理解の対象である「PDFファイルからデータの抽出」については、UiPathアカデミーの以下の階層にあった。
UiPathアカデミー>PDF の自動化 コース>レッスン一覧>PDFの自動化
では、「PDF の自動化」コースの学習目標を見てみる。
「PDF の自動化」コースの学習目標
・PDF ドキュメント全体を抽出できる
・PDF ドキュメントから特定の要素を抽出できる
・状況に応じて最適な OCR エンジンを選択できる
・同じレイアウトの PDF から共通する要素を取得することができる
・[アンカーベース (Anchor Base)] を活用し、要素を適切に抽出できる引用元:https://academy.uipath.com/jp/learningpath-viewer/2555/1/157379/16

PDFドキュメント全体を抽出する方法は簡単そうだけど、「特定の要素」のみを抽出する方法は難しそう。
吟味
「PDF の自動化」コースの学習目標を軸に考えを膨らませる。
データ抽出に着目

データ抽出方法は大きく3つらしい。
・「PDF のテキストを読み込み (Read PDF Text)」アクティビティ
・「OCR で PDF を読み込み (Read PDF With OCR)」アクティビティ
・「画面スクレイピング (Screen Scraping)」

ふむふむ、スクレイピング機能以外に、アクティビティによってデータを抽出することも可能なのね。でも、アクティビティによるデータ抽出で特定の要素のみを抽出できるイメージがわかない。そのあたりは、どうなんだろう。
調べてみた。以下より。
文字情報を含む形式の PDF からテキストを取得するには、 [テキストを取得 (Get Text)] を使用した方法や、レコーディング機能を使用し、取得したい要素を指定する方法などがあります
引用:https://academy.uipath.com/jp/learningpath-viewer/2555/1/157379/16

「テキストを取得」アクティビティやレコーディング機能の使用が、特定の要素を取得する代表的な方法かな。
データ抽出の疑問に対する答えをまとめると、
・「PDF のテキストを読み込み (Read PDF Text)」アクティビティ
・「OCR で PDF を読み込み (Read PDF With OCR)」アクティビティ
・「画面スクレイピング (Screen Scraping)」特定の要素のみを抽出する方法の代表2つ
・「テキストを取得」アクティビティ
・レコーディング機能の使用
2.実践
実際に手を動かすことで理解を深める。
PDFファイルからデータを抽出する
・「PDF のテキストを読み込み (Read PDF Text)」アクティビティ
・「OCR で PDF を読み込み (Read PDF With OCR)」アクティビティ
・「画面スクレイピング (Screen Scraping)」
上記のアクティビティ・機能を使って、データ抽出を試みる。
・「PDF のテキストを読み込み (Read PDF Text)」アクティビティ
まずは、パッケージのインストールから。
フローは以下。
読み込んだデータを変数PDFに格納するフロー。
ちなみに読み込んだPDFファイルは、上記画像。
実行結果↑

自分の思っていたものに近いかな。
・「OCR で PDF を読み込み (Read PDF With OCR)」アクティビティ
次は、OCRで読み込む。
※OCRの準備は、以下のリンクをマネしました。
https://academy.uipath.com/jp/learningpath-viewer/2555/1/157379/16
OCRでは、正しく読み込めていない部分があった。

う~ん、やっぱり、OCRは精度の問題があるよね~。
・「画面スクレイピング (Screen Scraping)」
スクレイピング機能を使ってみる。
正しく読み込めてはいるが、値の格納の仕方に問題がある。

ここまでの結果を見ると、「PDF のテキストを読み込み (Read PDF Text)」アクティビティが一番優秀。
状況によって、使い分けるのだろうけど、シンプルにPDFファイルのテキストを読み込むのであれば、上記のアクティビティが良さそうだね。
特定の要素を抽出する
・「テキストを取得」アクティビティ
・レコーディング機能の使用
上記のアクティビティ・機能を使って、データ抽出を試みる。
・「テキストを取得」アクティビティ
「テキストを取得」アクティビティを使って、PDFファイルの一部分のテキストを取得してみる。
PDFファイルの上部のテキストを取得してみたところ、
メッセージボックスで表示できなかった。
前回同様に、PDFファイルの全体を取得してみる。
これも、メッセージボックスで表示できなかった。

え、どうしてだろう。もしかして、「特定の要素を抽出する方法」だから、範囲のデータを取得することはできないのかも。
要素に絞って、取得してみる。
正しく表示できた。

ふむふむ、「PDFファイルの全体」を取得する方法と「特定の要素」を取得する方法は、別物として考えた方が良さそう。
・レコーディング機能
レコーディング機能を活用して、「特定の要素」を取得してみる。
いつも通りレコーディングしたところ、「クリック」アクティビティが記録されてしまった。これでは、「特定の要素」を取得したことにはならない。
レコーディングを始める際、「レコーディング」からではなく、「テキストをコピー」をクリックして、記録をはじめた。
クリックした箇所は「テキストを取得」アクティビティで反映された。
実行すると、取得したデータが表示された。

レコーディング機能の「テキストをコピー」は、「テキストを取得」アクティビティを表していたんだね。
3.まとめ
「PDFファイルのデータ抽出」に着目して、学習を行ってみた。今回の学習で理解したことを自分の言葉でまとめてみる。
・PDFファイルからデータを抽出する場合は、全体・要素で抽出する方法を変える
・レコーディング機能の「テキストをコピー」は、「テキストを取得」アクティビティを表す

コメント