共用方式為


使用範例標籤工具定型自訂模型

此內容適用於:文件智慧服務 v2.1 核取記號 v2.1

提示

在本文中,您會搭配使用文件智慧服務 REST API 與範例標籤工具,以手動標記的資料定型自訂模型。

必要條件

您需要下列資源以完成此專案:

  • Azure 訂用帳戶 - 建立免費帳戶
  • 擁有 Azure 訂用帳戶之後,請使用,在 Azure 入口網站中建立文件智慧服務資源,以取得您的金鑰和端點。 在其部署後,選取 [前往資源]
    • 您需要使用已建立資源的金鑰和端點,將應用程式連線至文件智慧服務 API。 您稍後會在快速入門中將金鑰和端點貼到程式碼中。
    • 您可以使用免費定價層 (F0) 來試用服務,之後可升級至付費層以用於實際執行環境。
  • 至少有六個相同類型的表單。 您會使用此資料來定型模型和測試表單。 您可使用範例資料集 (下載 sample_data .zip 並將其解壓縮) 來進行本快速入門。 將訓練檔案上傳至標準效能層級 Azure 儲存體帳戶中 Blob 儲存體容器的根目錄。

建立文件智慧服務資源

前往 Azure 入口網站,並使用建立新的文件智慧服務資源。 在 [建立] 窗格中,提供下列資訊:

專案詳細資料 描述
訂用帳戶 選取已獲存取權的 Azure 訂用帳戶。
資源群組 包含您資源的 Azure 資源群組。 您可建立新的群組或新增群組至先前已有的群組。
區域 Azure AI 服務資源的位置。 不同的位置可能會產生延遲,但是對於您資源的執行階段可用性沒有影響。
名稱 資源的描述性名稱。 建議您使用描述性名稱,例如 MyNameFormRecognizer
定價層 資源的成本取決於您選擇的定價層和您的使用量。 如需詳細資訊,請參閱 API 價格詳細資料
檢閱 + 建立 選取 [檢閱 + 建立] 按鈕,以在 Azure 入口網站上部署您的資源。

擷取金鑰和端點

當文件智慧服務資源完成部署後,您可以從入口網站中的 [所有資源] 清單尋找並選取該項資源。 您可以在 [資源管理] 下資源的 [金鑰和端點] 頁面上找到金鑰和端點。 在繼續進行之前,請先將這兩項儲存到暫存位置。

試試看

線上試用文件智慧服務範例標籤工具

您必須擁有 Azure 訂用帳戶 (免費建立帳戶) 和文件智慧服務資源端點和金鑰,才能試用文件智慧服務。

設定範例標籤工具

注意

如果儲存體資料位於 VNet 或防火牆後方,您必須在 VNet 或防火牆後方部署文件智慧服務範例標籤工具,並透過建立 系統指派的受控識別來授與存取權。

您會使用 Docker 引擎執行範例標籤工具。 請依照下列步驟來設定 Docker 容器。 如需 Docker 和容器基本概念的入門,請參閱 Docker 概觀 \(英文\)。

提示

OCR 表單標籤工具也可作為 GitHub 上的開放原始碼專案。 此工具是使用R eact + Redux 建立的 TypeScript Web 應用程式。 若要深入了解或參與,請參閱 OCR 表單標籤工具存放庫。 若要線上試用工具,請前往文件智慧服務範例標籤工具網站

  1. 首先,在主機電腦上安裝 Docker。 本指南說明如何使用本機電腦作為主機。 如果您想要在 Azure 中使用 Docker 主機服務,請參閱部署範例標籤工具操作指南。

    主機電腦必須符合下列硬體需求:

    容器 最小值 建議需求
    範例標記工具 2 核心,4 GB 記憶體 4 核心,8 GB 記憶體

    遵循您作業系統的適當指示,在電腦上安裝 Docker:

  2. 使用 docker pull 命令取得範例標籤工具容器。

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. 現在您已準備就緒,可使用 docker run 執行容器。

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    此命令讓範例標籤工具可透過網頁瀏覽器使用。 移至http://localhost:3000

注意

您也可以使用文件智慧服務 REST API,為文件新增標籤及定型模型。 若要使用此 REST API 進行定型和分析,請參閱使用 REST API 和 Python以標籤定型

設定輸入資料

