> ## 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.

# フィールドレベル認識

> ABBYY FineReader Engineで、フォームやスキャンされたドキュメント上のfieldである短いテキスト断片を、高精度設定、確信度評価、検証用の投票機能とともに認識します。

フィールドレベル認識では、特定のfieldsからデータを取得するために、短いテキスト断片を認識します。このシナリオでは、認識精度が極めて重要です。

このシナリオは、ドキュメントから意味のあるデータを抽出する、より複雑なシナリオの一部として使用されることもあります (たとえば、紙のドキュメントから情報システムやデータベースにデータを取り込む場合や、Document Management Systemsでドキュメントを自動的に分類して索引付けする場合など) 。

このシナリオでは、システムは一部のfields内の複数行のテキスト、または小さな画像全体のテキストを認識します。システムは、認識された各文字について確信度を算出します。これらの確信度は、認識結果を確認する際に使用できます。さらに、システムはテキスト内の単語や文字について複数の認識候補を保存でき、それらは認識品質を向上させるための投票アルゴリズムで使用される場合があります。

このシナリオにおける短いテキスト断片の処理は、他のシナリオにおける同様の手順とはいくつかの点で異なります。

1. スキャン画像または写真の前処理

認識対象の画像には、マークや背景ノイズが含まれている場合があり、これらはいずれも認識を妨げる可能性があります。そのため、この段階で不要なマークや背景ノイズを除去します。

2. 短いテキスト断片の認識

短いテキスト断片を認識する際は、認識対象のデータの種類があらかじめわかっています。そのため、外部辞書、正規表現、カスタム認識言語、アルファベットを使用し、さらに文字列内の文字数に制限を設けることで、認識精度を向上させることができます。テキストfieldsには、活字、手書き風文字、手書き文字のテキストを含めることができます。

3. 認識されたデータの処理

このシナリオでは、データ確認作業を最小限に抑えるために、最大限の認識精度が求められます。システムは、認識された各単語または文字について確信度を算出し、複数の認識候補を提供できます。これらの候補の中から、複数のエンジンが投票アルゴリズムを適用して最適な候補を選択できます。

<div id="scenario-implementation">
  ## シナリオの実装
</div>

<Note>
  このトピックで提供されるコードサンプルは、Windows 固有です。
</Note>

以下では、このシナリオで ABBYY FineReader Engine 12 を使用するための推奨される方法について詳しく説明します。この方法では、このシナリオに最も適していると考えられる処理設定を使用します。

