檔擷取認知技能

檔擷 技能會從擴充管線內的檔案擷取內容。 這可讓您利用通常發生在技能集執行前的檔擷取步驟,以及可能由其他技能產生的檔案。

注意

此技能不會系結至 Azure AI 服務,而且沒有 Azure AI 服務的主要需求。 此技能會擷取文字和影像。 文字擷取是免費的。 影像擷取是由 Azure AI 搜尋所計量。 在免費的搜尋服務中,會吸收每天 20 筆交易的成本,讓您可以免費完成快速入門、教學課程和小型專案。 針對基本、標準及更新版本,影像擷取是可計費的。

@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
  • PDF
  • 純文字檔案(另 請參閱編制純文字索引)
  • RTF
  • XML
  • ZIP

技能參數

參數會區分大小寫。

輸入 允許的值 描述
parsingMode default
text
json
針對不是純文字或 json 的檔案檔案擷取,設定為 default 。 對於包含標記的原始程式檔(例如 PDF、HTML、RTF 和 Microsoft Office 檔案),請使用預設值只擷取文字,減去任何標記語言或標記。 如果未 parsingMode 明確定義,則會將它設定為 default

text如果原始程式檔是 TXT,則設定為 。 此剖析模式可改善純文本檔案的效能。 如果檔案包含標記,此模式會在最終輸出中保留標記。

設定為 json 以從 json 檔案擷取結構化內容。
dataToExtract contentAndMetadata
allMetadata
設定為 contentAndMetadata ,從每個檔案擷取所有元數據和文字內容。 如果未 dataToExtract 明確定義,則會將它設定為 contentAndMetadata

設定為 allMetadata ,只 擷取內容類型 的元數據屬性(例如,只有 .png 檔案的唯一元數據)。
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。

注意

標準化影像最大寬度和高度的預設值為 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"
}

檔案參考物件可以產生三種方式之一:

  • allowSkillsetToReadFileData 索引器定義上的 參數設定為 「true」。 這會建立一個路徑,此路徑 /document/file_data 代表從 Blob 數據源下載的源文件數據。 此參數僅適用於 Blob 記憶體中的檔案。

  • imageAction 索引器定義上的 參數設定為 以外的 none值。 這會建立影像陣列,如果個別傳遞,則會遵循輸入此技能所需的慣例(也就是 /document/normalized_images/*)。

  • 擁有自定義技能會傳回定義完全如上所示的 json 物件。 $type參數必須完全file設定為 ,而且data參數必須是檔案內容的基底 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": []
      }
    }
  ]
}

另請參閱