コンテンツにスキップ
getnextpdf.com

Enterprise エディション

インテリジェンス

NextPDF Enterprise Intelligence は、生のキーと値および表データを、型付けされ、必要に応じてスキーマ検証済みの構造へと変換し、スキャンページに対して OCR バックエンドを駆動することで検索可能な PDF の生成をオーケストレーションします。生成する構造を記述するものであり、OCR の精度や抽出の再現率を主張するものではありません。

この機能は NextPDF Enterprisenextpdf/enterprise)に含まれ、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントでは、この機能のクラスはロードされません。有効な Enterprise エンタイトルメントを持たないデプロイメントでは、これらのクラスはロードされません。エディションを比較してライセンスを取得する

Terminal window
composer require nextpdf/enterprise:^3

構造化エクストラクターは、上流のアクセラレーターまたはヒューリスティックパーサーによって生成された生のキーと値のペアを受け取り、型付けされたペアオブジェクトを出力します。スキーマが指定されている場合は、キーがスキーマフィールドに一致するペアのみを保持し、どの必須フィールドが欠落しているかを報告します。明示的な信頼度を持たないペアには、固定のデフォルト値が割り当てられます。これは、すでに抽出済みのデータに対する型付けと検証のステップであり、それ自体は抽出エンジンや認識エンジンではなく、計算された精度を割り当てることもありません。

表エクストラクターは、生の行グリッドを受け取り、セルごとのオブジェクトと、正規化されたページ領域を分割して得られる合成された均一なバウンディングボックスを持つ、構造化された表結果を構築します。短い行はパディングされ、すべての行が最も広い列数を持つようにします。行も列もない表はスキップされます。バウンディングボックスは均一なグリッドの合成であり、計測されたレイアウトではありません。

検索可能オーバーレイオーケストレーターは、スキャンされた、または混在した PDF を受け取り、使用可能なテキストレイヤーを持たないページを検出し、構成済みの OCR バックエンドを駆動して、ページごとの単語数と平均信頼度を記述する結果を生成します。不可視テキストが、検索可能なスキャンページを実現する仕組みです。テキスト描画オペレーターは、テキストが塗りつぶしもストロークもされないようにテキストレンダリングモードが設定された状態で、グリフを配置できます — ISO 32000-2:2020 §9.3.3 — そして、テキスト描画オペレーターはコンテンツストリームにグリフを配置します — ISO 32000-2:2020 §9.4。ソースがタグ付きの場合、論理構造階層はコンテンツを読み上げ順序にマップし — ISO 32000-2:2020 §14.7、タグ付き構造はコンテンツの再利用をサポートし — ISO 32000-2:2020 §14.8、表構造要素は行とセルを記述します — ISO 32000-2:2020 §14.8。

実際のラスタライズと不可視テキストの注入は、別のサイドカープロセスによって実行されます。PHP サーフェスはワークフローをオーケストレーションし、結果メタデータを生成します。オーバーレイ実行の出力は派生ドキュメントです。既存の署名はすべて無効になり、コンプライアンスステータスは再検証が必要になります。信頼度の値はパススルーまたは固定のデフォルト値であり、保証された精度の数値ではありません。

このサーフェスは、構造化と認識の間に明確な境界線を引きます。型付けとスキーマ検証は、決定論的で軽量であるため、インプロセスで実行されます。認識 — ラスタライズと不可視テキストの注入 — は、負荷が高く、バックエンド固有であり、PHP の信頼境界の外に置くのが最適であるため、注入された OCR バックエンドと別のサイドカーに委譲されます。この分割により、デプロイメントは呼び出しコードを変更することなく、ドキュメント画像と認識されたテキストをどこで計算し保存するかを選択できます。またこのモジュールは、精度の数値をでっち上げることを拒否します。ラベルのないペアには固定のデフォルト値が割り当てられ、報告される信頼度は計算されるのではなくパススルーされます。呼び出し元に捏造された精度の数値が渡されることは決してありません。

設計の背景:推測を拒否する API

種別役割安定性導入バージョン
StructuredExtractorclass生のキーと値のペアを型付け。スキーマフィルターと必須フィールドチェックstable2.2.0
ExtractionSchema / SchemaFieldclassesフィールド定義と必須フィールドセットstable2.2.0
KeyValuePairclass信頼度を持つ、型付けされた 1 つのキーと値のペアstable2.2.0
TableExtractorclass生の行グリッドから構造化された表を構築stable2.2.0
TableResult / TableCellclassesセルごとのテキスト、信頼度、バウンディングボックスを持つ表の形状stable2.2.0
SearchableOverlayclassOCR を用いた検索可能 PDF 生成をオーケストレーションstable2.2.0
OverlayConfig / OverlayQualityclasses言語ヒント、DPI、品質プリセット、ネイティブページのスキップstable2.2.0
SearchableOverlayResult / PageOverlayInfoclassesページごとの単語数と平均信頼度stable2.2.0
ExtractionConfig / ExtractionStrategyclassesヒューリスティック対 OCR 支援のストラテジーと OCR ヒントstable2.2.0

