activities
latest
false
UiPath logo, featuring letters U and I in white
Document Understanding アクティビティ
Last updated 2024年11月26日

インテリジェント フォーム抽出器を使用したアンカーベースのデータ抽出

以下の例では、手書きのテキストが含まれる場合もあるフォームからデータを抽出する方法を説明します。次のユースケース シナリオは、発注書からデータを抽出する方法を説明します。

[ドキュメントをデジタル化][データ抽出スコープ][インテリジェント フォーム抽出器] などのアクティビティを使用します。これらのアクティビティは、UiPath.IntelligentOCR.Activities パッケージに含まれています。

ワークフローを作成する

下記のワークフローを作成する前に、次のパッケージをインストールしておく必要があります。

  • UiPath.DocumentProcessing.Contracts.Activities
  • UiPath.IntelligentOCR.Activities
  • UiPath.OCR.Activities
  • UiPath.OCR.Contracts
  • UiPath.WebAPI.Activities

Steps:

  1. Studio を開いて、新しいプロセスを作成します。
  2. ワークフロー デザイナー[シーケンス] コンテナーを追加して、名前を Sequence1 とし、次の表に示す変数を作成します。
    表 1. 作成する変数
     

    変数の型

    既定値

    item

    文字列

    N/A

    classificationResult

    ClassificationResult[]

    N/A

    outputFileName

    GenericValue

    N/A
  3. ワークフロー デザイナーで 1 つ目のシーケンスの後に [シーケンス] コンテナーをもう 1 つ追加して名前を Sequence2 とし、次の表に示す変数を作成します。
    表 2. 作成する変数
     

    変数の型

    既定値

    text

    文字列

    N/A

    taxonomy

    DocumentTaxonomy

    N/A

    dom

    Document

    N/A

    documentPath

    文字列

    N/A

    classificationResult2

    ClassificationResult[]

    N/A

    outputFileName2

    GenericValue

    N/A
  4. シーケンス内に [メッセージ ボックス] アクティビティを追加します。
    • [プロパティ] パネルの [ボタン] ドロップダウンから [OK] オプションを選択します。[テキスト] フィールドに「Select a PDF file」というメッセージを追加します。
  5. [最前面] オプションのチェック ボックスを選択します。これにより、メッセージ ボックスが必ず最前面に表示されるようになります。
  6. [メッセージ ボックス] アクティビティの後に [ファイルを選択] アクティビティを追加します。
    • [プロパティ] パネルの [フィルター] フィールドに、テキスト「Pdf files (*.pdf)|*.pdf」を追加します。
    • [選択されたファイル] フィールドに変数 documentPath を追加します。
  7. [ファイルを選択] アクティビティの後に [代入] アクティビティを追加します。
    • [左辺値 (To)/宛先] フィールドに変数 outputFileName2 を追加します。
    • [右辺値 (Value)] フィールドに式 ".temp/" + Path.GetFileName(documentPath) を追加します。
  8. [代入] アクティビティの後に、[JSON を逆シリアル化] アクティビティを追加します。
    • [Json 文字列] フィールドに式 File.ReadAllText("DocumentProcessing axonomy.json") を追加します。
    • [プロパティ] パネルの [TypeArgument] ドロップダウン リストから [UiPath.DocumentProcessing.Contracts.Taxonomy.DocumentTaxonomy] オプションを選択します。
    • [Json オブジェクト] フィールドに変数 taxonomy を追加します。
  9. [JSON を逆シリアル化] アクティビティの後に [ドキュメントをデジタル化] アクティビティを追加します。
    • [プロパティ] パネルで [並列度] フィールドに値 1 を追加します。
    • [ドキュメントパス] フィールドに変数 documentPath を追加します。
    • [ドキュメントオブジェクトモデル] フィールドに変数 dom を追加します。
    • [ドキュメント テキスト] フィールドに変数 text を追加します。
    • Add the UiPath® Document OCR engine inside the activity.
    • [API キー] フィールドに、使用する API キーを追加します。
    • [エンドポイント] フィールドに式 "https://du.uipath.com/ocr" を追加します。
  10. [ドキュメントをデジタル化] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティを追加します。
    • [テキスト] フィールドに式 JsonConvert.SerializeObject(dom) を追加します。
    • [ファイル名] フィールドに式 outputFileName2 + ".dom.json" を追加します。
  11. [テキスト ファイルに書き込み] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティをもう 1 つ追加します。
    • [テキスト] フィールドに変数 text を追加します。
    • [ファイル名] フィールドに式 outputFileName2 + ".text.txt" を追加します。
  12. ワークフロー デザイナー[シーケンス] コンテナーをもう 1 つ追加して、名前を Sequence3 とし、次の表に示す変数を作成します。
    表 3. 作成する変数
     

    変数の型

    既定値

    extractionResult

    ExtractionResult

    N/A

    validatedResults

    ExtractionResult

    N/A

    doubleValidatedResults

    ExtractionResult

    N/A

    dataset

    データセット

    N/A

    i

    Int32

    N/A
  13. Sequence3 内に [データ抽出スコープ] アクティビティを追加します。
    • [プロパティ] パネルの [ドキュメントオブジェクトモデル] フィールドに変数 dom を追加します。
    • [ドキュメントパス] フィールドに変数 documentPath を追加します。
    • [ドキュメント テキスト] フィールドに変数 text を追加します。
    • [ドキュメント種類 ID] フィールドに式 "All.Benchmarks.Invoice" を追加します。
    • [タクソノミー] フィールドに変数 taxonomy を追加します。
    • [抽出結果] フィールドに変数 extractionResult を追加します。
  14. [データ抽出スコープ] アクティビティ内に [インテリジェント フォーム抽出器] アクティビティを追加します。
    • [API キー] フィールドに、使用する API キーを追加します。
  15. [データ抽出スコープ] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティを追加します。
    • [テキスト] フィールドに式 JsonConvert.SerializeObject(extractionResult) を追加します。
    • [ファイル名] フィールドに式 outputFileName2 + ".results.json" を追加します。
  16. [テキスト ファイルに書き込み] アクティビティの後に、[検証ステーションを提示] アクティビティを追加します。
    • [自動抽出結果] フィールドに変数 extractionResult を追加します。
    • [ドキュメントオブジェクトモデル] フィールドに変数 dom を追加します。
    • [ドキュメントパス] フィールドに変数 documentPath を追加します。
    • [ドキュメント テキスト] フィールドに変数 text を追加します。
    • [タクソノミー] フィールドに変数 taxonomy を追加します。
    • [承認された抽出結果] フィールドに変数 validatedResults を追加します。
  17. [検証ステーションを提示] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティを追加します。
    • [テキスト] フィールドに式 JsonConvert.SerializeObject(validatedResults) を追加します。
    • [ファイル名] フィールドに式 outputFileName2 + ".savedinVS.results.json" を追加します。
  18. [テキスト ファイルに書き込み] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティをもう 1 つ追加します。
    • [テキスト] フィールドに式 JsonConvert.SerializeObject(doubleValidatedResults) を追加します。
    • [ファイル名] フィールドに式 outputFileName2 + ".doubleSavedinVS.results.json" を追加します。
  19. プロセスを実行します。オートメーション プロセスによって、検証ステーションが開き、データが抽出および検証されて、出力フォルダーに保存されます。
