什麼是文件智慧版面模型?

本內容適用於:🟩v4.0(通用版) | 先前版本:🟦v3.1(通用版)🟥v3.0(退役)🟥V2.1(退役)

Azure 文件智慧在 Foundry 工具中的佈局模型是一個基於機器學習的進階文件分析 API。 該模型可在文件智慧雲端中取得。 你可以用它來接收各種格式的文件,並回傳文件的結構化資料表示。 該模型結合了強大的 光學字元辨識(OCR) 強化版與深度學習模型,以擷取文字、表格、選取標記及文件結構。

文件結構佈局分析

文件結構佈局分析是分析文件以提取感興趣區域及其相互關係的過程。 目標是從頁面中提取文字與結構元素,以建立更佳的語意理解模型。 文件版面中有兩種角色:

  • 幾何角色:文字、表格、圖形與選取標記是幾何角色的例子。
  • 邏輯角色:標題、標題與頁腳是文本邏輯角色的例子。

以下圖示展示了範例頁面圖片中的典型元件。

展示文件版面範例的插圖。

開發選項

文件智慧 v4.0:2024-11-30(通用版)支援以下工具、應用程式與函式庫。

特色 資源 型號識別碼
佈局模型 • 文件智慧工作室
• REST API
• C# SDK
• Python SDK
• Java SDK
• JavaScript SDK
prebuilt-layout

支援語言

欲了解完整支援語言清單,請參見 語言支援:文件分析模型。

支援的檔案類型

文件智慧 v4.0:2024-11-30(GA)版面模型支援以下檔案格式:

模型 PDF 圖片來源:
JPEG/JPG、PNG、BMP、TIFF、HEIF
Office:
Word(DOCX)、Excel(XLS)、PowerPoint(PPTX)、HTML
版面配置 ✔ ✔ ✔

輸入需求

  • 照片與掃描:為取得最佳效果,請每份文件提供一張清晰照片或高品質掃描。
  • PDF 與 TIFF:PDF 與 TIFF 最多可處理 2,000 頁。 (免費訂閱則只會處理前兩頁。)
  • 密碼鎖定:如果您的 PDF 有密碼鎖定,提交前必須解除鎖定。
  • 檔案大小:用於分析文件的檔案大小為付費(S0)等級為 500 MB,免費(F0)等級為 4 MB。
  • 影像尺寸:影像尺寸必須介於 50 像素 x 50 像素到 10,000 像素 x 10,000 像素之間。
  • 文字高度:1024 x 768 像素的影像中,需擷取的最小文字高度為 12 像素。 這個尺寸相當於約 8 點字,每英吋 150 點。
  • 自訂模型訓練:自訂範本模型的最大訓練頁面數為 500 頁,自訂神經模型為 50,000 頁。
  • 自訂擷取模型訓練:模板模型的訓練資料總大小為 50 MB,神經模型為 1 GB。
  • 自訂分類模型訓練:訓練資料總大小為 1 GB,最多可達 10,000 頁。 2024-11-30(通用時間)訓練資料總大小為 2 GB,最大可達 10,000 頁。
  • Office 檔案類型(DOCX、XLSX、PPTX):字串長度上限為 800 萬字元。

欲了解更多關於模型使用、配額及服務限制的資訊,請參見 服務限制。

開始使用佈局模型

了解如何利用文件智慧從文件中提取資料,包括文字、表格、表格標頭、選取標記及結構資訊。 你需要以下資源:

  • 一個 Azure 訂閱。 你可以 免費創建一個。

  • Azure入口網站中的一個文件智慧實例。 你可以使用免費價格層級(F0)來試用這項服務。 資源部署完成後,選擇 前往資源 以取得你的金鑰和端點。

    截圖,顯示Azure入口網站中的金鑰和端點位置。

取得金鑰與端點後,請使用以下開發選項來建置並部署文件智慧應用程式。

資料擷取

版面模型會從你的文件中提取結構元素。 以下結構元素將在本文後續部分說明,並提供如何從文件輸入中提取的指引:

在 Document Intelligence Studio 中執行範例版面文件分析。 接著到結果頁籤,取得完整的 JSON 輸出。

顯示文件智慧工作室中 JSON 輸出索引標籤上結果的螢幕截圖。

頁數

該 pages 集合是文件內的頁面列表。 每頁在文件中依序表示,並包含方向角度(表示頁面是否旋轉),以及寬度與高度(以像素為單位的尺寸)。 模型輸出中的頁單位計算方式如下表所示。

