- 概要
- 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 Process - Studio のテンプレート
- Document Understanding アクティビティ
- IntelligentOCR
- Intelligent OCR アクティビティ パッケージについて
- プロジェクトの対応 OS
- ドキュメントのデジタル化の手動検証
- FlexiCapture を使用したデータ抽出
- インテリジェント フォーム抽出器を使用したアンカーベースのデータ抽出
- 検証ステーション
- 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
インテリジェント フォーム抽出器を使用したアンカーベースのデータ抽出
以下の例では、手書きのテキストが含まれる場合もあるフォームからデータを抽出する方法を説明します。次のユースケース シナリオは、発注書からデータを抽出する方法を説明します。
[ドキュメントをデジタル化]、[データ抽出スコープ]、[インテリジェント フォーム抽出器] などのアクティビティを使用します。これらのアクティビティは、UiPath.IntelligentOCR.Activities パッケージに含まれています。
ワークフローを作成する
下記のワークフローを作成する前に、次のパッケージをインストールしておく必要があります。
- UiPath.DocumentProcessing.Contracts.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.WebAPI.Activities
サンプルと同等のオートメーション プロセスは以下のように構築できます。</summary>
サンプルと同等のオートメーション プロセスは以下のように構築できます。
- Studio を開いて、新しいプロセスを作成します。
-
ワークフロー デザイナーで [シーケンス] コンテナーをドラッグして Sequence1 と命名し、次の変数を作成します。
変数名
変数の型
既定値
item
文字列
classificationResult
ClassificationResult[]
outputFileName
GenericValue
-
ワークフロー デザイナーで、最初のコンテナーの下にもう 1 つ [シーケンス] コンテナーをドラッグして Sequence2 と命名し、次の変数を作成します。
変数名
変数の型
既定値
text
文字列
taxonomy
DocumentTaxonomy
dom
Document
documentPath
文字列
classificationResult2
ClassificationResult[]
outputFileName2
GenericValue
-
シーケンス内に [メッセージ ボックス] アクティビティを追加します。
-
[プロパティ] パネルの [ボタン] ドロップダウンから [Ok] オプションを選択します。[テキスト] フィールドに「Select a PDF file」というメッセージを追加します。
-
- TopMost オプションのチェックボックスをします。メッセージ ボックスが常に前面に表示されます。
-
[メッセージ ボックス] アクティビティの下に [ファイルを選択] アクティビティを追加します。
- [プロパティ] パネルの [フィルター] フィールドに、テキスト「
Pdf files (*.pdf)|*.pdf
」を追加します。 - [選択されたファイル] フィールドに変数
documentPath
を追加します。
- [プロパティ] パネルの [フィルター] フィールドに、テキスト「
-
[ファイルを選択] アクティビティの下に、[代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
outputFileName2
を追加します。 - [右辺値 (Value)] フィールドに式
".temp/" + Path.GetFileName(documentPath)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの下に、[JSON を逆シリアル化] アクティビティを追加します。
- [Json 文字列] フィールドに式
File.ReadAllText("DocumentProcessing axonomy.json")
を追加します。 - [プロパティ] パネルの [TypeArgument] ドロップダウン リストから [UiPath.DocumentProcessing.Contracts.Taxonomy.DocumentTaxonomy] オプションを選択します。
- [Json オブジェクト] フィールドに変数
taxonomy
を追加します。
- [Json 文字列] フィールドに式
-
[JSON を逆シリアル化] アクティビティの下に [ドキュメントをデジタル化] アクティビティを追加します。
- [プロパティ] パネルで [並列度] フィールドに値
1
を追加します。 - [ドキュメントパス] フィールドに変数
documentPath
を追加します。 - [ドキュメントオブジェクトモデル] フィールドに変数
dom
を追加します。 - [ドキュメント テキスト] フィールドに変数
text
を追加します。 - アクティビティ内に [UiPath Document OCR] エンジンを追加します。
- [API キー] フィールドに、使用する API キーを追加します。
- [エンドポイント] フィールドに式
"https://du.uipath.com/ocr"
を追加します。
- [プロパティ] パネルで [並列度] フィールドに値
-
[ドキュメントをデジタル化] アクティビティの下に、[テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに式
JsonConvert.SerializeObject(dom)
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".dom.json"
を追加します。
- [テキスト] フィールドに式
-
[テキスト ファイルに書き込み] アクティビティの下に、もう 1 つ [テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに変数
text
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".text.txt"
を追加します。
- [テキスト] フィールドに変数
-
ワークフロー デザイナーで、もう 1 つ [シーケンス] コンテナーをドラッグして Sequence3 と命名し、次の変数を作成します。
変数名
変数の型
既定値
extractionResult
ExtractionResult
validatedResults
ExtractionResult
doubleValidatedResults
ExtractionResult
dataset
データセット
i
Int32
-
Sequence3 内に [データ抽出スコープ] アクティビティを追加します。
- [プロパティ] パネルの [ドキュメントオブジェクトモデル] フィールドに変数
dom
を追加します。 - [ドキュメントパス] フィールドに変数
documentPath
を追加します。 - [ドキュメント テキスト] フィールドに変数
text
を追加します。 - [ドキュメント種類 ID] フィールドに式
"All.Benchmarks.Invoice"
を追加します。 - [タクソノミー] フィールドに変数
taxonomy
を追加します。 - [抽出結果] フィールドに変数
extractionResult
を追加します。
- [プロパティ] パネルの [ドキュメントオブジェクトモデル] フィールドに変数
-
[データ抽出スコープ] アクティビティ内に [インテリジェント フォーム抽出器] アクティビティを追加します。
- [API キー] フィールドに、使用する API キーを追加します。
-
[データ抽出スコープ] アクティビティの下に、[テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに式
JsonConvert.SerializeObject(extractionResult)
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".results.json"
を追加します。
- [テキスト] フィールドに式
-
[テキスト ファイルに書き込み] アクティビティの下に、[検証ステーションを提示] アクティビティを追加します。
- [自動抽出結果] フィールドに変数
extractionResult
を追加します。 - [ドキュメントオブジェクトモデル] フィールドに変数
dom
を追加します。 - [ドキュメントパス] フィールドに変数
documentPath
を追加します。 - [ドキュメント テキスト] フィールドに変数
text
を追加します。 - [タクソノミー] フィールドに変数
taxonomy
を追加します。 - [承認された抽出結果] フィールドに変数
validatedResults
を追加します。
- [自動抽出結果] フィールドに変数
-
[検証ステーションを提示] アクティビティの下に、[テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに式
JsonConvert.SerializeObject(validatedResults)
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".savedinVS.results.json"
を追加します。
- [テキスト] フィールドに式
-
[テキスト ファイルに書き込み] アクティビティの下に、もう 1 つ [テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに式
JsonConvert.SerializeObject(doubleValidatedResults)
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".doubleSavedinVS.results.json"
を追加します。
- [テキスト] フィールドに式
- プロセスを実行します。オートメーション プロセスによって、検証ステーションが開き、データが抽出および検証されて、出力フォルダーに保存されます。
こちらからサンプルをダウンロードできます。
タクソノミーを定義する
変数がすべて定義され、すべてのアクティビティがカスタマイズされたワークフローを作成できました。次は、タクソノミーの定義です。タクソノミーを定義するには、こちらの手順に従ってください。
請求書から情報を抽出できるように、タクソノミーを作成します。次のフィールドを持つドキュメントの種類 [請求書] を作成してください。
フィールド名 |
フィールドの種類 |
---|---|
請求書番号 |
|
小計 |
|
消費税 |
|
合計 |
|
タクソノミーは次のようになります。
テンプレートを作成する
次は、抽出プロセスで使用するテンプレートを作成します。こちらの手順に従って作成してください。
次の GIF は、テンプレートの作成方法を示しています。
テンプレートにアンカーを設定する
アンカーとは、ドキュメントから正確な情報を抽出する必要がある場合に使用する、非常に特殊で便利な機能です。抽出領域をアンカーによって定義することで、高精度のデータ抽出が可能になります。
次の GIF は、上の例で使用する請求書ドキュメントでのアンカーの使用方法を示しています。アンカーに関する詳細は、こちらをご覧ください。
タクソノミーの定義とテンプレートの作成が完了したら、アンカーを使用してテンプレートの設定を開始できます。つまり、ボックスで抽出領域を定義し、アンカーによってボックスの位置を定義します。
テンプレートにアンカーを追加する前に、以下のことを知っておいてください。
- あらゆる種類の請求書番号 (長短、フォントの大きさなど) に対応できるように、アンカー ボックスのサイズ (高さ、幅) は、できるだけ大きくしてください。
- アンカーは 1 つの抽出領域に必要なだけ、いくつでも設定できますが、メインとして定義できるのは 1 つだけです (最初のアンカー)。
- 複数の単語が横に並んだアンカーを使用します。
- メイン アンカーは抽出領域のできるだけ近くに配置する必要があります。
- テンプレート内での抽出領域とメイン アンカーの位置は、たとえ異なるドキュメントに適用される場合であっても、固定されています。変更できるのは、メイン アンカーとセカンダリ アンカーの間の距離だけです。
テンプレートの設定を続けて、アンカーを使用したデータ抽出の方法を見てみましょう。次の GIF は、抽出領域をマークして、メイン アンカーとセカンダリ アンカーを追加する方法を示しています。
-
抽出領域を設定します。
注:抽出処理の精度を高めて、より的確な結果を得られるようにするために、メイン アンカーには 2 ~ 3 つの単語を含めるようにしてください。
アンカーにタグ付けするときに複数の単語を選択するには、Ctrl を押しながら目的の単語をクリックします。
-
メイン アンカーを設定します。
-
セカンダリ アンカーを設定します。
抽出領域の定義とアンカーの追加がすべて完了するまで、上記のプロセスを繰り返します。完了したら、テンプレートを保存します。