この例を ZIP 形式でダウンロードするには、「こちらのリンクにアクセスしてください。

タクソノミーを定義する

変数がすべて定義され、すべてのアクティビティがカスタマイズされたワークフローを作成できました。次は、タクソノミーの定義です。独自のタクソノミーを定義する方法については、「タクソノミーを読み込み」をご覧ください。

請求書から情報を抽出できるように、タクソノミーを作成します。次の表に示すフィールドを含むドキュメントの種類 [請求書] を作成してください。

表 4. 請求書のドキュメントの種類のフィールド
 

フィールドの種類

請求書番号

Text

小計

Number

消費税

Number

合計

Number

図 1. 前述のフィールドを含む、完成したタクソノミーの概要

テンプレートを作成する

次は、抽出プロセスで使用するテンプレートを作成します。テンプレートの作成方法については、「タクソノミーを読み込み」をご覧ください。

この例では、以下の値を使用してテンプレートを設定します。
  • ドキュメントの種類: 請求書
  • テンプレート名: Invoice-example
  • テンプレート ドキュメント: ターゲット ファイルを選択
  • OCR エンジン: Microsoft OCR
  • 言語: en
  • プロファイル: Scan
  • 拡大縮小: 1
図 2. テンプレートの設定を示す例のアニメーション画像

テンプレートにアンカーを設定する

アンカーとは、ドキュメントから正確な情報を抽出する必要がある場合に使用する、非常に特殊で便利な機能です。抽出領域をアンカーによって定義することで、高精度のデータ抽出が可能になります。

タクソノミーの定義とテンプレートの作成が完了したら、アンカーを使用してテンプレートの設定を開始できます。つまり、ボックスで抽出領域を定義し、アンカーによってボックスの位置を定義します。

テンプレートにアンカーを追加する前に、以下のリストでヒントを確認しておいてください。

  • あらゆる種類の請求書番号 (長短、フォントの大きさなど) に対応できるように、アンカー ボックスのサイズ (高さ、幅) は、できるだけ大きくしてください。
  • アンカーは 1 つの抽出領域に必要なだけ、いくつでも設定できますが、メインとして定義できるのは 1 つだけです (最初のアンカー)。
  • 複数の単語が横に並んだアンカーを使用します。
  • メイン アンカーは抽出領域のできるだけ近くに配置する必要があります。
  • テンプレート内での抽出領域とメイン アンカーの位置は、たとえ異なるドキュメントに適用される場合であっても、固定されています。変更できるのは、メイン アンカーとセカンダリ アンカーの間の距離だけです。

テンプレートの設定を続けて、アンカーを使用したデータ抽出の方法を見てみましょう。

  1. 抽出領域を設定します。
    • 検証ステーションの右側の領域で、選択モードを選択します。
    • [アンカー] を選択します。
    • 目的の領域の選択を開始します。
      図 3. 抽出領域の設定方法を示すアニメーション画像

      注:

      抽出処理の精度を高めて、より的確な結果を得られるようにするために、メイン アンカーには 2 ~ 3 つの単語を含めるようにしてください。

      アンカーにタグ付けするときに複数の単語を選択するには、Ctrl を押しながら目的の単語を選択します。

  2. メイン アンカーを設定します。
    1. まだ [アンカー] 選択モードを使用している間に、目的の領域をメイン アンカーとして選択します。
    2. 目的のフィールドで [値を抽出] を選択します。
      図 4. メイン アンカーの設定方法を示す例のアニメーション画像

  3. セカンダリ アンカーを設定します。
    1. まだ [アンカー] 選択モードを使用していて、メイン アンカーの選択がアクティブになっていることを確認します。
    2. セカンダリ アンカーの新しい領域を選択します。
    3. 目的のフィールドで [オプション] を選択し、[抽出値を変更] を選択します。
      図 5. セカンダリ アンカーの設定方法を示す例のアニメーション画像

抽出領域の定義とアンカーの追加がすべて完了するまで、上記のプロセスを繰り返します。完了したら、テンプレートを保存します。

このページは役に立ちましたか?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
Uipath Logo White
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.