檔案格式 計算的頁面單位 總頁數
圖片(JPEG/JPG、PNG、BMP、HEIF) 每張圖片 = 1 頁單位。 總圖片
PDF PDF 中的每頁 = 1 頁單位。 PDF 中總頁數
TIFF TIFF 中的每張圖片 = 1 頁單位。 TIFF文件中的總影像數量
Word(DOCX) 最多3,000字元=1頁單位。 不支援嵌入或連結的映像檔。 總頁數 (每頁最多 3,000 個字元)
Excel(XLSX) 每張工作紙 = 1 頁單位。 不支援嵌入或連結的映像檔。 工作表總計
PowerPoint(PPTX) 每張投影片 = 1 頁單位。 不支援嵌入或連結的映像檔。 總滑動數
HTML 最多3,000字元=1頁單位。 不支援嵌入或連結的映像檔。 總頁數 (每頁最多 3,000 個字元)
# Analyze pages.
for page in result.pages:
print(f"----Analyzing layout from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")

擷取部分頁面

對於大型多頁文件,請使用 pages 查詢參數指示特定的頁碼或頁面範圍以便擷取文字。

段落

版面模型會在paragraphs下,將 analyzeResults 集合中的所有已識別文字區塊提取為頂層物件。 此集合中的每個項目都代表一個文字區塊,並包含作為 content 的擷取文字和週框 polygon 座標。 該 spans 資訊指向頂層 content 屬性中的文字片段,該屬性包含文件的完整文本。


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

段落角色

基於機器學習的新頁面物件偵測能擷取邏輯角色,如標題、章節標題、頁首、頁尾等。 文件智慧版面模型會將收藏中 paragraphs 的特定文字區塊分配給模型預測的專門角色或類型。

在非結構化文件中,最好使用段落角色來幫助理解擷取內容的版面,從而進行更豐富的語意分析。 以下段落角色均被支援。

預測角色 描述 支援的檔案類型
title 頁面的主要標題 PDF、圖片、DOCX、PPTX、XLSX、HTML
sectionHeading 頁面上的一個或多個小標題 PDF、圖片、DOCX、XLSX、HTML
footnote 頁面底部附近的文字 PDF,圖片
pageHeader 頁面上緣附近的文字 PDF、圖片、DOCX
pageFooter 頁面底部附近的文字 PDF、圖片、DOCX、PPTX、HTML
pageNumber 頁碼 PDF,圖片
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

文字、行與詞語

文件智慧中的文件版面模型可擷取印刷及手寫風格的文字,如同 lineswords。 styles 集合會包含任何手寫樣式的文字行 (若有偵測到),連同指向相關文字的範圍。 此功能適用於 支援的手寫語言。

對於 Microsoft Word、Excel、PowerPoint 和 HTML,文件智慧 v4.0 2024-11-30(GA)版面模型會直接擷取所有嵌入的文字。 文本以單字和段落形式擷取。 不支援嵌入映像檔。

# Analyze lines.
if page.lines:
    for line_idx, line in enumerate(page.lines):
    words = get_words(page, line)
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{line.polygon}'"
    )

    # Analyze words.
    for word in words:
        print(f"......Word '{word.content}' has a confidence of {word.confidence}")

手寫樣式的文字行

回答會包含每行文字是否手寫,以及信心分數。 欲了解更多資訊,請參閱 手寫語言支援。 以下範例展示了一個 JSON 範例片段。

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

如果你啟用 字型/樣式外掛功能,字型/樣式結果也會作為 styles 物件的一部分。

選拔分數

版面模型也會從文件中擷取選擇標記。 每頁提取的選取標記會出現在pages集合中。 這包含週框 polygon、confidence 和選取項目 state (selected/unselected)。 文字表示法 (亦即,:selected: 和 :unselected) 也包含在起始索引 (offset)和參考包含文件全文最上層的 length 屬性的 content。

# Analyze selection marks.
if page.selection_marks:
    for selection_mark in page.selection_marks:
        print(
            f"Selection mark is '{selection_mark.state}' within bounding polygon "
            f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
        )

表格

擷取資料表是處理包含大量資料的文件(通常格式為表格)時的關鍵需求。 版面模型會擷取 JSON 輸出區塊中的 pageResults 表格。 擷取的表格資訊包括欄位與列數、列範圍及欄位範圍。

