> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# カスタム field

> 追加の FlexiLayout やベンダー固有の FlexiLayout を作成するか、Document Definition を学習させることで、ABBYY FlexiCapture でカスタムの請求書 field を抽出します。

FlexiCapture for Invoices では、事前定義のデータ型が用意されていない請求書のfieldを抽出できるほか、任意のfieldの抽出方法を変更することもできます。

これを行うには、いくつかの方法があります。

| 方法                                    | 説明                                                                                                  |
| ------------------------------------- | --------------------------------------------------------------------------------------------------- |
| 追加の FlexiLayout を作成する                 | 追加の FlexiLayout を使用すると、事前定義のデータ型が用意されていないfieldを抽出できるほか、任意のベンダーの請求書から標準fieldを抽出する方法を変更することもできます。     |
| 特定のベンダー向けの FlexiLayout を作成する          | ベンダー固有の FlexiLayout を使用すると、事前定義のデータ型が用意されていないfieldを抽出できるほか、特定のベンダーの請求書から標準fieldを抽出する方法を変更することもできます。 |
| 特定のベンダー向けの Document Definition を学習させる | 特定のベンダー向けの Document Definition を作成すると、そのベンダーの請求書からfieldを抽出できるようにプログラムを学習させることができます。                 |

これらのソリューションは、いずれか 1 つだけを利用することも、組み合わせて利用することもできます。たとえば、すべてのベンダーの請求書に適用される追加の Document Definition に新しいfieldを追加し、一部のベンダーの請求書についてはその新しいfieldを認識するようにプログラムを学習させ、他のベンダー向けには FlexiLayout バリアントを作成できます。

複数の FlexiLayout がどのように適用されるかについて詳しくは、[異なる FlexiLayout の結果のマージ方法](/ja/flexi-capture/invoice-reader/ir-mechanism)を参照してください。

<div id="create-an-additional-flexilayout">
  ## 追加の FlexiLayout の作成
</div>

ABBYY FlexiLayout Studio で作成した任意の FlexiLayout は、FlexiCapture for Invoices で追加の FlexiLayout として使用できます。

新しい種類の field を抽出するには、FlexiLayout に一意の名前を持つ新しいブロックを作成し、画像上でそのブロックを見つけるためのロジックを定義します。この FlexiLayout を Document Definition に追加すると、FlexiLayout 内の新しいブロックと同じ名前の新しい field が作成されます。

追加の FlexiLayout 内のブロック名が Document Definition 内の標準 field 名と同じ場合、そのブロックの抽出には追加の FlexiLayout が使用されます。

FlexiLayout を Document Definition に追加するには、次の手順に従います。

<Steps>
  <Step title="Document Definitions ダイアログを開く">
    **Project** メニューの **Document Definitions...** をクリックします。
  </Step>

  <Step title="Document Definition を編集する">
    開いたダイアログで **Document Definition** を選択し、**Edit...** ボタンをクリックします。
  </Step>

  <Step title="Document Definition のプロパティを開く">
    **Document Definition** メニューの **Document Definition Properties...** をクリックします。
  </Step>

  <Step title="FlexiLayout タブを開く">
    開いたダイアログで **FlexiLayout** タブをクリックします。
  </Step>

  <Step title="FlexiLayout をロードする">
    **Additional FlexiLayout** オプション グループの **Load...** ボタンをクリックし、開いたダイアログで FlexiLayout ファイルへのパスを指定します (FlexiLayout ファイルの拡張子は `.afl` です)。
  </Step>
</Steps>

ABBYY FlexiLayout Studio には、請求書用の追加 FlexiLayout を開発するための機能がいくつかあります。

* 請求書のベンダーと事業部門の ID を特定し、Document Definition 内のデータセットを参照できます。
* メインの FlexiLayout が適用された際に検出される可能性がある field を基準として、element の位置を指定できます。
* XML ファイルを使用して FlexiLayout をパラメーター化できます。これにより、FlexiLayout や Document Definition を編集しなくても、複雑なキーワードの一覧やその他の FlexiLayout パラメーターを保存および編集できます。

ABBYY FlexiLayout Studio の特長の詳細については、[追加の FlexiLayouts を作成するための ABBYY FlexiLayout Studio の特長](/ja/flexi-capture/invoice-reader/ir-fls-special-facilities)を参照してください。

