ドキュメント抽出の認知技術
ドキュメント抽出スキルでは、エンリッチメント パイプライン内のファイルからコンテンツが抽出されます。 これにより、通常であれば他のスキルによって生成される可能性のあるファイルでのスキルセット実行の前に発生する、ドキュメント抽出ステップを利用できます。
Note
このスキルは Azure AI サービスにバインドされておらず、Azure AI サービス キーの要件はありません。 このスキルは、テキストと画像を抽出します。 テキスト抽出は無料です。 画像抽出は、Azure AI Search による課金対象となります。 無料の検索サービスでは、1 日あたりインデクサーごとに 20 トランザクションのコストが吸収されるため、クイックスタート、チュートリアル、小規模なプロジェクトを無料で完了できます。 Basic、Standard、およびそれ以上の場合、画像抽出は課金対象となります。
@odata.type
Microsoft.Skills.Util.DocumentExtractionSkill
サポートされるドキュメントの形式
DocumentExtractionSkill を使用すると、次の形式のドキュメントからテキストを抽出できます。
- CSV (CSV BLOB のインデックス作成に関する記事を参照)
- EML
- EPUB
- GZ
- HTML
- JSON (JSON BLOB のインデックス作成に関する記事を参照)
- KML (地理的表現の XML)
- Microsoft Office 形式: DOCX/DOC/DOCM、XLSX/XLS/XLSM、PPTX/PPT/PPTM、MSG (Outlook 電子メール)、XML (2003 と 2006 両方の WORD XML)
- オープン ドキュメント形式: ODT、ODS、ODP
- プレーンテキスト ファイル (「プレーン テキストのインデックス作成」も参照)
- RTF
- XML
- 郵便番号
スキルのパラメーター
パラメーターの大文字と小文字は区別されます。
入力 | 使用できる値 | 説明 |
---|---|---|
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 |
後の説明をご覧ください。 | ドキュメント抽出の実行方法を調整する省略可能なパラメーターのディクショナリ。 サポートされている構成プロパティの説明については、以下の表を参照してください。 |
構成パラメーター | 使用できる値 | 説明 |
---|---|---|
imageAction |
none generateNormalizedImages generateNormalizedImagePerPage |
データ セット内の埋め込み画像または画像ファイルを無視する場合、またはソース データに画像ファイルが含まれていない場合は、none に設定します。 これが既定です。 OCR と画像分析の場合、ドキュメント解析の一部として正規化された画像の配列をスキルで作成するには、generateNormalizedImages に設定に します。 このアクションを実行するには、parsingMode を default に設定し、dataToExtract を contentAndMetadata に設定する必要があります。 正規化された画像は、一様な画像出力をもたらす追加処理を参照します。画像出力は、ビジュアル検索の結果に画像を含めるときに一貫性のあるレンダリングを促進するために、サイズと回転を調整されます (たとえば、JFK のデモで見られるような、グラフ コントロール内の同一サイズの写真)。 このオプションを使用すると、各画像に対してこの情報が生成されます。 generateNormalizedImagePerPage に設定した場合は、PDF ファイルの処理が異なり、埋め込み画像が抽出されるのではなく、各ページが画像としてレンダリングされ、それに応じて正規化されます。 PDF 以外のファイルの種類は、generateNormalizedImages が設定されている場合と同じように処理されます。 |
normalizedImageMaxWidth |
50 - 10000 の範囲の整数 | 生成された正規化画像の最大幅 (ピクセル単位)。 既定値は 2000 です。 |
normalizedImageMaxHeight |
50 - 10000 の範囲の整数 | 生成された正規化画像の最大の高さ (ピクセル単位)。 既定値は 2000 です。 |
Note
正規化された画像の最大幅と最大高さの既定値 (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 ストレージのファイルにのみ適用されます。インデクサーの定義で
imageAction
パラメーターをnone
以外の値に設定します。 このようにすると、画像の配列が作成されます。これは、個別に渡した場合にこのスキルへの入力に必要な規則に従います (つまり/document/normalized_images/*
)。カスタム スキルで、上記のように EXACTLY と定義された JSON オブジェクトが返されるようにします。
$type
パラメーターはfile
に正確に設定する必要があります。data
パラメーターは、ファイル コンテンツの base 64 でエンコードされたバイト配列データである必要があります。または、url
パラメーターは、その場所でファイルをダウンロードするアクセス権を持つ正しい形式の URL である必要があります。
スキルの出力
出力名 | 説明 |
---|---|
content |
ドキュメントのテキスト コンテンツ。 |
normalized_images |
imageAction を none 以外の値に設定すると、新しい 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": []
}
}
]
}