次の方法で共有


ドキュメント抽出コグニティブ スキル

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

ベクター検索とマルチモーダル検索の場合、ドキュメント抽出とテキスト分割スキルの組み合わせは、他のデータチャンクアプローチよりも手頃な価格です。 次のチュートリアルでは、さまざまなシナリオでのスキルの使用方法を示します。

このスキルは Azure AI サービスにバインドされておらず、Azure AI サービスの主要な要件はありません。

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

@odata.type

Microsoft.Skills.Util.DocumentExtractionSkill

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

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

スキルのパラメーター

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

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

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

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

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

OCR と画像分析の場合、generateNormalizedImagesの一部として正規化された画像の配列を作成するようにに設定します。 このアクションでは、 parsingModedefault に設定され、 dataToExtractcontentAndMetadataに設定されている必要があります。 正規化された画像とは、画像を視覚的な検索結果に含めるとき ( たとえば、JFK デモで見られるように、グラフ コントロールに同じサイズの写真)、一貫したレンダリングを促進するために、均一な画像出力を生成する追加の処理を指します。 この情報は、このオプションを使用すると各イメージに対して生成されます。

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

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

スキルの入力

入力名 説明
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 Storage 内のファイルにのみ適用されます。

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

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

スキルの出力

出力名 説明
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": []
      }
    }
  ]
}

こちらも参照ください