<div id="develop-a-flexilayout-variant-for-a-specific-vendor">
  ## 特定のベンダー向けの FlexiLayout バリアントの作成
</div>

FlexiCapture for Invoices では、特定のベンダーの請求書を処理する際に、別の FlexiLayout バリアントを使用できます。この追加の FlexiLayout バリアントは、学習によって自動的に作成できます。バリアントの結果に満足できない場合は、ABBYY FlexiLayout Studio で開いて、field の検索アルゴリズムを手動で変更できます。

<div id="enable-and-apply-training">
  ### 学習を有効にして適用する
</div>

Document Definition エディターで学習機能を有効にするには、次の手順を実行します。

<Steps>
  <Step title="Document Definition の設定を開く">
    **Document Definition Properties... → Document Definition Settings** を開きます。
  </Step>

  <Step title="追加の field と機能を編集する">
    **Additional Fields and Features** グループで **Edit...** をクリックします。
  </Step>

  <Step title="学習を有効にする">
    **Training during invoice processing** を選択します。
  </Step>
</Steps>

既存の field と新しい field の両方を学習できます。学習機能を適用するには、次の手順を実行します。

<Steps>
  <Step title="請求書を追加する">
    そのベンダーの請求書を少なくとも 1 つバッチに追加します。
  </Step>

  <Step title="認識する">
    請求書を認識します。
  </Step>

  <Step title="ベンダーを確認する">
    プログラムがベンダーを正しく判定していることを確認します。正しく判定されない場合は、正しいベンダーを手動で指定します。
  </Step>

  <Step title="field をマークする">
    学習させたい field の位置を変更するか、その Region を指定します。
  </Step>

  <Step title="学習する">
    請求書を選択し、**Train** をクリックします。**学習用バッチ** が作成されます。
  </Step>
</Steps>

<Note>
  学習は最初の請求書が認識された後に開始されますが、より高い精度を得るには、この field を含むサンプル画像を少なくとも 3 つプログラムに提供する必要があります。
</Note>

<div id="review-and-edit-the-training-batch">
  ### 学習用バッチを確認して編集する
</div>

Administrator は、Operator 主導の学習の結果として作成された **学習用バッチ** を確認し、変更できます。