首先,請確定所有訓練文件都有相同的格式。 如果您的表單有多種格式,請根據共同的格式將這些表單組織成子資料夾。 在定型時,您必須將 API 導向子資料夾。

設定跨網域資源共用 (CORS)

在您的儲存體帳戶上啟用 CORS。 在 Azure 入口網站中選取您的儲存體帳戶,然後選擇左窗格上的 [CORS] 索引標籤。 在底線上填入下列值。 在頂端選取儲存

  • 允許的原始來源 = *
  • 允許的方法 = [全選]
  • 允許的標頭 = *
  • 公開的標頭 = *
  • 存留期上限 = 200

Azure 入口網站中的 CORS 設定

連線到範例標籤工具

範例標籤工具會連線到來源 (您的原始上傳表單) 和目標 (建立的標籤和輸出資料)。

您可以跨專案設定和共用連線。 連線會使用可延伸提供者模型,因此您可以輕鬆地新增來源/目標提供者。

若要建立新的連線,請選取左側瀏覽列中的新增連線 (插頭) 圖示。

在欄位中填入下列值:

  • 顯示名稱 - 連線的顯示名稱。

  • 描述 - 您的專案描述。

  • SAS URL - Azure Blob 儲存體容器的共用存取簽章 (SAS) URL。 若要擷取自訂模型訓練資料的 SAS URL,請移至 Azure 入口網站中的儲存體資源,然後選取 [儲存體總管] 索引標籤。導覽至您的容器、按一下滑鼠右鍵,然後選取 [取得共用存取簽章]。 務必取得您容器的 SAS,而不是儲存體帳戶本身的 SAS。 確定 [讀取]、[寫入]、[刪除] 和 [列出] 權限均已核取,然後按一下 [建立]。 然後,將 [URL] 區段中的值複製到暫存位置。 其格式應該為:https://<storage account>.blob.core.windows.net/<container name>?<SAS value>

    擷取 SAS URL

範例標籤工具的連線設定。

建立新專案

在範例標籤工具中,專案會儲存您的組態和設定。 建立新的專案,並在欄位中填入下列值:

  • 顯示名稱 - 專案的顯示名稱
  • 安全性權杖 - 某些專案設定可能會包含敏感值,例如金鑰或其他共用密碼。 每個專案都會產生可用於加密/解密敏感專案設定的安全性權杖。 您可以選取左側瀏覽列底部的齒輪圖示,在 [應用程式設定] 中找到安全性權杖。
  • 來源連線 - 您在先前的步驟中建立而要在此專案中使用的 Azure Blob 儲存體連線。
  • 資料夾路徑 - 選擇性 - 如果您的來源表單位於 Blob 容器的資料夾中,請在此處指定資料夾名稱
  • 文件智慧服務 URI - 您的文件智慧端點 URL。
  • 索引鍵 - 您的文件智慧服務索引鍵。
  • 描述 - 選擇性 - 專案描述

範例標籤工具上的新增專案頁面。

為表單加上標籤

當您建立或開啟專案時,主要的標籤編輯器視窗隨即開啟。 標籤編輯器由三個部分組成:

  • 可調整大小的 v3.0 窗格,其中包含來自來源連線的可捲動表單清單。
  • 可讓您套用標籤的主要編輯器窗格。
  • 可讓使用者修改、鎖定、重新排列和刪除標籤的標籤編輯器窗格。

識別文字和資料表

選取左窗格上的 [Run Layout on unvisited documents] (在未瀏覽的文件上執行版面配置),以取得每個文件的文字和表格版面配置資訊。 標籤工具會在每個文字元素周圍繪製週框方塊。

標籤工具也會顯示已自動擷取哪些資料表。 若要查看已擷取的資料表,請選取文件左側的資料表/格線圖示。 由於本快速入門中會自動擷取資料表內容,因此我們不會為資料表內容加上標籤,而是會仰賴自動化擷取。

範例標籤工具中的資料表視覺效果。

在 v2.1 中,如果您的定型文件未填入值,您可以繪製應該有值的方塊。 使用視窗左上角的 [繪圖區域] 讓該區域可標記。

將標籤套用至文字