OCR バックエンドは注入されるコントラクトです。オーケストレーターは OCR モデルを埋め込みません。デプロイメントがバックエンドを供給し、OCR をどこで計算するかについて責任を負います。

Type and schema-validate raw key-value pairs
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Intelligence\StructuredExtractor;
use NextPDF\Enterprise\Intelligence\ExtractionSchema;
/**
* Type raw pairs against a schema and list any missing required fields.
*
* @param list<array{key: string, value: string, confidence?: float}> $rawPairs Upstream key-value data.
*
* @return list<string> Missing required field names (empty when compliant).
*/
function validate(array $rawPairs, ExtractionSchema $schema): array
{
$extractor = new StructuredExtractor();
$pairs = $extractor->extract($rawPairs, $schema);
return $extractor->validateSchema($schema, $pairs);
}

エクストラクターは、上流のステップがすでに生成したデータを型付けしてフィルタリングします。それ自体は認識を一切行いません。

Searchable-overlay orchestration with safe logging
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Accelerator\OcrStrategyInterface;
use NextPDF\Enterprise\Intelligence\OverlayConfig;
use NextPDF\Enterprise\Intelligence\SearchableOverlay;
use Psr\Log\LoggerInterface;
final readonly class OverlayJob
{
public function __construct(
private OcrStrategyInterface $ocr,
private LoggerInterface $logger,
) {}
/**
* Generate a searchable PDF from a scanned input.
*
* @param string $pdfData Scanned or mixed PDF bytes.
*
* @return string The derived searchable PDF bytes.
*/
public function run(string $pdfData): string
{
try {
$result = (new SearchableOverlay($this->ocr))
->generate($pdfData, new OverlayConfig(language: 'eng'));
$this->logger->info('Overlay complete', [
'pages' => $result->pageCount,
'words' => $result->wordCount,
]);
return $result->pdfData;
} catch (\Throwable $e) {
$this->logger->error('Overlay failed', ['error' => $e->getMessage()]);
throw $e;
}
}
}

ログにはページ数と単語数のみが記録されます。認識されたテキストやドキュメントのバイトは記録されません。catch は再スローします。失敗を握りつぶすことはありません。

  • 構造化エクストラクターと表エクストラクターは、すでに抽出済みのデータを消費します。PDF を解析したり、モデルを実行したり、精度を計測したりはしません。信頼度はパススルーまたは固定のデフォルト値です。
  • 合成された表のバウンディングボックスは均一なグリッドの分割であり、計測されたレイアウトではありません。真のジオメトリを必要とする呼び出し元は、それを他の手段で取得する必要があります。
  • 検索可能オーバーレイは派生ドキュメントです。既存のデジタル署名はすべて無効になります。オーバーレイ後はコンプライアンスステータスを再検証する必要があります。
  • OCR バックエンドが利用できない場合、影響を受けるページは、実行全体を黙って失敗させるのではなく、単語数ゼロを計上します。ページごとの結果を確認してください。
  • 使用可能なネイティブテキストレイヤーをすでに持つページは、デフォルトでスキップされます。再度 OCR を行う必要がある場合は、構成でスキップを無効にしてください。
  • OCR の精度は、供給されるバックエンド、入力品質、言語ヒントに完全に依存します。NextPDF は、認識精度や抽出の再現率を主張しません。

構造化抽出と表抽出は、入力サイズに対して線形です。検索可能オーバーレイのコストは、OCR バックエンドと、構成された DPI でのサイドカーのラスタライズによって支配されます。オーケストレーションのオーバーヘッドは小さいものです。ページとサイズの入力は範囲が制限され、オーバーフロー時にはフェイルクローズします。再現性プロファイルは structural です。抽出は固定された入力に対して決定論的ですが、オーバーレイの出力は OCR バックエンドに依存し、バックエンドやバージョンによって異なる場合があります。

エクストラクターは読み取り専用の構造化ステップです。オーバーレイサーフェスは派生ドキュメントを生成し、入力サイズとページ数を制限して、オーバーフロー時にフェイルクローズします。OCR バックエンドは統合ポイントであり、信頼境界の一部ではありません。デプロイメントがそれを選択して運用します。このモジュールでは暗号操作は発生しないため、FIPS の主張は行いません。

構造化抽出と表抽出は、ホスト上でインプロセスで実行されます。検索可能オーバーレイのオーケストレーションは、注入された OCR バックエンドを駆動します。そのバックエンドがどこで実行されるか(インプロセス、ローカルサイドカー、リモートサービス)、したがってドキュメント画像と認識されたテキストがどこで計算され保存されるかは、ライブラリの境界の外にあるデプロイメントの責任です。入力に個人データが含まれている場合、認識されたテキストレイヤーにも含まれます。派生ドキュメントはそれに応じて扱ってください。

