次の方法で共有


ドキュメント抽出の認知技術

ドキュメント抽出スキルは、エンリッチメント パイプライン内のファイルからコンテンツを抽出します。 既定では、コンテンツの抽出または取得はエンリッチメント パイプラインに組み込まれます。 ただし、Document Extraction スキルを使用すると、パラメーターの設定方法と、エンリッチメント ツリーでの抽出されたコンテンツの名前付け方法を制御できます。

ベクトル検索とマルチモダール検索の場合、Text Split スキルと Document Extraction を組み合わせると、その他のデータ チャンク アプローチよりも良心的な価格となります。 次のチュートリアルでは、さまざまなシナリオでのスキルの使用方法を紹介します。

Note

このスキルは Foundry Tools にバインドされておらず、Foundry Tools の主要要件はありません。

このスキルは、テキストと画像を抽出します。 テキストの抽出は無料です。 画像抽出は、Azure AI Search で課金対象となります。 無料の検索サービスでは、1 日あたりインデクサーごとに 20 トランザクションのコストが吸収されるため、クイックスタート、チュートリアル、小規模なプロジェクトを無料で完了できます。 Basic 以上のレベルの場合、画像抽出は課金対象です。

@odata.type

Microsoft.Skills.Util.DocumentExtractionSkill

サポートされるドキュメントの形式

DocumentExtractionSkill を使用すると、次の形式のドキュメントからテキストを抽出できます。

スキルのパラメーター

パラメーターの大文字と小文字は区別されます。

Inputs 使用できる値 Description
parsingMode default
text
json
テキストだけ、または JSON だけではないファイルからドキュメントを抽出する場合は、default に設定します。 マークアップを含むソース ファイル (PDF、HTML、RTF、Microsoft Office ファイルなど) の場合は、この既定値を使用して、マークアップ言語とタグを除いたテキストだけを抽出します。 parsingMode が明示的に定義されていない場合は、default に設定されます。

ソース ファイルが TXT の場合は、text に設定します。 この解析モードにすると、プレーンテキスト ファイルのパフォーマンスが向上します。 ファイルにマークアップが含まれる場合、このモードでは最終的な出力にタグが保持されます。

JSON ファイルから構造化コンテンツを抽出するには、json に設定します。
dataToExtract contentAndMetadata
allMetadata
各ファイルからすべてのメタデータとテキスト コンテンツを抽出するには、contentAndMetadata に設定します。 dataToExtract が明示的に定義されていない場合は、contentAndMetadata に設定されます。

コンテンツの種類のメタデータ プロパティ (たとえば、.png ファイルだけに固有のメタデータ) のみを抽出するには、allMetadata に設定します。
configuration 以下を参照してください。 ドキュメント抽出の実行方法を調整する省略可能なパラメーターのディクショナリ。 サポートされている構成プロパティの説明については、以下の表を参照してください。
構成パラメーター 使用できる値 Description
imageAction none
generateNormalizedImages
generateNormalizedImagePerPage
埋め込み画像や画像ファイルをデータ セットで無視する場合、またはソース データが画像ファイルに含まれていない場合は、none に設定します。? これが既定値です。

OCR と画像分析の場合、ドキュメント解析の一部として正規化された画像の配列をスキルで作成するには、generateNormalizedImages に設定に します。 このアクションを実行するには、parsingModedefault に設定し、dataToExtractcontentAndMetadata に設定する必要があります。 正規化された画像とは、画像のサイズや回転を統一し、視覚的検索結果 (たとえば、JFK デモで見られるような、グラフ制御内の同じサイズの写真) に画像を含めた際の一貫した表示を促進するための追加処理を指します。 このオプションを使用すると、各画像に対してこの情報が生成されます。

generateNormalizedImagePerPage に設定した場合、PDF ファイルの処理は異なり、埋め込み画像を抽出するのではなく、各ページが画像としてレンダリングされ、それに応じて正規化されます。 PDF 以外の各種ファイルは、generateNormalizedImages が設定されている場合と同じように処理されます。
normalizedImageMaxWidth 50 - 10000 の範囲の整数 生成された正規化画像の最大幅 (ピクセル単位)。 既定値は 2000 です。
normalizedImageMaxHeight 50 - 10000 の範囲の整数 生成された正規化画像の最大の高さ (ピクセル単位)。 既定値は 2000 です。

Note

正規化された画像の最大幅と最大高さの既定値 (2000 ピクセル) は、 OCR スキル画像分析スキルでサポートされる最大サイズに基づいています。 OCR のスキルでは、英語以外の言語の場合は最大の幅と高さ 4200、英語の場合は 10000 がサポートされます。 上限を引き上げると、スキルセットの定義とドキュメントの言語によっては、大きな画像で処理が失敗する可能性があります。

スキルの入力

入力名 Description
file_data コンテンツを抽出する必要があるファイル。

"file_data" の入力では、次のように定義されたオブジェクトを指定する必要があります。

{
  "$type": "file",
  "data": "BASE64 encoded string of the file"
}

または、次のように定義できます。

{
  "$type": "file",
  "url": "URL to download file",
  "sasToken": "OPTIONAL: SAS token for authentication if the URL provided is for a file in blob storage"
}

ファイル参照オブジェクトは、次の 3 つの方法のいずれかで生成できます。

  • インデクサーの定義で allowSkillsetToReadFileData パラメーターを "true" に設定します。 これにより、BLOB データ ソースからダウンロードされた元のファイル データを表すオブジェクトであるパス /document/file_data が作成されます。 このパラメーターは、BLOB ストレージのファイルにのみ適用されます。

  • インデクサーの定義で imageAction パラメーターを none 以外の値に設定します。 このようにすると、画像の配列が作成されます。これは、個別に渡した場合にこのスキルへの入力に必要な規則に従います (つまり /document/normalized_images/*)。

  • カスタム スキルで、上記のように EXACTLY と定義された JSON オブジェクトが返されるようにします。 $type パラメーターは file に正確に設定する必要があります。data パラメーターは、ファイル コンテンツの base 64 でエンコードされたバイト配列データである必要があります。または、url パラメーターは、その場所でファイルをダウンロードするアクセス権を持つ正しい形式の URL である必要があります。

スキルの出力

出力名 Description
content ドキュメントのテキスト コンテンツ。
normalized_images imageActionnone 以外の値に設定すると、新しい normalized_images フィールドに画像の配列が格納されます。 出力形式の詳細については、画像からのテキストと情報の抽出に関する記事を参照してください。

定義例

 {
    "@odata.type": "#Microsoft.Skills.Util.DocumentExtractionSkill",
    "parsingMode": "default",
    "dataToExtract": "contentAndMetadata",
    "configuration": {
        "imageAction": "generateNormalizedImages",
        "normalizedImageMaxWidth": 2000,
        "normalizedImageMaxHeight": 2000
    },
    "context": "/document",
    "inputs": [
      {
        "name": "file_data",
        "source": "/document/file_data"
      }
    ],
    "outputs": [
      {
        "name": "content",
        "targetName": "extracted_content"
      },
      {
        "name": "normalized_images",
        "targetName": "extracted_normalized_images"
      }
    ]
  }

サンプル入力

{
  "values": [
    {
      "recordId": "1",
      "data":
      {
        "file_data": {
          "$type": "file",
          "data": "aGVsbG8="
        }
      }
    }
  ]
}

サンプル出力

{
  "values": [
    {
      "recordId": "1",
      "data": {
        "content": "hello",
        "normalized_images": []
      }
    }
  ]
}

こちらも参照ください