activities
latest
false
- 概要
- Document Processing Contracts
- リリース ノート
- Document Processing Contracts について
- Box クラス
- IPersistedActivity インターフェイス
- PrettyBoxConverter クラス
- IClassifierActivity インターフェイス
- IClassifierCapabilitiesProvider インターフェイス
- ClassifierDocumentType クラス
- ClassifierResult クラス
- ClassifierCodeActivity クラス
- ClassifierNativeActivity クラス
- ClassifierAsyncCodeActivity クラス
- ClassifierDocumentTypeCapability クラス
- ExtractorAsyncCodeActivity クラス
- ExtractorCodeActivity クラス
- ExtractorDocumentType クラス
- ExtractorDocumentTypeCapabilities クラス
- ExtractorFieldCapability クラス
- ExtractorNativeActivity クラス
- ExtractorResult クラス
- ICapabilitiesProvider インターフェイス
- IExtractorActivity インターフェイス
- ExtractorPayload クラス
- DocumentActionPriority 列挙型
- DocumentActionData クラス
- DocumentActionStatus 列挙型
- DocumentActionType 列挙型
- DocumentClassificationActionData クラス
- DocumentValidationActionData クラス
- UserData クラス
- Document クラス
- DocumentSplittingResult クラス
- DomExtensions クラス
- Page クラス
- PageSection クラス
- Polygon クラス
- PolygonConverter クラス
- Metadata クラス
- WordGroup クラス
- Word クラス
- ProcessingSource 列挙型
- ResultsTableCell クラス
- ResultsTableValue クラス
- ResultsTableColumnInfo クラス
- ResultsTable クラス
- Rotation 列挙型
- SectionType 列挙型
- WordGroupType 列挙型
- IDocumentTextProjection インターフェイス
- ClassificationResult クラス
- ExtractionResult クラス
- ResultsDocument クラス
- ResultsDocumentBounds クラス
- ResultsDataPoint クラス
- ResultsValue クラス
- ResultsContentReference クラス
- ResultsValueTokens クラス
- ResultsDerivedField クラス
- ResultsDataSource 列挙型
- ResultConstants クラス
- SimpleFieldValue クラス
- TableFieldValue クラス
- DocumentGroup クラス
- DocumentTaxonomy クラス
- DocumentType クラス
- Field クラス
- FieldType 列挙型
- LanguageInfo クラス
- MetadataEntry クラス
- TextType 列挙型
- TypeField クラス
- ITrackingActivity インターフェイス
- ITrainableActivity インターフェイス
- ITrainableClassifierActivity インターフェイス
- ITrainableExtractorActivity インターフェイス
- TrainableClassifierAsyncCodeActivity クラス
- TrainableClassifierCodeActivity クラス
- TrainableClassifierNativeActivity クラス
- TrainableExtractorAsyncCodeActivity クラス
- TrainableExtractorCodeActivity クラス
- TrainableExtractorNativeActivity クラス
- Document Understanding Digitizer
- Document Understanding ML
- Document Understanding OCR ローカル サーバー
- Document Understanding
- IntelligentOCR
- リリース ノート
- IntelligentOCR アクティビティ パッケージについて
- プロジェクトの対応 OS
- 認証を構成する
- タクソノミーを読み込み
- ドキュメントをデジタル化
- ドキュメント分類スコープ
- キーワード ベースの分類器
- Document Understanding プロジェクト分類器
- インテリジェント キーワード分類器
- ドキュメント分類アクションを作成
- ドキュメント分類アクション完了まで待機し再開
- 分類器トレーニング スコープ
- キーワード ベースの分類器トレーナー
- インテリジェント キーワード分類器トレーナー
- データ抽出スコープ
- Document Understanding プロジェクト抽出器
- 正規表現ベースの抽出器
- フォーム抽出器
- インテリジェント フォーム抽出器
- 検証ステーションを提示
- ドキュメント検証アクションを作成
- ドキュメント検証アクション完了まで待機し再開
- 抽出器トレーニング スコープ
- 抽出結果をエクスポート
- ML サービス
- OCR
- OCR Contracts
- リリース ノート
- OCR コントラクトについて
- プロジェクトの対応 OS
- IOCRActivity インターフェイス
- OCRAsyncCodeActivity クラス
- OCRCodeActivity クラス
- OCRNativeActivity クラス
- Character クラス
- OCRResult クラス
- Word クラス
- FontStyles 列挙型
- OCRRotation 列挙型
- OCRCapabilities クラス
- OCRScrapeBase クラス
- OCRScrapeFactory クラス
- ScrapeControlBase クラス
- ScrapeEngineUsages 列挙型
- ScrapeEngineBase
- ScrapeEngineFactory クラス
- ScrapeEngineProvider クラス
- OmniPage
- PDF
- [リストから削除済] ABBYY
- [リストから削除済] ABBYY Embedded
Document Understanding アクティビティ
Last updated 2024年10月29日
PDF ファイルを読み込み
ドキュメントに含まれるすべての文字を読み取ることのできるアクティビティを使用して、
.pdf
ファイルの内容を読み取り、個別に抽出できます。
必要に応じて、文字を認識できるシンプルなアクティビティを使用することも、OCR エンジンを持つアクティビティを使用することもできます。OCR エンジンを使用する利点は、スキャンしたドキュメント、署名のあるドキュメント、あるいは手書きのドキュメントであっても、ドキュメントの読み取りを適用できることです。
以下の例は、
.pdf
ファイルを読み取る 2 つの状況を示しています。
- 1 つ目のシナリオとして、[PDF のテキストを読み込み] アクティビティを使用しながら
.pdf
ファイルを読み取る方法を説明しています。 - 2 つ目のシナリオとして、[OCR で PDF を読み込み] アクティビティを使用しながら
.pdf
ファイルを読み取る方法を説明しています。この 2 つのシナリオの主な違いは、2 つ目のシナリオで OCR エンジンも使用されている点です。これは、分析されたファイルが画像やスキャンされたファイルである場合、あるいは署名や手書きのフィールドを含むものである場合に、抽出された情報の詳細が最初のケースよりも正確だということを意味しています。どちらのアクティビティも、UiPath.PDF.Activities パッケージに含まれています。
両方のシナリオに必要なワークフローは 1 つだけであり、任意の読み取り方法の選択をユーザーに求める時点までは共通です。
手順
- Studio を開いて、新しいプロセスを作成します。
- ワークフロー デザイナーに [フローチャート] コンテナーを追加します。
chooseOption
という名前の変数を作成し、型を GenericValue に設定します。既定値は設定しません。注: 同じ場所からプロセス全体を実行できるようにするか、指定されたファイルを使用するためにこの例をダウンロードするには、プロジェクト ディレクトリに.pdf
ファイルを追加します。
- [入力ダイアログ] アクティビティを追加し、[Start] ノードに接続します。
- [プロパティ] パネルで、式
"Choose one option below:"
を [ラベル] フィールドに追加します。 - [Options] フィールドに式
{"Read PDF Text", "Read PDF With OCR"}
を追加します。 - [Title] フィールドに値
"Options"
を追加します。 - Result (値) フィールドに変数
chooseOption
を追加します。
- [プロパティ] パネルで、式
- [入力ダイアログ] アクティビティの後に [フロー条件分岐] アクティビティを追加し、アクティビティに接続します。
- [プロパティ] パネルで [条件] フィールドに式
chooseOption = "Read PDF Text"
を追加します。
- [プロパティ] パネルで [条件] フィールドに式
- [シーケンス] コンテナーを追加して、[フロー条件分岐] アクティビティの [True] ブランチに接続します。[シーケンス] の名前は「PDF のテキストを読み込み」にします。このアクティビティは、正規表現を使用して情報を抽出します。
- 次の表に示す変数を作成します。
表 1. 作成する変数 変数名
変数の型
既定値
extractedText
文字列
N/A arrayText
System.String[]
N/A address
GenericValue
N/A city
文字列
N/A phoneNumber
文字列
N/A invoiceNumber
文字列
N/A vendor
GenericValue
N/A bankName
文字列
N/A bankAccount
文字列
N/A ibanCode
文字列
N/A
- 次の表に示す変数を作成します。
- [シーケンス] コンテナーを追加して、[フロー条件分岐] アクティビティの [False] ブランチに接続します。[シーケンス] の名前は「OCR で PDF を読み込み」にします。このアクティビティは、OCR エンジン (Microsoft OCR および Tesseract OCR) を使用して情報を抽出します。
- 次の表に示す変数を作成します。
表 2. 作成する変数 変数名
変数の型
既定値
extractedTextTesseract
文字列
N/A extractedTextMicrosoft
文字列
N/A
図 1. ワークフローの開始の概要
- 次の表に示す変数を作成します。
- [PDF のテキストを読み込み] アクティビティを使用して PDF ファイルを読み込みます。
- [PDF のテキストを読み込み] シーケンス コンテナーをダブルクリックして開きます。
- シーケンス内に [PDF のテキストを読み込み] アクティビティを追加します。
- [プロパティ] パネルの [ファイル名] フィールドに式
"NPO Invoice.pdf"
を追加します。 - [Range] フィールドに値
"All"
を追加します。 - [テキスト] フィールドに変数
extractedText
を追加します。
- [プロパティ] パネルの [ファイル名] フィールドに式
- [PDF のテキストを読み込み] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
arrayText
を追加します。 - [右辺値 (Value)] フィールドに式
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- [代入] アクティビティの下に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
arrayText(0).Equals("Tiefland Glass AG")
を追加します。
- [条件 (Condition)] フィールドに式
- [シーケンス] コンテナー内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
address
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(2)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
city
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(","c)(0)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
phoneNumber
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
invoiceNumber
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
vendor
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(arrayText.Count-5)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- [Else] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
address
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(1)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
city
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(2).Split(","c)(0)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
phoneNumber
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
invoiceNumber
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
vendor
を追加します。 - [右辺値 (Value)] フィールドに式
arrayText(arrayText.Count-5)
を追加します。図 2. [代入] アクティビティを含むシーケンスの概要
- [左辺値 (To)/宛先] フィールドに変数
- [条件分岐 (if)] コンテナーの後に [繰り返し (コレクションの各要素)] アクティビティを配置します。
- Values (値) フィールドに変数
arrayText
を追加します。
- Values (値) フィールドに変数
- [繰り返し (コレクションの各要素)] アクティビティの [本体] コンテナー内に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.Contains("Bank Name:")
を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
bankName
を追加します。 - [右辺値 (Value)] フィールドに式
item.Split(":"c)(1)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- 前のアクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.Contains("Bank Account:")
を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
bankName
を追加します。 - [右辺値 (Value)] フィールドに式
item.Split(":"c)(1)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- 前のアクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.contains("IBAN Code:")
を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
ibanCode
を追加します。 - [右辺値 (Value)] フィールドに式
item.Split(":"c)(1)
を追加します。図 3. [繰り返し (コレクションの各要素)] アクティビティの概要
- [左辺値 (To)/宛先] フィールドに変数
- [PDF のテキストを読み込み] シーケンスに戻り、[繰り返し (コレクションの各要素)] アクティビティの下に [テキスト ファイルに書き込み] アクティビティを追加します。
- FileName フィールドに値
"InvoiceDetails.txt"
を追加します。 - 式
"Invoice details"+Environment.NewLine+Environment.NewLine+"Vendor: "+vendor+Environment.NewLine+"Vendor address: "+address+Environment.NewLine+"City: "+city+Environment.NewLine+"Phone number:"+phoneNumber+Environment.NewLine+"Invoice number:"+invoiceNumber+Environment.NewLine+"Bank name:"+bankName+Environment.NewLine+"Bank account:"+bankAccount+Environment.NewLine+"IBAN Code:"+ibanCode
を [テキスト] フィールドに追加します。図 4. [繰り返し (コレクションの各要素)] コンテナーの概要
- FileName フィールドに値
- [Main] ワークフローの作業領域に戻ります。
- [OCR で PDF を読み込み] アクティビティを使用して PDF ファイルを読み込みます。
- [OCR で PDF を読み込み] シーケンス コンテナーを開きます。
- シーケンス内に [OCR で PDF を読み込み] アクティビティをドラッグします。
- FileName フィールドに値
"Invoice02.pdf"
を追加します。 - [プロパティ] パネルで [並列度] フィールドに値
1
を追加します。
- FileName フィールドに値
- [OCR で PDF を読み込み] アクティビティ内に Google OCR エンジンをドラッグします。
- [プロパティ] パネルの [テキスト] フィールドに変数
extractedTextTesseract
を追加します。
- [プロパティ] パネルの [テキスト] フィールドに変数
- もう 1 つの [OCR で PDF を読み込み] アクティビティをドラッグし、前のアクティビティの後に配置します。
- FileName フィールドに値
"Invoice02.pdf"
を追加します。 - [プロパティ] パネルで [並列度] フィールドに値
1
を追加します。
- FileName フィールドに値
- [OCR で PDF を読み込み] アクティビティ内に Microsoft OCR エンジンをドラッグします。
- [プロパティ] パネルの [テキスト] フィールドに変数
extractedTextMicrosoft
を追加します。
- [プロパティ] パネルの [テキスト] フィールドに変数
- [OCR で PDF を読み込み] アクティビティの下に [テキスト ファイルに書き込み] アクティビティをドラッグします。
- FileName フィールドに値
"OCRMicrosoft.txt"
を追加します。 - [テキスト] フィールドに変数
extractedTextMicrosoft
を追加します。
- FileName フィールドに値
- 前の Write Text File アクティビティの下に Write Text File アクティビティをドラッグします。
- FileName フィールドに値
"OCRTesseract.txt"
を追加します。 - [テキスト] フィールドに変数
extractedTextTesseract
を追加します。図 5. [OCR で PDF を読み込み] アクティビティの概要
- FileName フィールドに値
- プロセスを実行します。ロボットは、指定されたプロセスを使用してデータを抽出し、出力を
.txt
ファイルに保存します。
この例を
ZIP
形式でダウンロードするには、「こちらのリンクにアクセスしてください。