- 概要
- 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
インテリジェント フォーム抽出器を使用したアンカーベースのデータ抽出
以下の例では、手書きのテキストが含まれる場合もあるフォームからデータを抽出する方法を説明します。次のユースケース シナリオは、発注書からデータを抽出する方法を説明します。
[ドキュメントをデジタル化]、[データ抽出スコープ]、[インテリジェント フォーム抽出器] などのアクティビティを使用します。これらのアクティビティは、UiPath.IntelligentOCR.Activities パッケージに含まれています。
下記のワークフローを作成する前に、次のパッケージをインストールしておく必要があります。
- UiPath.DocumentProcessing.Contracts.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.WebAPI.Activities
Steps:
- Studio を開いて、新しいプロセスを作成します。
- ワークフロー デザイナーに [シーケンス] コンテナーを追加して、名前を Sequence1 とし、次の表に示す変数を作成します。
表 1. 作成する変数 変数の型
既定値
item
文字列
N/A classificationResult
ClassificationResult[]
N/A outputFileName
GenericValue
N/A - ワークフロー デザイナーで 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 - シーケンス内に [メッセージ ボックス] アクティビティを追加します。
- [プロパティ] パネルの [ボタン] ドロップダウンから [OK] オプションを選択します。[テキスト] フィールドに「Select a PDF file」というメッセージを追加します。
- [最前面] オプションのチェック ボックスを選択します。これにより、メッセージ ボックスが必ず最前面に表示されるようになります。
- [メッセージ ボックス] アクティビティの後に [ファイルを選択] アクティビティを追加します。
- [プロパティ] パネルの [フィルター] フィールドに、テキスト「
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
を追加します。 - Add the UiPath® Document OCR engine inside the activity.
- [API キー] フィールドに、使用する API キーを追加します。
- [エンドポイント] フィールドに式
"https://du.uipath.com/ocr"
を追加します。
- [プロパティ] パネルで [並列度] フィールドに値
- [ドキュメントをデジタル化] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティを追加します。
- [テキスト] フィールドに式
JsonConvert.SerializeObject(dom)
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".dom.json"
を追加します。
- [テキスト] フィールドに式
- [テキスト ファイルに書き込み] アクティビティの後に、[テキスト ファイルに書き込み] アクティビティをもう 1 つ追加します。
- [テキスト] フィールドに変数
text
を追加します。 - [ファイル名] フィールドに式
outputFileName2 + ".text.txt"
を追加します。
- [テキスト] フィールドに変数
- ワークフロー デザイナーに [シーケンス] コンテナーをもう 1 つ追加して、名前を Sequence3 とし、次の表に示す変数を作成します。
表 3. 作成する変数 変数の型
既定値
extractionResult
ExtractionResult
N/A validatedResults
ExtractionResult
N/A doubleValidatedResults
ExtractionResult
N/A dataset
データセット
N/A i
Int32
N/A - 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"
を追加します。
- [テキスト] フィールドに式
- プロセスを実行します。オートメーション プロセスによって、検証ステーションが開き、データが抽出および検証されて、出力フォルダーに保存されます。
ZIP
形式でダウンロードするには、「こちらのリンクにアクセスしてください。
変数がすべて定義され、すべてのアクティビティがカスタマイズされたワークフローを作成できました。次は、タクソノミーの定義です。独自のタクソノミーを定義する方法については、「タクソノミーを読み込み」をご覧ください。
請求書から情報を抽出できるように、タクソノミーを作成します。次の表に示すフィールドを含むドキュメントの種類 [請求書] を作成してください。
フィールドの種類 | |
---|---|
請求書番号 |
|
小計 |
|
消費税 |
|
合計 |
|
次は、抽出プロセスで使用するテンプレートを作成します。テンプレートの作成方法については、「タクソノミーを読み込み」をご覧ください。
- ドキュメントの種類: 請求書
- テンプレート名: Invoice-example
- テンプレート ドキュメント: ターゲット ファイルを選択
- OCR エンジン: Microsoft OCR
- 言語: en
- プロファイル: Scan
- 拡大縮小: 1
アンカーとは、ドキュメントから正確な情報を抽出する必要がある場合に使用する、非常に特殊で便利な機能です。抽出領域をアンカーによって定義することで、高精度のデータ抽出が可能になります。
タクソノミーの定義とテンプレートの作成が完了したら、アンカーを使用してテンプレートの設定を開始できます。つまり、ボックスで抽出領域を定義し、アンカーによってボックスの位置を定義します。
テンプレートにアンカーを追加する前に、以下のリストでヒントを確認しておいてください。
- あらゆる種類の請求書番号 (長短、フォントの大きさなど) に対応できるように、アンカー ボックスのサイズ (高さ、幅) は、できるだけ大きくしてください。
- アンカーは 1 つの抽出領域に必要なだけ、いくつでも設定できますが、メインとして定義できるのは 1 つだけです (最初のアンカー)。
- 複数の単語が横に並んだアンカーを使用します。
- メイン アンカーは抽出領域のできるだけ近くに配置する必要があります。
- テンプレート内での抽出領域とメイン アンカーの位置は、たとえ異なるドキュメントに適用される場合であっても、固定されています。変更できるのは、メイン アンカーとセカンダリ アンカーの間の距離だけです。
テンプレートの設定を続けて、アンカーを使用したデータ抽出の方法を見てみましょう。
- 抽出領域を設定します。
- 検証ステーションの右側の領域で、選択モードを選択します。
- [アンカー] を選択します。
- 目的の領域の選択を開始します。
図 3. 抽出領域の設定方法を示すアニメーション画像
注:抽出処理の精度を高めて、より的確な結果を得られるようにするために、メイン アンカーには 2 ~ 3 つの単語を含めるようにしてください。
アンカーにタグ付けするときに複数の単語を選択するには、Ctrl を押しながら目的の単語を選択します。
- メイン アンカーを設定します。
- まだ [アンカー] 選択モードを使用している間に、目的の領域をメイン アンカーとして選択します。
- 目的のフィールドで [値を抽出] を選択します。
図 4. メイン アンカーの設定方法を示す例のアニメーション画像
- セカンダリ アンカーを設定します。
- まだ [アンカー] 選択モードを使用していて、メイン アンカーの選択がアクティブになっていることを確認します。
- セカンダリ アンカーの新しい領域を選択します。
- 目的のフィールドで [オプション] を選択し、[抽出値を変更] を選択します。
図 5. セカンダリ アンカーの設定方法を示す例のアニメーション画像
抽出領域の定義とアンカーの追加がすべて完了するまで、上記のプロセスを繰り返します。完了したら、テンプレートを保存します。