Google解釋了雲端服務Document AI,用來解析發票的技術,這項技術發表於電腦語言學會年會ACL 2020中,Google提出一種可從各式單據擷取結構化資料的方法,而這與之前從純文字檔文件擷取資料的方法不同,新方法將單據可能出現的欄位類型納入考量,因此能良好地擷取單據上的內容。

企業有不少工作流程需要處理收據、帳單以及報價單等單據,目前仍有不少企業仰賴人工操作,Google以發票為例提到,發票樣式很多種,不同企業甚是企業不同部門所開出的發票,各自布局都略有不同,但發票包含的結構化資訊,諸如發票編號、日期和金額等又大致相同,而自動化可以解決人工處理容易發生錯誤的缺點,且可大幅提高工作流程的效率。

之所以處理單據文件很困難,Google解釋,因為擷取單據資訊,除了需要運用自然語言處理技術之外,還跨了電腦視覺領域,跟典型的自然語言處理任務不同,單據中不會有句子和段落這類自然語言形式存在,單據資料通常是以表格的形式呈現,通常具有多頁面和多段落的特性,並以各種布局和格式組織資訊。要處理這類資料,Google提到,關鍵是需要理解二維文字布局,但又不能以純粹的影像分割方式處理,否則又難以運用文字語意的資訊。

Google的新方法讓開發者可以使用兩種輸入來訓練擷取系統,分別是目標結構(Schema)以及帶有標籤的文件集,目標結構是指需要擷取的欄位列表和其類型,支援的欄位類型包括日期、整數、字母數字組合、金額、電話號碼和URL。

輸入的文件要先經過OCR服務,擷取文字和布局資訊,接著以候選生成器,辨識文字範圍可能對應的欄位,候選生成器會使用預先建立的欄位類型庫,關聯像是日期、號碼和電話號碼等資訊,並使用神經網路Scorer來估算擷取項目的分數,在預設情況下,目標欄位就是獲得最高分的候選者,例如日期資訊就擷取單據上獲得Scorer評分最高分的項目,不過,在特定情況,也會考量順序等因素。

Scorer是一個二元分類器,將目標欄位和候選項目作為輸入,產生0到1之間的分數,Scorer會學習在向量空間表示每個目標欄位以及候選項目的方法,當目標欄位在向量空間和候選項目越相近,則候選項目為目標欄位的機率越大。

為了實驗方法的可靠性,Google使用了具多種布局的發票資料集,證明該模型可對大多數欄位運作良好,不過偵測寄送日期(delivery_date)的準確度表現較差,Google提到,原因是他們訓練集中,只有一小部分的資料存在這個欄位,因此需要更多的訓練資料來改進該欄位準確度。


Advertisement

更多 iThome相關內容