Azure Form Recognizer 能夠自動將手寫或是列印的文字,轉換為可複製修正的文字檔。而這也是文件自動化的重要關鍵,不僅能夠處理大量的資料,也能維持 24 小時運作,讓企業服務不中斷。
如今 Azure 的 Form Recognizer 也從 v2 升至 v3,不僅支援更多預訓練模型和語言,同時也提供 Form Recognizer Studio 的操作介面,連結 Azure 的儲存體服務不須再透過 SAS 來連結,相較於過往的標籤工具 Form Recognizer Sample Tool 在操作方面更為簡易。
因此本篇將帶讀者了解如何運用 Azure 的 Form Recognizer Studio,快速擷取紙本資料。文件標籤、模型訓練、端點部署以及使用 Python SDK 進行端點預測,皆會在本文介紹。
一、情境假設
情境假設如下:小明是某間科技公司的人資,雖然該公司並沒有使用 104 平台徵才,但許多應徵者都是傳 104 的制式簡歷。為了不要錯過任何一個優秀人才,小明也會查閱這些履歷。然而履歷數量過多,他希望能自動化處理履歷中的欄位,尤其是學歷的部分,需要與 Python 後端串接,方便將學歷進行分類儲存。
二、訓練文件(圖片或 PDF)資料準備
為了能訓練模型來滿足小明的需求。首先需將文件資料上傳至 Azure 的儲存體帳戶,如此一來才可以作為表格辨識器的訓練資料來源。
1.建立儲存體帳戶
進入儲存體帳戶的服務後點選「建立」。如沒有特殊需求,僅需命名儲存體帳戶名稱就可以點選「檢閱+建立」。由於本篇只是示範,備援僅選擇LRS。詳細的規格與計費可參照官網。
2.建立容器
點選我們剛創建的儲存體帳戶,之後再點選旁邊欄的「容器」
進入之後只會有一個 $logs 的容器,這是 Azure 內建的。我們需要自行建立新的容器來儲存文件資料。點選上方的「+容器」,替新容器命名後,其餘選項無須更動就可以點選「建立」。
3.上傳資料
點選剛創建的新容器,「上傳」我們要用來訓練的文件資料,最好要有 5 個以上的訓練樣本。
4.資源共用(CORS)設定
由於等會要用到 Azure 的表格辨識器,因此我們需要更改 CORS 設定,讓表格辨識器可以讀寫容器內的文件。
因此需要回到我們創建的儲存體帳戶,點選資源共用(CORS)
進入後按照下圖的參數進行設定,「允許來源」、「允許的標題」、「公開的標題」都設定「*」,「允許的方法」則全選,「存留期上限」為 200。設定完之後記得要「儲存」。
三、資料標籤與模型訓練
接下來就要進到本文的重點,該如何透過表格辨識器進行資料標籤並訓練模型。
1.建立表格辨識器服務
從 Azure Portal 點選表格辨識器,之後點選建立便會出現表單選項。由於我們只是示範因此 Pricing tier 僅選擇 F0(免費,每個月有 500 頁的額度),規格和費用可以參照官網。
2.開啟 Form Recognizer Studio
我們所使用的 Form Recognizer Studio 為v3,能夠更好的整合表格辨識器和儲存體帳戶。
進入 Form Recognizer Studio,下滑點選 Custom form。
點選 Create a project,之後就依照資源名稱進行填寫,填寫完畢就可以創建Project 。
完成後容器中所放的文件就會出現在 Label data。
3.標籤所要擷取的文字範圍
由於辨識出來的實體除了文字外,還有表格和勾選方格,因此我們須點選多重菱形的圖示,取消勾選表格和勾選方格,才能擷取到正確的文字。
我們的目標是要抓取學校,因此將學校的欄位也就是國立中央大學進行圈選。
被圈選的文字會反綠並彈出輸入框,我們將命名欄位填寫為 school,之後再選擇 Field 便會將這個位置的國立中央大學標記為 school。
標記完結果如下,接著以此類推將其他文件標記完。
4.模型訓練與評估
標記完點選右上角的 Train,命名模型名稱就能建立模型。等待模型建立完成後,點選模型就可以看到準確率。
因為我們的訓練資料只有 5 份,因此準確率 0.8 算是不錯的表現。如果資料量越大,預測效果也會更加準確。
5.測試預測結果
之後點選 Test,進入介面後點選 Add 就能上傳新的履歷。上傳後點選 Analyze就能得到測試結果。
結果也準確預測出新履歷的學歷,可信度高達 0.939。
四、使用 Python SDK 進行預測
最後小明希望能自動分類學歷,這就需要與透過 Python 來呼叫端點。我們的程式碼則在此,程式碼主要參考自 Azure 官方網站,環境為 Google Colab。
1.套件安裝
因為我們使用的 DocumentAnalysisClient 為測試版,因此須依照以下指令安裝套件。詳情可看 Github 討論
!pip install azure-ai-formrecognizer –pre –upgrade
2.金鑰端點
endpoint, key 分別為端點和金鑰 1,這些都可以在表格辨識器的概觀介面底下找到。
3.預測結果
上圖就是我們的預測結果,可信度為 0.939 與 FormRecognizer 的結果一致。 如此一來 Azure 的表格辨識器,就能有效減少小明的作業負擔。
五、總結
隨著 AI 技術的進步,中文字體預測的準確度也隨之上升,減少過去對於預測品質不佳的疑慮。現在 Form Recognizer 也被廣泛應用於不同場景,像是企業內部的文件處理、零售業的海關表單分析或是財務的收據分析。
當然中文的 Form Recognizer 不只是 Azure 有提供,像是使用 Google Cloud Platform 的客戶,也可透過 DocumentAI 來實做。如果有興趣使用的客戶也歡迎來信諮詢。