接下來,您會建立標記 (標籤),並將其套用至要讓模型分析的文字元素。

  1. 首先,使用標記編輯器窗格建立您要識別的標記。
    1. 選取 + 以建立新標記。
    2. 輸入標記名稱。
    3. 選取 Enter 以儲存標記。
  2. 在主要編輯器中,從醒目提示的文字元素或您繪製的區域選取字組。
  3. 選取您要套用的標記,或按對應的鍵盤按鍵。 數字鍵會指派為前 10 個標記的快速鍵。 您可以使用標籤編輯器窗格中的向上和向下箭號圖示來重新排序標籤。
  4. 請遵循上述步驟,至少為五個表單加上標籤。

    提示

    當您要標記表單時,請記住下列秘訣:

    • 您只能對每個選取的文字元素套用一個標記。
    • 每個標記只能在每頁套用一次。 如果某個值在相同表單上出現多次,請為每個執行個體建立不同的標記。 例如:"invoice# 1"、"invoice# 2" 等等。
    • 標記不能跨越頁面。
    • 標示出現在表單上的值;請勿嘗試將值分割成具有兩個不同標記的兩個部分。 例如,位址欄位應該以單一標記標示,即使其橫跨多行也一樣。
    • 請勿在標記的欄位中包含索引鍵,只能包含值。
    • 系統應會自動偵測資料表資料,而且將會在最終輸出 JSON 檔案中提供。 不過,如果模型無法偵測所有資料表資料,您也可以手動標記這些欄位。 以不同的標籤標記資料表中的每個資料格。 如果您的表單具有不同資料列數目的資料表,請務必標記至少一個具有最大可能資料表的表單。
    • 使用 + 右邊的按鈕來搜尋、重新命名、重新排序和刪除您的標記。
    • 若要移除已套用的標記,而不刪除標記本身,請在文件檢視上選取加上標記的矩形,然後按下 Delete 鍵。

範例標籤工具的主要編輯器視窗。

指定標記值類型

您可以為每個標記設定預期的資料類型。 開啟標記右邊的捷徑功能表,然後從功能表中選取類型。 這項功能可讓偵測演算法做出改善文字偵測精確度的假設。 也能確保在最終 JSON 輸出中,會以標準化格式傳回偵測到的值。 值類型資訊會儲存在 fields.json 檔案中,其路徑與您的標籤檔案相同。

範例標籤工具的值類型選取

目前支援下列值類型和變化:

  • string

    • 預設值、no-whitespacesalphanumeric
  • number

    • 預設值、currency
    • 已格式化為浮點值。
    • 範例:文件上的 1234.98 會在輸出時格式化為 1234.98
  • date

    • 預設值、dmymdyymd
  • time

  • integer

    • 已格式化為整數值。
    • 範例:文件上的 1234.98 會在輸出時格式化為 123498。
  • selectionMark

注意

請參閱適用於日期格式的規則:

您必須指定格式 (dmymdyymd),才可使用日期格式。

下列字元可以做為日期分隔符號:, - / . \。 空白字元不能用來作為分隔符號。 例如:

  • 01,01,2020
  • 01-01-2020
  • 01/01/2020

日和月可以各寫為一位或兩位數字,而年可以是兩位或四位數字:

  • 1-1-2020
  • 1-01-20

如果日期字串有八位數字,分隔符號為選用:

  • 01012020
  • 01 01 2020

月份也可以寫為完整名稱或簡短名稱。 如果使用名稱,則分隔符號是選用字元。 不過,此格式辨識起來可能不如其他格式正確。

  • 01/Jan/2020
  • 01Jan2020
  • 01 Jan 2020

為資料表加上標籤 (僅限 v2.1)

有時候,您的資料可能更適合標記為資料表,而不是索引鍵/值組。 在此情況下,您可以選取 [Add a new table tag] (新增資料表標記) 來建立資料表標記。 根據文件指定資料表具有固定數目的資料列或可變數目的資料列,並定義結構描述。

設定資料表標記。

定義資料表標記之後,請標記儲存格值。

為資料表加上標籤。

定型自訂模型

若要開啟 [定型] 頁面,請選擇左窗格上的定型圖示。 然後,選取 [定型] 按鈕以開始定型模型。 定型程序完成後,您會看到下列資訊:

  • 模型識別碼 - 已建立並定型之模型的識別碼。 每個定型呼叫都會以本身的識別碼建立新的模型。 請將此字串複製到安全之處;如果您想要透過 REST API用戶端程式庫指南進行預測呼叫,就會需要此字串。
  • 平均精確度 - 模型的平均精確度。 您可以新增和標記更多表單,然後重新定型以建立新的模型,藉此改善模型精確度。 建議您先為五個表單加上標籤,然後再視需要新增更多表單。
  • 標籤的清單,以及每個標籤的預估精確度。

