- ABBYY FlexiCaptureの導入
- プログラムのインストールと実行
- ABBYY FlexiCaptureアーキテクチャ
-
プログラム設定
- ABBYY FlexiCapture設定
- マルチテナンシー
- プロジェクトの作成
-
文書定義
- 修正済み文書定義の作成
- 半構造化文書の文書定義の作成
- 自動データ抽出が不要な文書の文書定義の作成
- 文書セット
- 文書定義フィールド
- 文書定義ウィザード
- 文書定義の編集および発行
- 文書定義の作成
- 文書定義プロパティ
- 文書定義セクションのプロパティ
- ルールの確認
- 設定のエクスポート
- 文書ウィンドウでのデータ表示の設定
- 文書定義のテスト
- 文書定義のローカライズ
- 分類
- フィールド抽出トレーニング
- 設定されたプロジェクトの操作
-
インボイス用のABBYY FlexiCapture
- インボイス用のABBYY FlexiCapture の機能
- インボイスをキャプチャする方法
- インボイスキャプチャプロジェクトを設定する方法
- 仕様
- Capturing receipts
- Capturing purchase orders
- Using NLP to process unstructured documents
- ABBYY FlexiCapture インターフェイス
-
付録
-
ABBYY FlexiCapture でのスクリプトの使用
- .Net 言語で書かれるスクリプトの仕様
- 外部アセンブリ
- オブジェクトモデル
-
処理ステージのカスタマイズのためのスクリプト
- スクリプトの種類
-
オブジェクト
- IActionResult
- IAssemblingError
- IAssemblingErrors
- IBatch
- IBatchCheckResults
- IBatchItem
- IBatchItems
- IBatchTypeClassifier
- IBatchTypeClassifierResult
- IBinarizationParams
- IBoxedBoolean
- ICharacterParams
- ICharactersParams
- ICheckmarkGroupValue
- ICheckmarkValue
- IDataSet
- IDataSetQuery
- IDataSetRecord
- IDocument
- IDocuments
- IDocumentExportResults
- IDocumentsExportResults
- IDocumentDefinitionInfo
- IDocumentDefinitionInfoArray
- IEditablePictureObject
- IExportFieldsToRedact
- IExportImageSavingOptions
- IField
- IFieldRegion
- IFieldRegions
- IFields
- IFlexiCaptureTools
- ILocalContrastParams
- IMatchedSectionInfo
- IMatchingInfo
- IPage
- IPageClassificationResult
- IPages
- IPictureObject
- IPictureObjectsInfo
- IPrincipal
- IPrincipals
- IProcessingCallback
- IProject
- IProperties
- IProperty
- IPropertyModificationInfo
- IRecordCheckResult
- IRecordset
- IRect
- IRects
- IRoutingRuleResult
- IRuleContext
- IRuleError
- IRuleErrors
- IRuleTag
- IRuleTags
- IScriptBinaryAttributes
- IScriptDefinitionContext
- ISectionDefinitionInfo
- ISectionDefinitionInfoArray
- IShadowsHighlightsParams
- IStageInfo
- IUserAttachment
- IUserAttachments
- IUserSessionInfo
- IValue
- IVARIANTArray
- TAssemlingErrorType
- TBatchItemType
- TColorToFilter
- TExportFieldType
- TExportType
- TImageCompressionType
- TPageClassificationType
- TPdfAVersion
- TPdfDocumentInfoType
- TPdfTextSearchAreaType
- TPrincipalType
- TProcessingPriority
- TPropertyType
- TRuleErrorType
- TStateType
- サンプルスクリプト
- 認識言語の内部名
-
インターフェイスイベントの処理スクリプト
- イベントハンドラ
-
オブジェクト
- IBoolean
- IBoxedFieldControl
- IDocumentEditor
- IDocumentItem
- IDocumentItems
- IDocumentsCollection
- IDocumentsWindow
- IDrawContext
- IErrorControl
- IErrorControls
- IErrorsWindow
- IFieldControl
- IFieldRegionControl
- IFieldRegionControls
- IFormWindow
- IImageWindow
- IMainMenu
- IMainWindow
- IMenu
- IMenuItem
- IPageControl
- IPageItem
- IPageItems
- IPagesCollection
- IPoint
- ISelection
- IShellRational
- IShellRect
- IShellRects
- ITaskWindow
- ITextEditor
- IToolbar
- IToolbarButton
- IToolbars
- TCommandBarType
- TCommandID
- TDockingType
- TDocumentState
- TErrorType
- TSelectionType
- TTaskWindowMode
- TTextSize
- TUserRole
- TWorkWindowType
- ウェブ検証ステーションのユーザースクリプト
- 機械による読み取りが可能なフォームの作成
- ホットキー
- 追加オプション
- 処理サーバーコマンドの説明
- FlexiCaptureバックアップ
- ABBYY FlexiCapture サンプルプロジェクト
- サポートされる認識言語
- Supported classifier languages
- 正しい文字レンダリングのためのフォント
- サポートされるテキストタイプ
- サポートされるバーコードタイプ
- 対応している入力形式
- PDF ファイルの処理
- 出力ファイル形式
- 日付形式
- 正規表現で使用されるアルファベット
- 特許
- サードパーティ技術
- 用語集
- テクニカル サポート
- ABBYY FlexiCapture の購入方法
- エンドユーザー使用許諾契約(EULA)
-
ABBYY FlexiCapture でのスクリプトの使用
文書分類スクリプト
ABBYY FlexiCapture分類子では、送信された文書が処理され、そのクラスが判別されます。これにより、フィールドの抽出で使用する文書定義を選択できます。
各分類子は特定の分類トレーニングバッチに対応します。
単一のバッチに複数の分類子を使用する場合、分類スクリプトを設定する必要があります。追加的に分類されなければならない文書がある時に、役に立ちます。この場合、最初の分類子で文書をクラスに応じて分類し、次に、分類結果に応じて追加の分類子をスクリプトから選択します。例えば、文書は最初に「請求書」と「契約書」に分類され、次に請求書は会社名に応じてさらに分類されます。
注:このスクリプトは、既存の分類トレーニングバッチに対してのみ設定でき、新しいバッチを作成する時には設定できません。
分類スクリプトを設定するには:
- プロジェクト → プロジェクトプロパティ...と開きます。
- プロジェクトプロパティウィンドウの認識タブに進みます。
- 分類スクリプトエディタを、分類セクションのスクリプトを使用の右の設定...をクリックして、開きます。
- ダイアログボックスで、適切な分類子を、追加...をクリックしてリストから分類バッチを選ぶことで、選択します。
- これで分類子の別名を変更できます。これにより、分類子の名前が処理中に変更された場合でもスクリプトを書き直す必要がなくなります。スクリプトは、別名列で指定された特定の名前を言及します。
- スクリプトエディタウィンドウを、スクリプトの編集...をクリックして、開きます。
パラメータ
名前 | タイプ | アクセス | 説明 |
BatchTypeClassifier | IBatchTypeClassifier | 読み取り専用 | バッチタイプの分類子。 |
IsConfident | bool | 読み取り専用 |
分類の信頼度。自動分類子で作業する場合とは違い、スクリプトを使用する場合は、ページプロパティで当パラメータを手動で指定します。 例IClassificationResult result = Classifiers[0].ClassifyPage( Page ) Page.ResultClassName = result.ClassName Page.IsResultClassConfident = result.IsConfident |
Page | IPage | 読み取り/書き込み | ドキュメントのページ |
Processing | IProcessingCallback | 読み取り/書き込み | 処理情報を記録するためのオブジェクト |
スクリプトサンプル
このスクリプトはページを分類して、そのプロパティにクラス名を追加します。
IBatchTypeClassifierResult classifierResult = BatchTypeClassifier.ClassifyPage( Page, null );
Page.ResultClassName = classifierResult.ClassName;
次のサンプルスクリプトは、分類の信頼度を返します。
IClassificationResult result = Classifiers[0].ClassifyPage( Page ); FCTools.ShowMessage( "Class: " + result.ClassName ); Page.ResultClassName = result.ClassName; FCTools.ShowMessage( "IsConfident: " + result.IsConfident ); Page.IsResultClassConfident = result.IsConfident;
Sample script that combines multiple classifiers for cascade classification
var res0 = Classifiers.Get ( "Batch" ).ClassifyPage( Page ); IClassConfidences classVars = res0.Classes; foreach( IClassConfidence c in classVars ) { FCTools.ShowMessage( c.Name + " --> " + c.Confidence.ToString() ); } FCTools.ShowMessage( "Class res0: " + res0.ClassName); if (res0.ClassName == "Invoice") { var res1 = Classifiers.Get ( "Batch2" ).ClassifyPage( Page ); IClassConfidences classVars1 = res1.Classes; foreach( IClassConfidence d in classVars1 ) { FCTools.ShowMessage( d.Name + " --> " + d.Confidence.ToString() ); } FCTools.ShowMessage( "Class res1: " + res1.ClassName); Page.ResultClassName = res1.ClassName; } else { Page.ResultClassName = res0.ClassName; } FCTools.ShowMessage( "Page.ResultClassName: " +Page.ResultClassName);
分類信頼度が特定の値よりも低い文書に不明クラスを割り当てるサンプルスクリプト
信頼レベルの低い文書にクラスを割り当てる必要がないシナリオ(すでにクラスが指定されている場合も含みます)では、次のスクリプトが使用できます。その種の文書は、オペレーターが手動で分類しなければなりません。
重要!スクリプトが役に立つには、あらかじめ新規のクラス(たとえば「不明」)が作成されていなければなりません。次に、クラスをマッピングしています...ダイアログで文書定義にリンクされている必要があります。詳細については、マッピングクラスから文書定義セクションを参照してください。
システムの利用、 IClassificationResult result = Classifiers.Get ( "ClassifierBatch" ).ClassifyPage(Page); Page.ResultClassName = result.ClassName; IClassConfidences classVars = result.Classes; Page.Comment = ""; foreach( IClassConfidence c in classVars ) { //FCTools.ShowMessage( c.Name + " -- " + c.Confidence.ToString() ); // イベントログに分類信頼度の値を記録 Page.Comment = Page.Comment + c.Name + "-" + c.Confidence.ToString() + "; "; // ページコメントに分類信頼度の値を記録 } if (classVars.Count>0) { if (classVars[0].Confidence<80) Page.IsResultClassConfident=false; // それを下回ると文書が不確実な分類に分類される信頼度しきい値 else Page.IsResultClassConfident=true; if (classVars[0].Confidence<20) Page.ResultClassName="Unknown"; // それを下回ると文書が「不明」クラスに分類される信頼度しきい値 if (classVars.Count>1) { int classesToShow = Math.Min(classVars.Count, 3); for(int i=0; i<classesToShow; i++) { Page.Comment = Page.Comment + classVars[i].Name + "-" + classVars[i].Confidence.ToString() + "; "; } } } FCTools.ShowMessage( "Class: " + Page.ResultClassName );
注:このスクリプトの信頼度しきい値は、実演のみを目的としており、ユーザーは具体的なワークフローに応じて修正することができます。
1/14/2021 2:17:22 PM