<Steps>
  <Step title="学習用バッチビューを開く">
    ツールバーの <img src="https://mintcdn.com/abbyy/IFr-A2MDVJd80FDs/images/flexi-capture/DocVariantsButton.png?fit=max&auto=format&n=IFr-A2MDVJd80FDs&q=85&s=83762cc174be930546e05af50a27f2be" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="23" height="23" data-path="images/flexi-capture/DocVariantsButton.png" /> **Open Field Extraction Training Batches** ボタンをクリックして、学習用バッチビューに切り替えます。学習用バッチには特定のベンダーのサンプルバッチが含まれており、そのベンダー用の FlexiLayout の学習に使用されます。

    次に、自動学習を使用するか、FlexiLayout バリアントを手動で編集するかを決定します。

    * 自動学習を行う場合は、サンプル請求書をさらに数件バッチに追加し (少なくとも 3 件を推奨) 、field region を指定します。詳しくは、[Training done by project administrators](/ja/flexi-capture/invoice-reader/ir-training-doc-variants) を参照してください。
    * FlexiLayout バリアントを手動で編集する場合は、次の手順に進みます。
  </Step>

  <Step title="学習済み FlexiLayout をエクスポートする">
    学習用バッチの画像と、学習時に作成された FlexiLayout を含む FlexiLayout バリアントを ABBYY FlexiLayout Studio にエクスポートします。次のいずれかの操作を行います。

    * **Project** メニューで **Training → Export Trained FlexiLayout...** をクリックする、または
    * バッチを右クリックし、ショートカットメニューから **Export Trained FlexiLayout...** を選択します。
  </Step>

  <Step title="FlexiLayout Studio でプロジェクトを開く">
    ABBYY FlexiLayout Studio で、作成したプロジェクトを開きます。

    FlexiLayout 内の ブロック は、Document Definition 内の field に対応しています。学習に含まれるすべての ブロック には <img src="https://mintcdn.com/abbyy/IFr-A2MDVJd80FDs/images/flexi-capture/FLS_ButtonTrained.png?fit=max&auto=format&n=IFr-A2MDVJd80FDs&q=85&s=1f55703da46412d0aee14efdf5a1cc05" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="30" height="30" data-path="images/flexi-capture/FLS_ButtonTrained.png" /> アイコンが付いており、これは ブロック を抽出するためのアルゴリズムが自動生成されたことを示します。

    FlexiLayout を変更すると、プログラムはこれらの ブロック を手動で作成されたものと見なします。Document Definition が適用されると、プログラムは field の region をどの FlexiLayout から取得するかを選択する必要があり、手動で作成された ブロック は常に優先されます。詳しくは、[How results from different FlexiLayouts are merged](/ja/flexi-capture/invoice-reader/ir-mechanism) を参照してください。

    そのため、検索アルゴリズムを変更したくない ブロック は削除してください。これらの ブロック はメインの FlexiLayout に引き続き存在するため、Document Definition の適用時にも抽出されます。たとえば、**InvoiceDate** と **MyField** の ブロック にカスタムアルゴリズムを指定する場合は、これらの ブロック を FlexiLayout に残し、それ以外をすべて削除します。

    <Note>
      FlexiLayout に新しい ブロック を追加するだけでは、特定のベンダー用の Document Definition に新しい field を作成することはできません。Document Definition の field に対応していない FlexiLayout バリアント内の ブロック は、そのベンダーの請求書を処理するときにエラーの原因になります。特定のベンダーの請求書から新しい field を抽出するには、まず Document Definition にその field を作成してください ([Train a Document Definition for a specific vendor](#train-a-document-definition-for-a-specific-vendor) を参照) 。
    </Note>
  </Step>

  <Step title="検索アルゴリズムを指定する">
    ABBYY FlexiLayout Studio の標準ツールを使用して、ブロック を見つけるための検索アルゴリズムを指定します。
  </Step>

  <Step title=".afl ファイルにエクスポートする">
    **File** メニューの **Export...** をクリックして、FlexiLayout バリアントを `.afl` ファイルにエクスポートします。
  </Step>

  <Step title="FlexiLayout をインポートする">
    FlexiCapture で、ツールバーの <img src="https://mintcdn.com/abbyy/IFr-A2MDVJd80FDs/images/flexi-capture/DocVariantsButton.png?fit=max&auto=format&n=IFr-A2MDVJd80FDs&q=85&s=83762cc174be930546e05af50a27f2be" alt="" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="23" height="23" data-path="images/flexi-capture/DocVariantsButton.png" /> **Open Field Extraction Training Batches** ボタンをクリックして、テスト用バッチビューに切り替えます。次に、FlexiLayout をインポートします。次のいずれかの操作を行います。

    * **Project** メニューで **Training → Import FlexiLayout...** をクリックする、または
    * バッチを右クリックし、ショートカットメニューで **Import FlexiLayout...** をクリックします。

    前の手順で作成した `.afl` ファイルへのパスを指定します。
  </Step>

  <Step title="サンプル請求書を認識する">
    ベンダーのサンプル請求書を認識します。処理ログには、ベンダー用の FlexiLayout バリアントからどの field region が選択されたかを示すメッセージが含まれます。
  </Step>

  <Step title="結果を確認する">
    処理済みドキュメントをエディターで開いて確認します。
  </Step>
</Steps>

<div id="train-a-document-definition-for-a-specific-vendor">
  ## 特定のベンダー向けに Document Definition を学習する
</div>

新しい field を作成するには、次の手順を実行します。

<Steps>
  <Step title="field を作成する">
    Document Definition エディターで、**Edit → Create Field** を選択します (または field 一覧内を右クリックします) 。次に、field の型を選択します。
  </Step>

  <Step title="field に名前を付ける">
    **Properties** ダイアログで、追加する field の名前を入力し、**Can have region** オプションを選択します。
  </Step>
</Steps>

<Note>
  さまざまな型の field の設定方法の詳細については、[Document Definition fields](/ja/flexi-capture/templates/fields) を参照してください。
</Note>

指定した名前の新しい field が、データ フォームと field 一覧に表示されます。

次に、この field からデータを取得できるようにプログラムを学習させます。学習はベンダーごとに個別に行われます。詳細については、[請求書の取り込み時の学習](/ja/flexi-capture/invoice-reader/ir-operator-training) を参照してください。
