Unstructured、Extract機能を発表:ドキュメントからの構造化データ抽出
Unstructuredは、ワークフローに新しいエンリッチメントノード「Extract」を追加しました。LLMまたは正規表現を使用してドキュメントから構造化JSONデータを抽出し、インテリジェントな文書処理を実現します。
Unstructuredは、文書処理パイプラインに新たなエンリッチメントノード「Extract」を追加したことを発表しました。通常、Unstructuredのワークフローは、パーティショナー(コンテンツをタイプ別の要素に分割)、エンリッチメント(コンテキストとメタデータを追加)、チャンカー(検索用のブロックを準備)、エンベッダー(検索用ベクトルを生成)といったノードで構成されています。これにより、データはRAG、エージェントAI、モデル微調整に活用しやすくなります。今回追加されたExtractノードは、宛先ノードの直前に配置され、ユーザーが定義したJSONスキーマに従ってドキュメントから構造化データを抽出します。
従来の検索用途とは異なり、多くのシナリオではベクトルストア用のチャンクではなく、データベース用のレコードが必要です。例えば、顧客注文フォームから顧客ID、明細、合計を抽出する、医療請求書から患者詳細と手続きコードを抽出する、不動産リスト、財務諸表、会議スケジュールなど、一貫したJSONレコードが求められます。Extractは、OpenAI Structured Outputs形式に準拠した抽出スキーマを使用して、出力構造を事前に定義できます。Unstructuredはビジュアルスキーマビルダーをワークフローエディター内に提供しており、JSONを手書きせずにフィールド、タイプ、説明を定義できます。
Extractノードは2つの抽出方法をサポートします。LLMベース抽出は、データの理解が必要なタスク(会議がAI関連かどうかの分類、非構造化メモからの患者記録抽出など)に適しています。正規表現ベース抽出は、請求書番号、日付、金額、メールアドレスなど、パターンが固定されたデータに高速に対応します。スキーマはビジュアルビルダーかJSONファイルのアップロードで定義できます。正規表現の場合は、フィールドごとにパターン名と正規表現を指定します。
ワークフロー実行時、Extractノードは新しいドキュメント要素タイプ「DocumentData」を出力します。この要素は結果の先頭に表示され、メタデータ内のextracted_dataフィールドに定義された構造にマッピングされたデータが格納されます。他のドキュメント要素は変更されないため、同じワークフローで検索用のチャンクとデータベース用の構造化レコードを同時に生成できます。
ExtractノードはUnstructuredのパーティショニングとエンリッチメント層の上に構築されており、複雑なレイアウト、スキャン文書、マルチカラムPDF、テーブル、画像、手書き文字を処理する既存の能力を継承しています。ユーザーは出力形状を定義するだけで、Unstructuredが読み取りを処理します。これにより、金融、医療、法務、運用部門などでのインテリジェント文書処理(IDP)が容易になります。従来は専用システムや多大な手作業が必要でしたが、追加インフラなしで既存ワークフローに統合できます。
ユーザーはワークフロービルダー内で直接抽出をテストできます。ローカルファイルをドロップし、Extractノードを含むフローを実行すると、元のドキュメントと構造化出力を並べて確認できます。結果に満足したら、ソースと宛先コネクターを接続してジョブとして実行できます。また、ExtractノードはUnstructured Python SDKとAPIを介してプログラムからも利用可能です。Extractノードは現在利用可能で、無料登録して自分の文書で試すことができます。