ドキュメント スプリッターの動作

スプリッタ プロセッサの出力には、信頼スコアなど、入力ドキュメントの分割情報が含まれます。Document AI API は Document JSON オブジェクトを出力し、出力形式では entities フィールドを使用してドキュメントの分割を表します。追加情報は、スプリッタの特定のタイプによって異なります。

  • Entity.type は、ドキュメントの分類を指定します。識別できるドキュメント タイプの完全なリストについては、次のリストをご覧ください。

  • Entity.pageAnchor.pageRefs[] は、各サブドキュメントを含むページを指定します。pageRefs[].page は 0 ベースで、document.pages[] フィールドのインデックスです。

生成 AI を使用するスプリッター バージョンは、500 ページを超える論理ドキュメントを分割するようには設計されていません。500 ページを超える論理ドキュメントは、手動で 2 つ以上のドキュメントに分割し、分割ツールを個別に実行して分類できます。

スプリッタはページの境界を識別しますが、入力ドキュメントを実際に分割することはありません。Document AI Toolbox SDK には、スプリッタ プロセッサの出力に基づいて入力ドキュメントを分割できるユーティリティ関数が用意されています。

識別されたドキュメント タイプ

[1] このフォームに対応するパーサーが、このドキュメント タイプをサポートしていません。つまり、スプリッタはこのタイプのドキュメントを識別して分類できますが、Document AI には情報を抽出するパーサーが用意されていません。

出力例

プロセッサ 出力例

コードサンプル

スプリッタはページ境界を特定しますが、入力ドキュメントを実際に分割することはありません。Document AI Toolbox を使用して、ページ境界を使用して PDF ファイルを物理的に分割できます。次のコードサンプルは、PDF を分割せずにページ範囲を印刷します。

Java

詳細については、Document AI Java API リファレンス ドキュメントをご覧ください。

Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


import com.google.cloud.documentai.v1beta3.Document;
import com.google.cloud.documentai.v1beta3.DocumentProcessorServiceClient;
import com.google.cloud.documentai.v1beta3.DocumentProcessorServiceSettings;
import com.google.cloud.documentai.v1beta3.ProcessRequest;
import com.google.cloud.documentai.v1beta3.ProcessResponse;
import com.google.cloud.documentai.v1beta3.RawDocument;
import com.google.protobuf.ByteString;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;

public class ProcessSplitterDocument {
  public static void processSplitterDocument()
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String location = "your-project-location"; // Format is "us" or "eu".
    String processerId = "your-processor-id";
    String filePath = "path/to/input/file.pdf";
    processSplitterDocument(projectId, location, processerId, filePath);
  }

  public static void processSplitterDocument(
      String projectId, String location, String processorId