定型檢視。

定型完成後,請查看 [平均精確度] 值。 如果該值偏低,您應新增更多輸入文件,並重複標籤步驟。 您已加上標籤的文件會保留在專案索引中。

提示

您也可以使用 REST API 呼叫來執行定型程序。 若要了解其執行方法,請參閱使用 Python 以標籤定型

撰寫已定型的模型

使用「模型撰寫」時,您最多可以將 200 個模型撰寫為單一模型識別碼。 當您使用已撰寫的 modelID 呼叫分析時,文件智慧服務會對您所提交的表單分類,選擇最相符的模型,再傳回該模型的結果。 當傳入表單可能屬於數個範本的其中一個時,此作業會很有用。

  • 若要在範例標籤工具中撰寫模型,請從導覽列中選取 [模型撰寫 (合併箭號)] 圖示。
  • 選取您想要一起撰寫的模型。 具有箭號圖示的模型是已經撰寫好的模型。
  • 選擇 [撰寫] 按鈕。 在快顯中,為新撰寫的模型命名,然後選取 [撰寫]
  • 當作業完成時,新撰寫的模型應該就會出現在清單中。

模型撰寫 UX 檢視。

分析表單

若要測試您的模型,請從導覽列中選取 Analyze 圖示。 選取來源 [本機檔案]。 瀏覽檔案,並從您在測試檔案夾中解壓縮的範例資料集中選取檔案。 然後選擇 [執行分析] 按鈕,以取得表單的索引鍵/值組、文字和資料表預測。 此工具會將標籤套用至周框方塊中,並報告每個標籤的信賴度。

分析自訂表單視窗的螢幕擷取畫面

提示

您也可以使用 REST 呼叫來執行 Analyze API。 若要了解其執行方法,請參閱使用 Python 以標籤定型

改善結果

根據報告的精確度,您可以進一步定型以改善模型。 完成預測後,請查看每個套用標籤的信賴值。 如果平均精確度的定型值很高,但信賴分數很低 (或結果不正確),請將預測檔案新增至定型集,並為其加上標籤,然後再次定型。

如果所分析的文件與用於定型的文件不同,則報告的平均精確度、信賴分數和實際精確度可能會不一致。 請注意,有些文件在常人看來會是類似的,但 AI 模型則會看出其不同之處。 例如,假設您使用具有兩種變化的表單類型來定型,其中,定型集由 20% 的變化 A 和 80% 的變化 B 所組成。在預測期間,變化 A 文件的信賴分數可能會較低。

儲存專案並於稍後繼續執行

若要另擇時間或在另一個瀏覽器中繼續執行專案,您必須儲存專案的安全性權杖,並於稍後重新輸入。

取得專案認證

移至您的專案設定頁面 (滑杆圖示),並記下安全性權杖名稱。 然後,移至您的應用程式設定 (齒輪圖示),此處會顯示目前瀏覽器執行個體中的所有安全性權杖。 找出專案的安全性權杖,並將其名稱和金鑰值複製到安全的位置。

還原專案認證

想要繼續執行專案時,您必須先建立對相同 Blob 儲存體容器的連線。 若要這樣做,請重複上述步驟。 然後,移至應用程式設定頁面 (齒輪圖示),並確認您專案的安全性權杖位於該處。 如果不在該處,請新增安全性權杖,並以其覆寫先前步驟中的權杖名稱和金鑰。 選取 [儲存] 以保留您的設定。

繼續執行專案

最後,前往主頁面 (房屋圖示),然後選取 [開啟雲端專案]。 接著,選取 Blob 儲存體連線,再選取專案的 .fott 檔案。 應用程式具有安全性權杖,因此會載入所有專案的設定。

下一步

在本快速入門中,您已瞭解如何使用文件智慧服務範例標籤工具,以手動標記的資料將模型定型。 如果您想要建置自己的公用程式來為定型資料加上標籤,請使用處理已加上標籤資料定型的 REST API。