<Accordion title="手順 1. ABBYY FineReader Engine の読み込み">
  ABBYY FineReader Engine を使用するには、まず [Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトを作成する必要があります。Engine オブジェクトは ABBYY FineReader Engine のオブジェクト階層における最上位のオブジェクトであり、各種グローバル設定、一部の処理メソッド、およびその他のオブジェクトを作成するためのメソッドを提供します。

  Engineオブジェクトを作成するには、[InitializeEngine](/ja/fine-reader/engine/api-reference/functions/initializeengine-function)関数を使用します。[Engineオブジェクトを読み込むその他の方法](/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/different-ways-to-load-engine) (Win) も参照してください。

  ### C\#

  ```csharp theme={null}
  public class EngineLoader : IDisposable
  {
      public EngineLoader()
      {
          // FREngine.dll へのフルパス、Customer Project ID、
          // および該当する場合はオンラインライセンストークンファイルへのパスとオンラインライセンスパスワードを各変数に設定してください
          string enginePath = "";
          string customerProjectId = "";
          string licensePath = "";
          string licensePassword = "";
          // FREngine.dll ライブラリを読み込む
          dllHandle = LoadLibraryEx(enginePath, IntPtr.Zero, LOAD_WITH_ALTERED_SEARCH_PATH);
             
          try
          {
              if (dllHandle == IntPtr.Zero)
              {
                  throw new Exception("読み込めません: " + enginePath);
              }
              IntPtr initializeEnginePtr = GetProcAddress(dllHandle, "InitializeEngine");
              if (initializeEnginePtr == IntPtr.Zero)
              {
                  throw new Exception("InitializeEngine 関数が見つかりません");
              }
              IntPtr deinitializeEnginePtr = GetProcAddress(dllHandle, "DeinitializeEngine");
              if (deinitializeEnginePtr == IntPtr.Zero)
              {
                  throw new Exception("DeinitializeEngine 関数が見つかりません");
              }
              IntPtr dllCanUnloadNowPtr = GetProcAddress(dllHandle, "DllCanUnloadNow");
              if (dllCanUnloadNowPtr == IntPtr.Zero)
              {
                  throw new Exception("DllCanUnloadNow 関数が見つかりません");
              }
              // ポインターをデリゲートに変換する
              initializeEngine = (InitializeEngine)Marshal.GetDelegateForFunctionPointer(
                  initializeEnginePtr, typeof(InitializeEngine));
              deinitializeEngine = (DeinitializeEngine)Marshal.GetDelegateForFunctionPointer(
                  deinitializeEnginePtr, typeof(DeinitializeEngine));
              dllCanUnloadNow = (DllCanUnloadNow)Marshal.GetDelegateForFunctionPointer(
                  dllCanUnloadNowPtr, typeof(DllCanUnloadNow));
              // InitializeEngine 関数を呼び出す
              // オンラインライセンスファイルへのパスとオンラインライセンスパスワードを渡す
              int hresult = initializeEngine(customerProjectId, licensePath, licensePassword, 
                  "", "", false, ref engine);
              Marshal.ThrowExceptionForHR(hresult);
          }
          catch (Exception)
          {
              // FREngine.dll ライブラリを解放する
              engine = null;
              // FreeLibrary 呼び出し前にすべてのオブジェクトを削除する
              GC.Collect();
              GC.WaitForPendingFinalizers();
              GC.Collect();
              FreeLibrary(dllHandle);
              dllHandle = IntPtr.Zero;
              initializeEngine = null;
              deinitializeEngine = null;
              dllCanUnloadNow = null;
              throw;
          }
      }
      // Kernel32.dll 関数
      [DllImport("kernel32.dll")]
      private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr reserved, uint flags);
      private const uint LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008;
      [DllImport("kernel32.dll")]
      private static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
      [DllImport("kernel32.dll")]
      private static extern bool FreeLibrary(IntPtr hModule);
      // FREngine.dll 関数
      [UnmanagedFunctionPointer(CallingConvention.StdCall, CharSet = CharSet.Unicode)]
      private delegate int InitializeEngine(string customerProjectId, string licensePath, 
          string licensePassword, string tempFolder, string dataFolder, bool isSharedCPUCoresMode, 
          ref FREngine.IEngine engine);
      [UnmanagedFunctionPointer(CallingConvention.StdCall)]
      private delegate int DeinitializeEngine();
      [UnmanagedFunctionPointer(CallingConvention.StdCall)]
      private delegate int DllCanUnloadNow();
      // プライベート変数
      private FREngine.IEngine engine = null;
      // FREngine.dll へのハンドル
      private IntPtr dllHandle = IntPtr.Zero;
      private InitializeEngine initializeEngine = null;
      private DeinitializeEngine deinitializeEngine = null;
      private DllCanUnloadNow dllCanUnloadNow = null;
  }
  ```

  ### C++ (COM)

  ```cpp theme={null}
  // これらの変数に、FREngine.dll へのパス、FineReader Engine の Customer Project ID、
  // および該当する場合は Online License トークンと Online License パスワードへのパスを設定してください
  wchar_t* FreDllPath;
  wchar_t* CustomerProjectId;
  wchar_t* LicensePath;  // Online License を使用しない場合は、これらの変数に空文字列を設定してください
  wchar_t* LicensePassword;
  // FREngine.dll のハンドル
  static HMODULE libraryHandle = 0;
  // グローバル FineReader Engine オブジェクト
  FREngine::IEnginePtr Engine;
  void LoadFREngine()
  {
      if( Engine != 0 ) {
      // 読み込み済み
      return;
      }
      // ステップ 1: FREngine.dll を読み込む
      if( libraryHandle == 0 ) {
          libraryHandle = LoadLibraryEx( FreDllPath, 0, LOAD_WITH_ALTERED_SEARCH_PATH );
          if( libraryHandle == 0 ) {
              throw L"ABBYY FineReader Engine の読み込み中にエラーが発生しました";
          }
      }
      // ステップ 2: Engine オブジェクトを取得する
      typedef HRESULT ( STDAPICALLTYPE* InitializeEngineFunc )( BSTR, BSTR, BSTR, BSTR, 
          BSTR, VARIANT_BOOL, FREngine::IEngine** );
      InitializeEngineFunc pInitializeEngine =
      ( InitializeEngineFunc )GetProcAddress( libraryHandle, "InitializeEngine" );
      if( pInitializeEngine == 0 || pInitializeEngine( CustomerProjectId, LicensePath, 
          LicensePassword, L"", L"", VARIANT_FALSE, &Engine ) != S_OK ) {
      UnloadFREngine();
      throw L"ABBYY FineReader Engine の読み込み中にエラーが発生しました";
      }
  }
  ```
</Accordion>

<Accordion title="ステップ 2. シナリオ用の設定を読み込む">
  最適な設定は、[Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトの [LoadPredefinedProfile](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/supplementary-methods/loadpredefinedprofile-method) メソッドを使用して選択できます。このメソッドは、入力パラメーターとしてプロファイル名を受け取ります。あらかじめ定義された FieldLevelRecognition プロファイルを使用すると、このシナリオに最適な設定を選択できます。プロファイルの詳細については、[Working with Profiles](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) を参照してください。

  ### C\#

  ```csharp theme={null}
  // 定義済みプロファイルを読み込む
  engine.LoadPredefinedProfile("FieldLevelRecognition");
  ```

  ### C++ (COM)

  ```cpp theme={null}
  // 定義済みプロファイルを読み込む
  Engine->LoadPredefinedProfile( L"FieldLevelRecognition" );
  ```

  処理に使用する設定を変更する場合は、対応する Parameter オブジェクトを使用してください。詳細については、以下の [Additional optimization](/ja/fine-reader/engine/guided-tour/basic-usage-scenarios-implementation/field-level-recognition#optimization) セクションを参照してください。
</Accordion>

<Accordion title="ステップ 3. 画像を読み込み、前処理する">
  ABBYY FineReader Engine には、複数ページのドキュメントを処理するための [FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトがあります。ドキュメントの画像を読み込んで前処理するには、FRDocument オブジェクトを作成し、そこに画像を追加する必要があります。方法は次のいずれかです。

  * Engine オブジェクトの [CreateFRDocumentFromImage](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createfrdocumentfromimage-method) メソッドを使用して FRDocument オブジェクトを作成します。このメソッドは FRDocument オブジェクトを作成し、指定したファイルから画像を読み込みます。
  * Engine オブジェクトの [CreateFRDocument](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods) メソッドを使用して FRDocument オブジェクトを作成し、その後、作成した FRDocument オブジェクトにファイルから画像を追加します (FRDocument オブジェクトの [AddImageFile](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefile-method)、[AddImageFileWithPassword](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpassword-method)、または [AddImageFileWithPasswordCallback](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpasswordcallback-method) メソッドを使用) 。

  ### C\#

  ```csharp theme={null}
  // 画像ファイルから FRDocument オブジェクトを作成する
  FREngine.IFRDocument frDocument = engine.CreateFRDocumentFromImage( "C:\\MyImage.tif", null );
  ```

  ### C++ (COM)

  ```cpp theme={null}
  // 画像ファイルを開いて FRDocument オブジェクトを作成する
  FREngine::IFRDocumentPtr frDocument = Engine->CreateFRDocumentFromImage( L"C:\\MyImage.tif", 0 );
  ```
</Accordion>

<Accordion title="ステップ 4. 認識するfieldの設定">
  ここでは、fieldを含むブロックを作成し、各ブロックについて種類と内部データの既知の特性を指定する必要があります。

  [Analyze](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method)メソッドを使用して文書のレイアウト解析を実行するか、認識するfieldを含むブロックを手動で追加します。手順については、[Working with Layout and Blocks](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-layout-and-blocks#adding_manually)を参照してください。

  各fieldには、認識用のパラメーターを個別に指定できます。たとえば、fieldにテキストが含まれている場合は、[ITextBlock::RecognizerParams](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock#recognizerparams)プロパティを使用します。

  * [RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams)objectのTextTypesプロパティを使用して、テキストの種類を設定します。たとえば、fieldに郵便番号形式で書かれた数字が含まれている場合は、TT\_Indexテキストタイプを使用します。
  * [SetPredefinedTextLanguage](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams/setpredefinedtextlanguage-method)メソッドを使用して言語を設定します。fieldに含まれる情報の種類がわかっている場合は、[special predefined languages](/ja/fine-reader/engine/specifications/special-predefined-languages) (Windows のみ) が役立つことがあります。たとえば、fieldに米国内の住所が含まれている場合は、English\_US\_Address定義済み言語を選択します。これにより、テキストをより確実に認識できるようになります。
  * 以下のステップ 6 で説明するように、認識結果をさらに検証するために認識候補を使用する必要がある場合は、[RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams)objectのSaveCharacterRecognitionVariantsプロパティとSaveWordRecognitionVariantsプロパティを設定します。この設定は、手書き文字または手書き風文字のテキストには使用できない点に注意してください。

  さまざまな種類のfieldの認識に関する詳細は、[チェックマークの認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-checkmarks)、[手書き文字の認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-handwritten-texts)、[Recognizing Barcodes](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-barcodes)、および[Recognizing Words with Spaces](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-words-with-spaces)の各セクションを参照してください。

  ### C\#

  ```csharp theme={null}
  // 文書のレイアウトを解析する
  frDocument.Analyze( null, null, null );
  // レイアウト内の最初のブロックに
  // 米国内の住所が含まれていることが
  // わかっていると仮定する
  FREngine.ITextBlock addressBlock = frDocument.Pages[0].Layout.Blocks[0].GetAsTextBlock();
  FREngine.IRecognizerParams paramsAddressBlock = addressBlock.RecognizerParams;
  paramsAddressBlock.SetPredefinedTextLanguage( "English_US_Address" );
  // 認識候補の収集を有効にする
  paramsAddressBlock.SaveCharacterRecognitionVariants = true;
  paramsAddressBlock.SaveWordRecognitionVariants = true;
  // 他のレイアウトブロックのプロパティも同様に設定する
  ...
  ```

  ### C++ (COM)

  ```cpp theme={null}
  // 文書のレイアウトを解析する
  frDocument->Analyze( 0, 0, 0 );
  // レイアウト内の最初のブロックに
  // 米国内の住所が含まれていることが
  // わかっていると仮定する
  FREngine::ILayoutBlocksPtr layoutBlocks = frDocument->Pages->Item( 0 )->Layout->Blocks;
  FREngine::IRecognizerParamsPtr paramsAddressBlock = layoutBlocks->Item( 0 )->GetAsTextBlock()->RecognizerParams;
  paramsAddressBlock->SetPredefinedTextLanguage( L"English_US_Address" );
  // 認識候補の収集を有効にする
  paramsAddressBlock->SaveCharacterRecognitionVariants = VARIANT_TRUE;
  paramsAddressBlock->SaveWordRecognitionVariants = VARIANT_TRUE;
  // 他のレイアウトブロックのプロパティも同様に設定する
  ...
  ```
</Accordion>

<Accordion title="ステップ 5. 認識">
  文書レイアウトはすでに解析され、さらにユーザーによって変更されているため、解析メソッドを再度呼び出さないでください。文書内のすべてのページに対して認識とページ合成を実行する [Recognize](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/recognize-method) メソッドを使用します。このシナリオでは、認識済み文書をエクスポートするのではなく fields からデータを抽出する必要があるため、文書合成は不要です。

  ### C\#

  ```csharp theme={null}
  // 文書を認識します
  // パラメーターは処理プロファイルで設定されているため、指定する必要はありません
  frDocument.Recognize( null, null );
  ```

  ### C++ (COM)

  ```cpp theme={null}
  // 文書を認識します
  // パラメーターは処理プロファイルで設定されているため、指定する必要はありません
  frDocument->Recognize( 0, 0 );
  ```
</Accordion>

<Accordion title="ステップ 6. 認識されたデータの操作">
  認識されたテキストフラグメントにアクセスするには、[Text](/ja/fine-reader/engine/api-reference/text-related-objects/text) オブジェクトを使用します (このオブジェクトは、テキストブロックに対して [ITextBlock::Text](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock#text) プロパティ経由で取得できます) 。フラグメント内の段落のコレクションを取得するには Paragraphs プロパティを使用し、個々の段落にアクセスするには [IParagraphs::Item](/ja/fine-reader/engine/api-reference/text-related-objects/paragraphs) メソッドを使用します。[IParagraph::Text](/ja/fine-reader/engine/api-reference/text-related-objects/paragraph#text) プロパティでは、段落の認識済みテキストにアクセスできます。

  段落内の単語のコレクションを取得するには [IParagraph::Words](/ja/fine-reader/engine/api-reference/text-related-objects/paragraph#words) を使用できます。コレクション内の個々の単語にアクセスするには [IWords::Item](/ja/fine-reader/engine/api-reference/text-related-objects/words) メソッドを使用します。[IWord::Text](/ja/fine-reader/engine/api-reference/text-related-objects/word) プロパティは、認識された単語を含む行を返します。単語の認識候補を取得するには、Word オブジェクトの [GetRecognitionVariants](/ja/fine-reader/engine/api-reference/text-related-objects/word/getrecognitionvariants-method) メソッド、または Paragraph オブジェクトの [GetWordRecognitionVariants](/ja/fine-reader/engine/api-reference/text-related-objects/paragraph/getwordrecognitionvariants-metho) メソッドを使用します。

  個々の文字の属性には、Paragraph オブジェクトの [GetCharParams](/ja/fine-reader/engine/api-reference/text-related-objects/paragraph/getcharparams-method) メソッドを介してアクセスできます。このメソッドでは、認識された文字のパラメーターを含む [CharParams](/ja/fine-reader/engine/api-reference/text-related-objects/charparams) オブジェクトにアクセスできます。文字の認識候補には、[ICharParams::CharacterRecognitionVariants](/ja/fine-reader/engine/api-reference/text-related-objects/charparams#characterrecognitionvariants) プロパティからアクセスできます。

  テキストの操作に関する詳細は、[Text の操作](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-text) を参照してください。投票アルゴリズムで Engine を使用する方法については、[Voting API の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/using-voting-api) を参照してください。

  FRDocument オブジェクトの使用が完了したら、このオブジェクトが使用していたすべてのリソースを解放してください。[IFRDocument::Close](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/close-method) メソッドを使用します。
</Accordion>

<Accordion title="ステップ 7. ABBYY FineReader Engine のアンロード">
  ABBYY FineReader Engine での作業が完了したら、[Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトをアンロードする必要があります。これを行うには、エクスポートされた [DeinitializeEngine](/ja/fine-reader/engine/api-reference/functions/deinitializeengine-function) 関数を使用します。

  ### C\#

  ```csharp theme={null}
  public class EngineLoader : IDisposable
  {
      // FineReader Engine をアンロードする
      public void Dispose()
      {
          if (engine == null)
          {
              // Engine はロードされていない
              return;
          }
          engine = null;
          // FreeLibrary を呼び出す前にすべてのオブジェクトを削除する
          GC.Collect();
          GC.WaitForPendingFinalizers();
          GC.Collect();
          int hresult = deinitializeEngine();
   
          hresult = dllCanUnloadNow();
          if (hresult == 0)
          {
              FreeLibrary(dllHandle);
          }
          dllHandle = IntPtr.Zero;
          initializeEngine = null;
          deinitializeEngine = null;
          dllCanUnloadNow = null;
          // クリーンアップの完了後に例外をスローする
          Marshal.ThrowExceptionForHR(hresult);
      }
      // Kernel32.dll の関数
      [DllImport("kernel32.dll")]
      private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr reserved, uint flags);
      private const uint LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008;
      [DllImport("kernel32.dll")]
      private static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
      [DllImport("kernel32.dll")]
      private static extern bool FreeLibrary(IntPtr hModule);
      // FREngine.dll の関数
      [UnmanagedFunctionPointer(CallingConvention.StdCall, CharSet = CharSet.Unicode)]
      private delegate int InitializeEngine( string customerProjectId, string LicensePath, string LicensePassword, , , , ref FREngine.IEngine engine);
      [UnmanagedFunctionPointer(CallingConvention.StdCall)]
      private delegate int DeinitializeEngine();
      [UnmanagedFunctionPointer(CallingConvention.StdCall)]
      private delegate int DllCanUnloadNow();
      // プライベート変数
      private FREngine.IEngine engine = null;
      // FREngine.dll へのハンドル
      private IntPtr dllHandle = IntPtr.Zero;
      private InitializeEngine initializeEngine = null;
      private DeinitializeEngine deinitializeEngine = null;
      private DllCanUnloadNow dllCanUnloadNow = null;
  }
  ```

  ### C++ (COM)

  ```cpp theme={null}
  void UnloadFREngine()
  {
   if( libraryHandle == 0 ) {
    return;
   }
   // Engine オブジェクトを解放する
   Engine = 0;
   // FineReader Engine を終了する
   typedef HRESULT ( STDAPICALLTYPE* DeinitializeEngineFunc )();
   DeinitializeEngineFunc pDeinitializeEngine =
    ( DeinitializeEngineFunc )GetProcAddress( libraryHandle, "DeinitializeEngine" );
   if( pDeinitializeEngine == 0 || pDeinitializeEngine() != S_OK ) {
    throw L"ABBYY FineReader Engine のアンロード中にエラーが発生しました";
   }
   // これで FREngine.dll ライブラリを安全に解放できる
   FreeLibrary( libraryHandle );
   libraryHandle = 0;
  }
  ```
</Accordion>

<div id="required-resources">
  ## 必要なリソース
</div>

[FREngineDistribution.csv](/ja/fine-reader/engine/distribution/distribution-windows/distribution-kit/working-with-the-frenginedistributioncsv-file) ファイルを使用すると、アプリケーションの動作に必要なファイルのリストを自動的に作成できます。このシナリオで処理を行うには、列 5 (RequiredByModule) で次の値を選択します。

Core

Core.Resources

Opening

Opening, Processing

Processing

Processing.OCR

Processing.OCR, Processing.ICR

Processing.OCR.NaturalLanguages

Processing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguages

標準シナリオを変更する場合は、それに応じて必要なモジュールも変更してください。また、インターフェイス言語、認識言語、およびアプリケーションで使用する追加機能も指定する必要があります (たとえば、PDF ファイルを開く必要がある場合は Opening.PDF、[CJK languages](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-cjk-languages#cjk) のテキストを認識する必要がある場合は Processing.OCR.CJK など) 。詳細については、[Working with the FREngineDistribution.csv File](/ja/fine-reader/engine/distribution/distribution-windows/distribution-kit/working-with-the-frenginedistributioncsv-file) を参照してください。

<div id="additional-optimization">
  ## 追加の最適化
</div>

以下は、各種処理段階のパラメーター設定に関する追加情報を参照できるヘルプファイルのセクションです。

* 認識
  * [言語の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-languages)<br />組み込みの認識言語やカスタム認識言語の使用方法。
  * [辞書の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-dictionaries)<br />認識精度を向上させるための辞書の使用方法。
  * [スペースを含む単語の認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-words-with-spaces)<br />スペースを含む単語 (New York など) を認識するための辞書の使用方法。
  * [手書き文字の認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-handwritten-texts)<br />ICR (Intelligent Character Recognition) の使用方法。
  * [チェックマークの認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-checkmarks)<br />チェックマークおよびチェックマークのグループの認識設定。
  * [ABBYY FineReader Engine の特殊な定義済み言語](/ja/fine-reader/engine/specifications/special-predefined-languages) - Windows<br />特殊な言語単位 (住所、日付と時刻、人名など) を含む認識言語の一覧です。これらの言語は field の認識に使用できます。
* 認識データの操作
  * [Text の操作](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-text)<br />認識されたテキスト、段落、単語、文字の操作。
  * [Voting API の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/using-voting-api)<br />単語および文字の認識候補の操作。

<div id="see-also">
  ## 関連項目
</div>

[基本的な使用シナリオの実装方法](/ja/fine-reader/engine/guided-tour/basic-usage-scenarios-implementation)