ライブラリは構造的なメッセージを持つ型付き例外を発生させ、ドキュメントのバイトや認識されたテキストを例外テキストに含めることはありません。このサーフェスの周囲でログを記録するデプロイメントは、本番サンプルに示すように、カウントと構成をログに記録すべきであり、生の PDF ペイロードや認識されたテキストをログや APM バックエンドに記録してはなりません。

このモジュールでは暗号操作は発生しないため、FIPS モード固有の挙動はありません。

主張標準条項
テキストレンダリングモードは、グリフが塗りつぶされるか、ストロークされるか、いずれでもないかを制御します(不可視 OCR テキストの基礎)。ISO 32000-2:2020§9.3.3
テキスト描画オペレーターは、コンテンツストリームにグリフを配置します。ISO 32000-2:2020§9.4
論理構造階層は、コンテンツを読み上げ順序にマップします。ISO 32000-2:2020§14.7
タグ付き構造は、コンテンツの再利用をサポートします。ISO 32000-2:2020§14.8
表構造要素は、行とセルを記述します。ISO 32000-2:2020§14.8
構造ツリーは、コンテンツを読み上げ順序にマップします。ISO 32000-2:2020§14.7

すべての条項はパラフレーズです。NextPDF は規範的なテキストを複製しません。正規の文言については、公開された標準を参照してください。NextPDF は OCR 精度や抽出の再現率に関する主張を行いません。このページは、生成される構造とオーケストレーションの境界を記載するものであり、品質保証ではありません。

  • 構造化エクストラクターと表エクストラクターは、すでに抽出済みのデータを消費します。PDF を解析したり、モデルを実行したり、精度を計測したりはしません。信頼度はパススルーまたは固定のデフォルト値です。
  • スキーマフィルターは、キーがスキーマフィールドに一致するペアのみを保持し、欠落している必須フィールドを報告します。合成された表のバウンディングボックスは均一なグリッドの分割であり、計測されたレイアウトではありません。
  • 検索可能オーバーレイは派生ドキュメントです。既存のデジタル署名はすべて無効になり、コンプライアンスステータスは再検証が必要です。
  • OCR バックエンドが利用できない場合、影響を受けるページは、実行全体を黙って失敗させるのではなく、単語数ゼロを計上します。使用可能なネイティブテキストレイヤーを持つページは、デフォルトでスキップされます。
  • ページとサイズの入力は範囲が制限され、オーバーフロー時にはフェイルクローズします。抽出は固定された入力に対して決定論的です。オーバーレイの出力は、供給される OCR バックエンドに依存します。

このページは、外部から観測可能な挙動と、サポートされているパブリック API サーフェスのみを記載します。内部の名前空間パス、ヘルパークラス、メカニズムの表、ランブックのファイル名、チケットプレフィックスは対象外です。

NextPDF Core (Apache-2.0) には、検索可能オーバーレイのオーケストレーションも、スキーマ検証済みの構造化サーフェスもありません。一切ありません。この機能には Core ティア相当のものが存在しません。Core の AST モデルは解析済みドキュメントの基盤であり、抽出や OCR のサーフェスではありません。

NextPDF Pro は、すでに解析済みのドキュメントに対する構造的な AST 駆動の抽出を提供します。スキーマ検証済みのキーと値の構造化、生のグリッドからの表の再構築、OCR を用いた検索可能オーバーレイのオーケストレーションは提供しません。それらは nextpdf/enterprise パッケージにのみ含まれます。

構造化エクストラクター・表エクストラクターとオーバーレイオーケストレーターは、挙動レベルで説明しています。実際のラスタライズと不可視テキストの注入は別のサイドカープロセスで実行されます。サイドカーの内部、OCR モデル、内部のオーケストレーションの詳細は、パブリックサーフェスの範囲外です。OCR バックエンドは、デプロイメントが供給する注入されたコントラクトです。

デプロイメントが OCR バックエンドを供給して運用し、OCR をどこで計算するか(インプロセス、ローカルサイドカー、リモートサービス)、したがってドキュメント画像と認識されたテキストがどこで計算され保存されるかを選択します。NextPDF Enterprise はワークフローをオーケストレーションし、結果メタデータを生成します。OCR モデルを埋め込んだり、認識精度や抽出の再現率を保証したりはしません。

Intelligence サーフェスには輸出管理上の制限は適用されません。ライブラリは、OCR 精度や抽出の再現率の保証、規制上のコンプライアンスステータスを一切主張しません。このドキュメントは法的見解ではありません。ご自身のコンプライアンスおよび法務の助言者にご相談ください。