文件智慧服務版面配置模型
重要
- 文件智慧服務公開預覽版本可讓您搶先存取正在積極開發的功能。 根據使用者意見反應,功能、方法和流程在正式發行 (GA) 前可能有所變更。
- 文件智慧服務用戶端程式庫的公開預覽版預設為 REST API 版本 2024-07-31-preview。
- 公開預覽版 2024-07-31-preview 目前僅適用於下列 Azure 地區。 請注意,AI Studio 中的自訂生成 (文件欄位擷取) 模型僅適用美國中北部地區:
- 美國東部
- 美國西部 2
- 西歐
- 美國中北部
此內容適用於: v4.0 (預覽版) | 舊版: v3.1 (GA) v3.0 (GA) v2.1 (GA)
文件智慧服務版面配置模型是在文件智慧服務雲端中提供以進階機器學習為基礎的文件分析 API。 它能讓您採用各種格式的文件,然後傳回文件的結構化資料表示法。 其結合我們功能強大的進階版光學字元辨識 (OCR) 與深度學習模型,能夠擷取文字、資料表、選取標記和文件結構。
檔案版面設定分析 (v4)
文件結構版面配置分析是分析文件以擷取相關區域及其相互關聯性的程序。 目標是從頁面擷取文字和結構化元素,以建立更好的語意理解模型。 文件版面配置中有兩種類型的角色:
- 幾何角色:文字、資料表、圖文框和選取記號是幾何角色的範例。
- 邏輯角色:標題、區段標題和頁尾是文字邏輯角色的範例。
以下圖例顯示頁面範例影像中的一般元件。
開發選項 (v4)
文件智慧服務 v4.0 (2024-07-31-preview) 支援以下工具、應用程式和程式庫:
功能 | 資源 | Model ID |
---|---|---|
版面配置模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • JAVA SDK • JavaScript SDK |
prebuilt-layout |
輸入需求 (v4)
支援的檔案格式:
模型 PDF 影像: JPEG/JPG
、PNG
、BMP
、TIFF
、HEIF
Microsoft Office:
Word (DOCX
)、Excel (XLSX
)、PowerPoint (PPTX
)、HTML參閱 ✔ ✔ ✔ 版面配置 ✔ ✔ ✔ (2024-07-31-preview、2024-02-29-preview、2023-10-31-preview) 一般文件 ✔ ✔ 預建 ✔ ✔ 自訂擷取 ✔ ✔ 自訂分類 ✔ ✔ ✔ (2024-07-31-preview、2024-02-29-preview) 若要得到最佳結果,請為每個文件提供一張清晰的照片或高畫質的掃描檔案。
若使用 PDF 和 TIFF,最多可處理 2,000 頁 (若使用免費層訂閱,則只會處理前兩頁)。
付費 (S0) 層分析文件的檔案大小為 500 MB,免費 (F0) 層則為
4
MB。影像維度必須介於 50 像素 x 50 像素和 10,000 像素 x 10,000 像素之間。
如果您的 PDF 有密碼鎖定,則必須先移除鎖定才能提交。
針對 1024 x 768 像素影像的擷取文字高度下限為 12 像素。 此維度在 150 點/英吋 (DPI) 時大約相當於
8
點文字。針對自訂模型定型,自訂範本模型的定型資料頁數上限為 500,而自訂神經網路模型的上限則為 50,000。
對於自訂擷取模型定型,範本模型的定型資料大小總計為 50 MB,而神經模型的大小總計則為
1
GB。針對自訂分類模型定型,定型資料的大小總計為
1
GB (上限為 10,000 頁)。 對於 2024-07-31-preview 和更新版本,定型資料的大小總計為2
GB,上限為 10,000 頁。
開始使用版面配置模型
了解如何使用文件智慧服務,從文件中擷取包括文字、資料表、資料表標題、選取標記和結構資訊在內的資料。 您需要下列資源:
一個 Azure 訂用帳戶 - 您可以建立一個免費訂用帳戶。
Azure 入口網站中的 Document Intelligence 執行個體。 您可以使用免費定價層 (
F0
) 來試用服務。 部署資源後,選取 [前往資源] 以取得金鑰和端點。
注意
文件智慧服務工作室有 v3.0 API 及更新版本可供使用。
使用 Document Intelligence Studio (英文) 處理的文件範例
在文件智慧服務工作室首頁,選取 [版面配置]。
您可以分析範例文件,或上傳您自己的檔案。
選取 [執行分析] 按鈕,如有必要,設定 [分析選項]:
支援的語言與地區設定 (ocr)
如需支援語言的完整清單,請參閱我們的語言支援—文件分析模型頁面。
資料擷取 (v4)
版面配置模型會從文件中擷取文字、選取項目標記、表格、段落及段落類型 (roles
)。
注意
版本 2024-02-29-preview
、2023-10-31-preview
和更新版本支援 Microsoft Office (DOCX、XLSX、PPTX) 和 HTML 檔案。 不支援下列功能:
- 每個頁面物件沒有角度、寬度/高度和單位。
- 針對偵測到的每個物件,沒有週框多邊形或週框區域。
- 不支援頁面範圍 (
pages
) 作為參數。 - 沒有
lines
物件。
頁面
頁面集合是文件內的頁面清單。 每一頁都會循序在檔和 中表示。/include 方向角度,指出頁面是否旋轉和寬度和高度(以像素為單位的維度)。 會計算模型輸出中的頁面單位,如下所示:
檔案格式 | 計算的頁面單位 | 總頁數 |
---|---|---|
影像 (JPEG/JPG、PNG、BMP、HEIF) | 每個影像 = 1 個頁面單位 | 影像總計 |
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
底下的最上層物件。 這個集合中的每個專案都代表文字塊與 。/include the extracted text ascontent
and the bounding polygon
coordinates. 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,image,docx,pptx,xlsx,html |
sectionHeading |
頁面上的一或多個子標題 | pdf,image,docx,xlsx,html |
footnote |
接近頁面底部的文字 | pdf,image |
pageHeader |
接近頁面上緣的文字 | pdf,image,docx |
pageFooter |
接近頁面下緣的文字 | pdf,image,docx,pptx,xlsx,html |
pageNumber |
頁碼 | pdf,image |
{
"paragraphs": [
{
"spans": [],
"boundingRegions": [],
"role": "title",
"content": "NEWS TODAY"
},
{
"spans": [],
"boundingRegions": [],
"role": "sectionHeading",
"content": "Mirjam Nilsson"
}
]
}
文字,行和字
文件智慧服務中的文件版面配置模型會將印刷和手寫樣式的文字擷取為 lines
和 words
。 集合 styles
../include any handwritten style for line if detected with the spans point to the associated text. 此功能適用於支援的手寫語言。
對於 Microsoft Word、Excel、PowerPoint 和 HTML,文件智慧服務 2024-02-29-preview 和 2023-10-31-preview 版面配置模型會依目前方式擷取所有內嵌文字。 文字會擷取為單字和段落。 不支援內嵌的影像。
# 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}")
手寫樣式的文字行
回應 ../include 會分類每個文字行是否為手寫樣式,以及信賴分數。 如需詳細資訊, 請參閱 手寫語言支援 (部分機器翻譯) 下列範例顯示 JSON 程式碼片段範例。
"styles": [
{
"confidence": 0.95,
"spans": [
{
"offset": 509,
"length": 24
}
"isHandwritten": true
]
}
如果您啟用 字型/樣式附加元件功能,也會取得 styles
物件的字型/樣式結果。
選取標記
版面配置模型也會從文件擷取選取標記。 擷取的選取項目標記會出現在每個頁面的 pages
集合中。 這包含週框 polygon
、confidence
和選取項目 state
(selected/unselected
)。 文字表示法 (亦即,:selected:
和 :unselected
) 也包含在起始索引 (offset
)和參考包含文件全文最上層的 content
屬性的 length
。
# 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
的資訊一起輸出。 模型支援擷取旋轉的資料表。 每個資料表儲存格都包含資料列和資料行索引,以及週框多邊形座標。 針對儲存格文字,模型會輸出包含起始索引 (offset
) 的 span
資訊。 模型也會輸出包含文件全文的最上層內容 length
。
以下是要在使用 Document Intelligence bale 擷取功能時考慮的幾個因素:
您要擷取以資料表形式呈現的資料嗎?資料表結構是否有意義?
如果資料不是資料表格式,則資料是否可以放入二維方格中?
您的資料表是否跨越多個頁面? 如果是的話,為避免將所有頁面加上標籤,請先將 PDF 分割成多個頁面,然後再將其傳送至文件智慧服務。 分析之後,再將頁面處理成單一資料表。
如果您要建立自訂模型,請參閱表格式欄位。 動態資料表中每個資料行的資料列數目可變動。 固定資料表中每個資料行的資料列數目不可變動。
注意
- 如果輸入檔為 XLSX,則不支援資料表分析。
- 從 2024-07-31-preview 開始,圖表和資料表的邊界區域只會涵蓋核心內容,並排除相關聯的標題和註腳。
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
區段的一部分。
注意
從 2024-07-31-preview 開始,資料表的表示法會變更為 HTML 資料表,以啟用合併資料格、多列標頭等轉譯。另一項相關變更是使用 Unicode 核取方塊字元 ☒,並將 ☐ 用於選取項目標記,而不是 :selected: 和 :unselected:。 請注意,這表示選取項目標記欄位的內容會包含 :selected:,即使範圍參考的是最上層範圍的 Unicode 字元。
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,
)
圖文框
文件中的圖文框 (圖表、影像) 在補充和增強文字內容上扮演著重要的角色,提供有助於了解複雜資訊的視覺效果表示法。 版面配置模型所偵測到的圖文框物件具有關鍵屬性,例如 boundingRegions
(圖文框在文件頁面上的空間位置,包括頁碼和勾勒圖形邊界的多邊形座標)、spans
(詳細說明與圖文框相關的文字範圍,指定它們在文件文字中的偏移量和長度。此關係有助於將圖形與其相關文字內容相關聯)、elements
(文件中與圖形相關或描述圖形的文字元素或段落的識別碼) 和 caption
(如果有的話)。
在初始分析作業期間指定 output=figures 時,服務會針對可透過 /analyeResults/{resultId}/figures/{figureId}
存取的所有偵測到的圖表產生經過裁切的影像。
FigureId
會包含在每個圖表物件中,並遵循未記載的慣例 {pageNumber}.{figureIndex}
,其中 figureIndex
會重設為每頁一個。
注意
從 2024-07-31-preview 開始,圖表和資料表的邊界區域只會涵蓋核心內容,並排除相關聯的標題和註腳。
# 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 (預覽版) | 舊版: v3.0 v2.1
此內容適用於: v3.0 (GA) | 最新版本: v4.0 (預覽版) v3.1 | 舊版: v2.1
此內容適用於: v2.1 | 最新版本: v4.0 (預覽版)
文件智慧服務版面配置模型是在文件智慧服務雲端中提供以進階機器學習為基礎的文件分析 API。 它能讓您採用各種格式的文件,然後傳回文件的結構化資料表示法。 其結合我們功能強大的進階版光學字元辨識 (OCR) 與深度學習模型,能夠擷取文字、資料表、選取標記和文件結構。
文件版面配置分析
文件結構版面配置分析是分析文件以擷取相關區域及其相互關聯性的程序。 目標是從頁面擷取文字和結構化元素,以建立更好的語意理解模型。 文件版面配置中有兩種類型的角色:
- 幾何角色:文字、資料表、圖文框和選取記號是幾何角色的範例。
- 邏輯角色:標題、區段標題和頁尾是文字邏輯角色的範例。
以下圖例顯示頁面範例影像中的一般元件。
開發選項
文件智慧服務 v3.1 支援下列工具、應用程式和程式庫:
功能 | 資源 | Model ID |
---|---|---|
版面配置模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • JAVA SDK • JavaScript SDK |
prebuilt-layout |
文件智慧服務 v3.0 支援下列工具、應用程式和程式庫:
功能 | 資源 | Model ID |
---|---|---|
版面配置模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • JAVA SDK • JavaScript SDK |
prebuilt-layout |
文件智慧服務 v2.1 支援下列工具、應用程式和程式庫:
功能 | 資源 |
---|---|
版面配置模型 | • 文件智慧服務標記工具 • REST API • 用戶端程式庫 SDK • 文件智慧服務 Docker 容器 |
輸入需求
支援的檔案格式:
模型 PDF 影像: JPEG/JPG
、PNG
、BMP
、TIFF
、HEIF
Microsoft Office:
Word (DOCX
)、Excel (XLSX
)、PowerPoint (PPTX
)、HTML參閱 ✔ ✔ ✔ 版面配置 ✔ ✔ ✔ (2024-07-31-preview、2024-02-29-preview、2023-10-31-preview) 一般文件 ✔ ✔ 預建 ✔ ✔ 自訂擷取 ✔ ✔ 自訂分類 ✔ ✔ ✔ (2024-07-31-preview、2024-02-29-preview) 若要得到最佳結果,請為每個文件提供一張清晰的照片或高畫質的掃描檔案。
若使用 PDF 和 TIFF,最多可處理 2,000 頁 (若使用免費層訂閱,則只會處理前兩頁)。
付費 (S0) 層分析文件的檔案大小為 500 MB,免費 (F0) 層則為
4
MB。影像維度必須介於 50 像素 x 50 像素和 10,000 像素 x 10,000 像素之間。
如果您的 PDF 有密碼鎖定,則必須先移除鎖定才能提交。
針對 1024 x 768 像素影像的擷取文字高度下限為 12 像素。 此維度在 150 點/英吋 (DPI) 時大約相當於
8
點文字。針對自訂模型定型,自訂範本模型的定型資料頁數上限為 500,而自訂神經網路模型的上限則為 50,000。
對於自訂擷取模型定型,範本模型的定型資料大小總計為 50 MB,而神經模型的大小總計則為
1
GB。針對自訂分類模型定型,定型資料的大小總計為
1
GB (上限為 10,000 頁)。 對於 2024-07-31-preview 和更新版本,定型資料的大小總計為2
GB,最多 10,000 頁。
- 支援的檔案格式有:JPEG、PNG、PDF、TIFF。
- 支援的頁數:若為 PDF 和 TIFF,最多可處理 2,000 頁。 若是免費層訂閱者,只會處理前兩頁。
- 支援的檔案大小:檔案大小必須小於 50 MB,尺寸至少 50 x 50 像素,最大可到 10,000 x 10,000 像素。
開始使用版面配置模型
了解如何使用文件智慧服務,從文件中擷取包括文字、資料表、資料表標題、選取標記和結構資訊在內的資料。 您需要下列資源:
一個 Azure 訂用帳戶 - 您可以建立一個免費訂用帳戶。
Azure 入口網站中的 Document Intelligence 執行個體。 您可以使用免費定價層 (
F0
) 來試用服務。 部署資源後,選取 [前往資源] 以取得金鑰和端點。
注意
文件智慧服務工作室有 v3.0 API 及更新版本可供使用。
使用 Document Intelligence Studio (英文) 處理的文件範例
在文件智慧服務工作室首頁,選取 [版面配置]。
您可以分析範例文件,或上傳您自己的檔案。
選取 [執行分析] 按鈕,如有必要,設定 [分析選項]:
文件智慧服務範例標籤工具
瀏覽至文件智慧服務範例工具 (英文)。
在範例工具首頁上,選取 [Use Layout to get text, tables and selection marks] (使用版面配置來取得文字、資料表和選取標記)。
在 [文件智慧服務端點] 欄位中,貼上您透過文件智慧服務訂用帳戶取得的端點。
在 [金鑰] 欄位中,貼上您從文件智慧服務資源取得的金鑰。
在 [來源] 欄位中,從下拉式功能表中選取 [URL],您可以使用我們的文件範例:
範例文件。
選取 [擷取] 按鈕。
選取 [Run Layout] (執行版面配置)。 文件智慧服務範例標籤工具會呼叫
Analyze Layout
API 以分析文件。檢視結果:查看擷取的醒目提示文字、偵測到的選取項目標記和偵測到的資料表。
支援的語言和地區設定
如需支援語言的完整清單,請參閱我們的語言支援—文件分析模型頁面。
文件智慧服務 v2.1 支援下列工具、應用程式和程式庫:
功能 | 資源 |
---|---|
版面配置 API | • 文件智慧服務標記工具 • REST API • 用戶端-程式庫 SDK • 文件智慧服務 Docker 容器 |
資料擷取
版面配置模型會從文件中擷取文字、選取項目標記、表格、段落及段落類型 (roles
)。
注意
版本 2024-02-29-preview
、2023-10-31-preview
和更新版本支援 Microsoft Office (DOCX、XLSX、PPTX) 和 HTML 檔案。 不支援下列功能:
- 每個頁面物件沒有角度、寬度/高度和單位。
- 針對偵測到的每個物件,沒有週框多邊形或週框區域。
- 不支援頁面範圍 (
pages
) 作為參數。 - 沒有
lines
物件。
頁面
頁面集合是文件內的頁面清單。 每一頁都會循序在檔和 中表示。/include 方向角度,指出頁面是否旋轉和寬度和高度(以像素為單位的維度)。 會計算模型輸出中的頁面單位,如下所示:
檔案格式 | 計算的頁面單位 | 總頁數 |
---|---|---|
影像 (JPEG/JPG、PNG、BMP、HEIF) | 每個影像 = 1 個頁面單位 | 影像總計 |
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
底下的最上層物件。 這個集合中的每個專案都代表文字塊與 。/include the extracted text ascontent
and the bounding polygon
coordinates. 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,image,docx,pptx,xlsx,html |
sectionHeading |
頁面上的一或多個子標題 | pdf,image,docx,xlsx,html |
footnote |
接近頁面底部的文字 | pdf,image |
pageHeader |
接近頁面上緣的文字 | pdf,image,docx |
pageFooter |
接近頁面下緣的文字 | pdf,image,docx,pptx,xlsx,html |
pageNumber |
頁碼 | pdf,image |
{
"paragraphs": [
{
"spans": [],
"boundingRegions": [],
"role": "title",
"content": "NEWS TODAY"
},
{
"spans": [],
"boundingRegions": [],
"role": "sectionHeading",
"content": "Mirjam Nilsson"
}
]
}
文字,行和字
文件智慧服務中的文件版面配置模型會將印刷和手寫樣式的文字擷取為 lines
和 words
。 集合 styles
../include any handwritten style for line if detected with the spans point to the associated text. 此功能適用於支援的手寫語言。
對於 Microsoft Word、Excel、PowerPoint 和 HTML,文件智慧服務 2024-02-29-preview 和 2023-10-31-preview 版面配置模型會依目前方式擷取所有內嵌文字。 文字會擷取為單字和段落。 不支援內嵌的影像。
"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}"
)
手寫樣式的文字行
回應 ../include 會分類每個文字行是否為手寫樣式,以及信賴分數。 如需詳細資訊, 請參閱 手寫語言支援 (部分機器翻譯) 下列範例顯示 JSON 程式碼片段範例。
"styles": [
{
"confidence": 0.95,
"spans": [
{
"offset": 509,
"length": 24
}
"isHandwritten": true
]
}
如果您啟用 字型/樣式附加元件功能,也會取得 styles
物件的字型/樣式結果。
選取標記
版面配置模型也會從文件擷取選取標記。 擷取的選取項目標記會出現在每個頁面的 pages
集合中。 這包含週框 polygon
、confidence
和選取項目 state
(selected/unselected
)。 文字表示法 (亦即,:selected:
和 :unselected
) 也包含在起始索引 (offset
)和參考包含文件全文最上層的 content
屬性的 length
。
{
"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
的資訊一起輸出。 模型支援擷取旋轉的資料表。 每個資料表儲存格都包含資料列和資料行索引,以及週框多邊形座標。 針對儲存格文字,模型會輸出包含起始索引 (offset
) 的 span
資訊。 模型也會輸出包含文件全文的最上層內容 length
。
以下是要在使用 Document Intelligence bale 擷取功能時考慮的幾個因素:
您要擷取以資料表形式呈現的資料嗎?資料表結構是否有意義?
如果資料不是資料表格式,則資料是否可以放入二維方格中?
您的資料表是否跨越多個頁面? 如果是的話,為避免將所有頁面加上標籤,請先將 PDF 分割成多個頁面,然後再將其傳送至文件智慧服務。 分析之後,再將頁面處理成單一資料表。
如果您要建立自訂模型,請參閱表格式欄位。 動態資料表中每個資料行的資料列數目可變動。 固定資料表中每個資料行的資料列數目不可變動。
注意
- 如果輸入檔為 XLSX,則不支援資料表分析。
- 從 2024-07-31-preview 開始,圖表和資料表的邊界區域只會涵蓋核心內容,並排除相關聯的標題和註腳。
{
"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)}'"
)
註釋 (僅在 2023-02-28-preview
API 中可供使用。)
版面配置模型會擷取文件中的註釋,例如打勾和打叉記號。 回應 ../include 的批注種類,以及信賴分數和周框多邊形。
{
"pages": [
{
"annotations": [
{
"kind": "cross",
"polygon": [...],
"confidence": 1
}
]
}
]
}
自然讀取順序輸出 (僅適用於拉丁文)
您可以使用 readingOrder
查詢參數,指定輸出文字行的順序。 使用 natural
可以取得更容易閱讀的讀取順序輸出,如下列範例所示。 這項功能僅支援拉丁語言。
選取頁碼或頁面範圍以進行文字擷取
若為大型的多頁文件,請使用 pages
查詢參數來表示文字擷取的特定頁碼或頁面範圍。 以下範例顯示有 10 頁的文件,並提供兩種文字擷取案例,分別是所有頁面 (1-10 頁) 和選取的頁面 (3-6 頁)。
取得分析版面配置結果作業
第二個步驟是呼叫取得分析版面配置結果作業。 此作業接受 Analyze Layout
作業所建立的結果識別碼輸入。 其會傳回包含 [狀態] 欄位的 JSON 回應,包含以下可能的值。
欄位 | 類型 | 可能值 |
---|---|---|
status | 字串 | notStarted :分析作業未啟動。running :分析作業正在進行中。failed :分析作業失敗。succeeded :分析作業成功。 |
反覆呼叫此作業,直到傳回 succeeded
值為止。 請使用 3 至 5 秒的間隔,以避免超過每秒要求數 (RPS) 的速率。
當狀態欄位具有succeeded
值時,JSON 回應 ../includes 擷取的配置、文字、數據表和選取標記。 擷取的數據 ../includes extracted text line and words, bounding boxes, text appearance with handwritten indication, tables, and selection marks with selected/unselecteded indicated.
手寫分類的文字行 (僅適用於拉丁文)
回應 ../include 會分類每個文字行是否為手寫樣式,以及信賴分數。 這項功能僅支援拉丁語言。 下列範例顯示影像中文字的手寫分類。
範例 JSON 輸出
取得分析版面配置結果作業的回應是文件的結構化資料表示及擷取的所有資訊。 如需文件檔案範例及其結構化輸出的版面配置輸出範例,請參閱這裡。
JSON 輸出有兩個部分:
readResults
節點包含所有已辨識的文字和選取標記。 文字的呈現階層依序為頁面、行、個別字組。pageResults
節點包含已擷取的資料表和儲存格及其週框方塊、信賴度,以及對 [readResults] 欄位中文字行和字組的參考。
輸出範例:
Text
版面配置 API 會從具有多個文字角度和色彩的文件和影像中擷取文字。 其接受文件的相片、傳真、印刷和/或手寫 (僅限英文) 文字以及混合模式。 文字的擷取會包含所提供文字行、字組、週框方塊、信賴分數和樣式 (手寫或其他) 的相關資訊。 所有文字資訊都會包括在 JSON 輸出的 readResults
區段中。
具有標題的資料表
配置 API 在 JSON 輸出的 pageResults
區段中擷取資料表。 文件可以是掃描、拍照或數位化的文件。 資料表可能很複雜,有合併儲存格或資料行、有或沒有框線以及奇特的角度。 擷取的數據表資訊 ../包含數據列和數據列數目、數據列範圍和數據行範圍。 每個儲存格與其週框方塊,連同此區域是否辨識為標題之部分的資訊,都會一同輸出。 模型預測的標題儲存格可以跨越多個資料列,而且不必一定是資料表中的第一個資料列。 旋轉的資料表同樣適用。 每個資料表數據格也 ../include 全文檢索,其中包含區段中個別字組的 readResults
參考。
選取標記
版面配置 API 也會從文件擷取選取項目標記。 擷取的選取標記包括週框方塊、信賴度和狀態 (已選取/未選取)。 選取標記的資訊會擷取在 JSON 輸出的 readResults
區段中。
移轉指南
- 請遵循我們的文件智慧服務 v3.1 移轉指南 (部分機器翻譯),了解如何在應用程式和工作流程中使用 v3.1 版本。
下一步
完成 Document Intelligence 快速入門,並開始以您選擇的開發語言來建立文件處理應用程式。
- 在 GitHub 上尋找更多範例 (英文)。
- 在 GitHub 上尋找更多範例 (英文)。
了解如何使用文件智慧服務範例標籤工具 (英文) 處理您的表單和文件。(部分機器翻譯)
完成 Document Intelligence 快速入門,並開始以您選擇的開發語言來建立文件處理應用程式。