每個儲存格及其週框多邊形會連同此區域是否辨識為 columnHeader 的資訊一起輸出。 模型支援可旋轉的擷取表。 每個資料表儲存格都包含資料列和資料行索引,以及週框多邊形座標。 針對儲存格文字,模型會輸出包含起始索引 (span) 的 offset 資訊。 該模型還會在包含文件完整文本的頂層內容中輸出 length。

以下是要在使用 Document Intelligence bale 擷取功能時考慮的幾個因素:

  • 你想提取的資料是以表格形式呈現嗎?表格結構有意義嗎?
  • 如果資料不是表格格式,這些資料能放進二維格子裡嗎?
  • 您的表格跨越多頁嗎? 如果是這樣,為了避免所有頁面都標註,請先將 PDF 拆分成頁面再送給文件智慧部門。 分析完成後,將頁面後製成單一表格。
  • 如果你建立自訂模型,請參考 表格欄位 。 動態資料表每欄的列數可變。 固定表格每欄有固定數量的列數。

註

如果輸入檔是 XLSX,則不支援表格分析。 截至2024-11-30(GA),圖表與表格的邊界區域僅涵蓋核心內容,並排除相關的說明與腳註。

if result.tables:
    for table_idx, table in enumerate(result.tables):
        print(f"Table # {table_idx} has {table.row_count} rows and " f"{table.column_count} columns")
        if table.bounding_regions:
            for region in table.bounding_regions:
                print(f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}")
        # Analyze cells.
        for cell in table.cells:
            print(f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'")
            if cell.bounding_regions:
                for region in cell.bounding_regions:
                print(f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'")

輸出回應為 Markdown 格式

版面 API 可以輸出擷取後的文字以 Markdown 格式呈現。 使用 outputContentFormat=markdown 在 Markdown 中指定輸出格式。 Markdown 內容會作為該 content 區塊的一部分輸出。

註

在 v4.0 2024-11-30(GA)版本中,表格的表示方式改為 HTML 表格,以便渲染合併儲存格和多列標頭等項目。 另一項相關變更是選擇標記改為使用 Unicode 核取方塊☒字元,☐取代 :selected: 和 :unselected:。 此更新表示選取項目標記欄位的內容包含 :selected:,即使範圍參考的是最上層範圍的 Unicode 字元。 欲了解 Markdown 元素的完整定義,請參見 Markdown 輸出格式。

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

數據

文件中的圖表(圖表與圖片)在補充與強化文本內容方面扮演關鍵角色。 它們提供視覺化的呈現,有助於理解複雜資訊。 figures佈局模型偵測到的物件具有以下關鍵特性:

  • boundingRegions:圖在文件頁面上的空間位置,包括頁碼及描繪圖畫邊界的多邊形座標。
  • spans:與圖文框相關的文字跨度,可指定文件文字內的位移和長度。 這種連結有助於將人物與其相關的文本脈絡聯繫起來。
  • elements:文件中與該圖相關或描述的文字元素或段落識別碼。
  • caption:如果有描述的話。

當 output=figures 在初始分析操作中指定 時,服務會為所有偵測到的圖形產生裁切後的影像,這些影像可透過 /analyeResults/{resultId}/figures/{figureId}存取。 FigureId 值是包含在每個圖表物件中的 ID,並遵循未記載的慣例 {pageNumber}.{figureIndex},其中 figureIndex 會重設為每頁一個。

在 2024-11-30 (GA) 版本 4.0 中,圖表與表格的邊界區域僅涵蓋核心內容,並排除相關的說明與腳註。

# Analyze figures.
if result.figures:
    for figures_idx,figures in enumerate(result.figures):
        print(f"Figure # {figures_idx} has the following spans:{figures.spans}")
        for region in figures.bounding_regions:
            print(f"Figure # {figures_idx} location on page:{region.page_number} is within bounding polygon '{region.polygon}'")

章節

階層式文件結構分析在組織、理解及處理龐大文件時扮演關鍵角色。 此方法對於語意分割長文件至關重要,以提升理解力、便利導航及改善資訊檢索。 文件生成 AI 中檢索輔助生成(RAG)的出現,凸顯階層式文件結構分析的重要性。

版面模型在輸出中支援區段與子區段,以識別每個區段內區段與物件的關係。 在 elements 中,每個區段都維持著階層結構。 你可以透過 輸出回應為 Markdown 格式 ,以便輕鬆取得 Markdown 裡的各章節和子章節。

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

本內容適用於:🟩v3.1 (GA) | 最新版本:🟪v4.0 (GA) | 先前版本:🟦v3.0🟦v2.1

本內容適用於:🟥v3.0(退役) | 最新版本:🟪v4.0(通用版)🟪v3.1(通用版) | 先前版本:🟥V2.1(退役)

Important

Azure 文件智慧 v3.0 API 將於2022-08-312029 年 3 月 30 日結束支援。 為避免生產中斷,所有新開發請使用 Azure Document Intelligence 2024-11-30 v4.0,並在此日期前將現有工作負載遷移至 Azure Document Intelligence 2024-11-30 v4.0。 關於遷移指引,請參閱 文件智慧遷移指南。

本內容適用於:🟥v2.1 | 版本最新版本:🟪v4.0(通用版)

文件智慧版面模型是一個進階的文件分析 API。 該模型基於機器學習,並可在文件智慧雲端中取得。 你可以用它來接收各種格式的文件,並回傳文件的結構化資料表示。 它結合了強大的 OCR 功能與深度學習模型的強化版本。 你可以用它來擷取文字、表格、選取標記和文件結構。

文件版面分析

文件結構佈局分析是分析文件以提取感興趣區域及其相互關係的過程。 目標是從頁面中提取文字與結構元素,以建立更佳的語意理解模型。 文件版面中有兩種角色:

  • 幾何角色:文字、表格、圖形與選取標記是幾何角色的例子。
  • 邏輯角色:標題、標題與頁腳是文本邏輯角色的例子。

以下圖示展示了範例頁面圖片中的典型元件。

展示文件版面範例的插圖。

支援語言與地點

欲了解完整支援語言清單,請參見 語言支援:文件分析模型。

文件智慧 v2.1 支援以下工具、應用程式與函式庫。

特色 資源
佈局模型 • 文件智慧標註工具
• REST API
• 客戶端函式庫 SDK
• 文件智慧 Docker 容器

輸入導引

支援的檔案格式:

模型 PDF 圖片來源:
JPEG/JPG、PNG、BMP、TIFF、HEIF
Office:
Word(DOCX)、Excel(XLSX)、PowerPoint(PPTX)、HTML
閱讀 ✔ ✔ ✔
版面配置 ✔ ✔
一般文件 ✔ ✔
預先建置 ✔ ✔
自訂擷取 ✔ ✔
自訂分類 ✔ ✔ ✔
  • 照片與掃描:為取得最佳效果,請每份文件提供一張清晰照片或高品質掃描。
  • PDF 與 TIFF:PDF 與 TIFF 可透過免費訂閱處理多達 2,000 頁。 只有前兩頁會被處理。
  • 檔案大小:用於分析文件的檔案大小為付費(S0)等級為 500 MB,免費(F0)等級為 4 MB。
  • 影像尺寸:影像尺寸必須介於 50 像素 x 50 像素到 10,000 像素 x 10,000 像素之間。
  • 密碼鎖定:如果您的 PDF 有密碼鎖定,提交前必須解除鎖定。
  • 文字高度:1024 x 768 像素的影像中,需擷取的最小文字高度為 12 像素。 這個尺寸相當於約 8 點字,每英吋 150 點。
  • 自訂模型訓練:自訂範本模型的最大訓練頁面數為 500 頁,自訂神經模型為 50,000 頁。
  • 自訂擷取模型訓練:模板模型的訓練資料總大小為 50 MB,神經模型為 1 GB。
  • 自訂分類模型訓練:訓練資料總大小為 1 GB,最多可達 10,000 頁。 2024-11-30(通用時間)訓練資料總大小為 2 GB,最大可達 10,000 頁。
  • Office 檔案類型(DOCX、XLSX、PPTX):字串長度上限為 800 萬字元。

輸入指南

  • 支援的檔案格式:JPEG、PNG、PDF 及 TIFF。
  • 支援頁數:PDF 與 TIFF 可處理最多 2,000 頁。 對於免費訂閱者,僅處理前兩頁。
  • 支援檔案大小:檔案大小必須小於 50 MB,尺寸至少為 50 x 50 像素,且最多為 10,000 x 10,000 像素。

開始

你可以使用文件智慧(Document Intelligence)從文件中提取文字、表格、表格標頭、選取標記及結構資訊等資料。 你需要以下資源:

  • 一個 Azure 訂閱。 你可以 免費創建一個。
  • Azure入口網站中的一個文件智慧實例。 你可以使用免費價格層級(F0)來試用這項服務。 資源部署完成後,選擇 前往資源 以取得你的金鑰和端點。

截圖,顯示Azure入口網站中的金鑰和端點位置。

取得金鑰與端點後,您可以使用以下開發選項來建置並部署您的文件智慧應用程式。

註

文件智慧工作室提供 v3.0 API 及更新版本。

REST API

文件智能範例標籤工具

  1. 請前往 文件智慧範例標籤工具。

  2. 在範例工具首頁,選擇 「使用版面」以取得文字、表格和選取標記。

    這張截圖顯示文件智慧佈局流程的連線設定。

  3. 在 文件智慧服務端點 欄位,貼上你透過文件智慧訂閱取得的端點。

  4. 在 金鑰 欄位,貼上你從文件智慧資源取得的金鑰。

  5. 在 來源 欄位,從下拉選單選擇 網址 。 您可以使用範例文件:

  6. 選擇 執行佈局。 文件智慧範例標籤工具會呼叫 Analyze Layout API 來分析文件。

    顯示 Layout 下拉選單的截圖。

  7. 查看結果。 查看被標示的擷取文字、偵測到的選取標記和偵測到的資料表。

    顯示文件智慧範例標籤工具連線設定的截圖。

文件智慧 v2.1 支援以下工具、應用程式與函式庫。

特色 資源
版面配置 API • 文件智慧標註工具
• REST API
• 客戶端函式庫 SDK
• 文件智慧 Docker 容器

擷取資料

版面模型會從你的文件中提取結構元素。 結構元素在此說明,以下指引將說明如何從文件輸入中提取它們。

擷取資料

版面模型會從你的文件中提取結構元素。 結構元素在此說明,以下指引將說明如何從文件輸入中提取它們。

頁

該 pages 集合是文件內的頁面列表。 每頁在文件中依序表示,並包含指示頁面是否旋轉的方向角度,以及寬度與高度(以像素為單位的尺寸)。 模型輸出中的頁單位計算方式如下表所示。

檔案格式 計算的頁面單位 總頁數
圖片(JPEG/JPG、PNG、BMP、HEIF) 每張圖片 = 1 頁單位。 總圖片
PDF PDF 中的每頁 = 1 頁單位。 PDF 中總頁數
TIFF TIFF 中的每張圖片 = 1 頁單位。 TIFF文件中的總影像數量
Word(DOCX) 最多3,000字元=1頁單位。 不支援嵌入或連結的映像檔。 總頁數 (每頁最多 3,000 個字元)
Excel(XLSX) 每張工作紙 = 1 頁單位。 不支援嵌入或連結的映像檔。 工作表總計
PowerPoint(PPTX) 每張投影片 = 1 頁單位。 不支援嵌入或連結的映像檔。 總滑動數
HTML 最多3,000字元=1頁單位。 不支援嵌入或連結的映像檔。 總頁數 (每頁最多 3,000 個字元)
"pages": [
    {
        "pageNumber": 1,
        "angle": 0,
        "width": 915,
        "height": 1190,
        "unit": "pixel",
        "words": [],
        "lines": [],
        "spans": []
    }
]
# Analyze pages.
for page in result.pages:
    print(f"----Analyzing layout from page #{page.page_number}----")
    print(
        f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
    )

從文件中擷取部分頁面

對於大型多頁文件,請使用 pages 查詢參數指示特定的頁碼或頁面範圍以便擷取文字。

段落

版面模型會在paragraphs下,將 analyzeResults 集合中的所有已識別文字區塊提取為頂層物件。 此集合中的每個項目都代表一個文字區塊,並包含作為 content 的擷取文字和週框 polygon 座標。 該 span 資訊指向頂層 content 屬性中的文字片段,該屬性包含文件的完整文本。


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

段落角色

基於機器學習的新頁面物件偵測能擷取邏輯角色,如標題、章節標題、頁首、頁尾等。 文件智慧版面模型會將收藏中 paragraphs 的特定文字區塊分配給模型預測的專門角色或類型。 在非結構化文件中,最好使用段落角色來幫助理解擷取內容的版面,從而進行更豐富的語意分析。 以下段落角色均被支援。

預測角色 描述 支援的檔案類型
title 本頁主要標題 PDF、圖片、DOCX、PPTX、XLSX、HTML
sectionHeading 頁面上的一個或多個小標題 PDF、圖片、DOCX、XLSX、HTML
footnote 頁面底部附近的文字 PDF,圖片
pageHeader 頁面上緣附近的文字 PDF、圖片、DOCX
pageFooter 頁面底部附近的文字 PDF、圖片、DOCX、PPTX、HTML
pageNumber 頁碼 PDF,圖片
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

文字、行和字

文件智慧中的文件版面模型會將印刷與手寫風格的文字提取為行與字。 styles 集合會包含任何手寫樣式的文字行 (若有偵測到),連同指向相關文字的範圍。 此功能適用於 支援的手寫語言。

對於 Word、Excel、PowerPoint 和 HTML 來說,文件智慧 v4.0 2024-11-30(GA)版面模型會直接擷取所有嵌入的文字。 文本以單字和段落形式擷取。 不支援嵌入映像檔。

"words": [
    {
        "content": "While",
        "polygon": [],
        "confidence": 0.997,
        "span": {}
    },
],
"lines": [
    {
        "content": "While healthcare is still in the early stages of its Al journey, we",
        "polygon": [],
        "spans": [],
    }
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
    words = line.get_words()
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{format_polygon(line.polygon)}'"
    )

    # Analyze words.
    for word in words:
        print(
            f"......Word '{word.content}' has a confidence of {word.confidence}"
        )

手寫風格

回答內容包括分類每行文字是否為手寫風格,並附上信心分數。 欲了解更多資訊,請參閱 手寫語言支援。 以下範例展示了一個 JSON 範例片段。

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

如果你啟用 字型/樣式外掛功能,字型/樣式結果也會作為 styles 物件的一部分。

選拔標記

版面模型也會從文件中擷取選擇標記。 每頁提取的選取標記會出現在pages集合中。 這包含週框 polygon、confidence 和選取項目 state (selected/unselected)。 文字表示法 (亦即,:selected: 和 :unselected) 也包含在起始索引 (offset)和參考包含文件全文最上層的 length 屬性的 content。

{
    "selectionMarks": [
        {
            "state": "unselected",
            "polygon": [],
            "confidence": 0.995,
            "span": {
                "offset": 1421,
                "length": 12
            }
        }
    ]
}
# Analyze selection marks.
for selection_mark in page.selection_marks:
    print(
        f"Selection mark is '{selection_mark.state}' within bounding polygon "
        f"'{format_polygon(selection_mark.polygon)}' and has a confidence of {selection_mark.confidence}"
    )

表格

擷取資料表是處理包含大量資料的文件(通常格式為表格)時的關鍵需求。 版面模型會擷取 JSON 輸出區塊中的 pageResults 表格。 擷取的表格資訊包括欄位與列數、列範圍及欄位範圍。 每個儲存格及其週框多邊形會連同此區域是否辨識為 columnHeader 的資訊一起輸出。

模型支援可旋轉的擷取表。 每個資料表儲存格都包含資料列和資料行索引,以及週框多邊形座標。 針對儲存格文字,模型會輸出包含起始索引 (span) 的 offset 資訊。 該模型還會在包含文件完整文本的頂層內容中輸出 length。

以下是要在使用 Document Intelligence bale 擷取功能時考慮的幾個因素:

  • 你想提取的資料是以表格形式呈現嗎?表格結構有意義嗎?
  • 如果資料不是表格格式,這些資料能放進二維格子裡嗎?
  • 您的表格跨越多頁嗎? 如果是這樣,為了避免所有頁面都標註,請先將 PDF 拆分成頁面再送給文件智慧部門。 分析完成後,將頁面後製成單一表格。
  • 如果你建立自訂模型,請參考 表格欄位 。 動態資料表每欄的列數可變。 固定表格每欄有固定數量的列數。

註

如果輸入檔是 XLSX,則不支援表格分析。 文件智慧 v4.0 2024-11-30(通用版)支援僅涵蓋核心內容、排除相關說明與腳註的圖表與表格的邊界區域。

{
    "tables": [
        {
            "rowCount": 9,
            "columnCount": 4,
            "cells": [
                {
                    "kind": "columnHeader",
                    "rowIndex": 0,
                    "columnIndex": 0,
                    "columnSpan": 4,
                    "content": "(In millions, except earnings per share)",
                    "boundingRegions": [],
                    "spans": []
                    },
            ]
        }
    ]
}

# Analyze tables.
for table_idx, table in enumerate(result.tables):
    print(
        f"Table # {table_idx} has {table.row_count} rows and "
        f"{table.column_count} columns"
    )
    for region in table.bounding_regions:
        print(
            f"Table # {table_idx} location on page: {region.page_number} is {format_polygon(region.polygon)}"
        )
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
        for region in cell.bounding_regions:
            print(
                f"...content on page {region.page_number} is within bounding polygon '{format_polygon(region.polygon)}'"
            )

註解

版面配置模型可擷取文件中的註釋,如「打勾」符號和叉號。 回應包含註釋類型,以及信賴度分數和週框多邊形。

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

自然閱讀順序輸出(僅限拉丁文)

你可以用 readingOrder 查詢參數指定文字行的輸出順序。 使用 natural 以獲得更符合人性化的閱讀順序輸出,如下範例所示。 此功能僅支援拉丁語言。

佈局模型讀取順序處理的截圖。

選擇頁碼或範圍以擷取文字

對於大型多頁文件,請使用 pages 查詢參數指示特定的頁碼或頁面範圍以便擷取文字。 以下範例展示了一份包含 10 頁的文件,並針對兩種情況擷取了文字,包括所有頁面(1-10)及部分頁面(3-6)。

截圖顯示版面模型所選頁面輸出。

取得分析版面配置結果作業

第二步是呼叫Get Analyze Layout Result操作。 此操作以該 Analyze Layout 操作產生的結果 ID 作為輸入。 它會回傳一個包含 狀態欄位的 JSON 回應,該回應可能值如下。

欄位 類型 可能的數值
現況 字串 notStarted:分析作業尚未開始。

running:分析作業正在進行中。

failed:分析作業失敗。

succeeded分析作業成功。

反覆呼叫此操作,直到回傳該 succeeded 值為止。 為避免超過每秒請求數,請使用三到五秒的間隔。

當 狀態 欄位有 該 succeeded 值時,JSON 回應會包含擷取後的版面、文字、表格和選取標記。 擷取資料包括擷取的文字行與字、邊界框、帶有手寫指示的文字外觀、表格,以及標示已選取/未選取的選取標記。

文字行的手寫分類(僅限拉丁文)

回覆包括分類每行文字是否為手寫樣式,並附上信賴度分數。 此功能僅支援拉丁語言。 以下範例展示了圖片中文字的手寫分類。

截圖顯示版面模型的手寫識別分類流程。

範例 JSON 輸出

對操作 Get Analyze Layout Result 的回應是文件的結構化表示,並擷取了所有資訊。 請參閱 範例文件檔及其結構化輸出範例佈局輸出。

JSON 輸出包含兩部分:

  • 節點 readResults 包含所有已識別的文字及選擇標記。 文字呈現的層級是頁面、行,最後是單字。
  • pageResults 節點包含已擷取的資料表和儲存格,以及其週框方塊、信賴度和以及對 readResults 欄位中文字行和字組的參考。

範例輸出

文字

版面介面 API 能從具有多種文字角度與顏色的文件與圖片中擷取文字。 它接受文件照片、傳真、印刷及/或手寫(僅英文)文字,以及混合模式。 文本擷取時會提供關於行數、單字、邊界框、信心分數及風格(手寫或其他)等資訊。 所有文字資訊都包含在 readResults JSON 輸出的區塊中。

帶有標頭的資料表

Layout API 會擷取 JSON 輸出區塊中的表格 pageResults 。 你可以掃描、拍照或數位化文件。 表格可以很複雜,包含合併的儲存格或欄位,有邊框或沒有邊框,且角度為奇數。

擷取的表格資訊包括欄位與列數、列範圍及欄位範圍。 每個帶有邊界框的儲存格都會輸出,並判斷其區域是否受識別為標題的一部分。 模型預測的標頭儲存格可以跨越多列,且不一定是表格的前列。 他們也會使用旋轉的桌子。 每個表格儲存格也包含完整文本,並引用該 readResults 區塊中個別單字。

展示表格範例的示意圖。

選取項目標記 (文件)

版面 API 也會從文件中擷取選取標記。 擷取的選取標記包括邊界框、可信度及狀態(選取/未選取)。 JSON 輸出中 readResults 區段會擷取選取標記資訊。

遷徙指南