智慧文件處理(Intelligent Document Processing ,簡稱 IDP )是來也科技智慧自動化平臺的核心能力之一。IDP 基於光學字元識別(OCR)、計算機視覺(CV)、自然語言處理(NLP)、知識圖譜(KG)等前沿技術,對各類文件進行識別、分類、抽取、校驗等處理,幫助企業實現文件處理工作的智慧化和自動化。
IDP 最常見的應用場景之一是從各種型別的文件中抽取關鍵資訊,本文介紹機器學習在文件資訊抽取中的應用。
背/景
企業中存在大量需要從文件中抽取資訊並進行處理的業務場景,例如從發票、報銷單、發貨單等不同型別的文件中抽取所需欄位,進行錄入、校驗、比對等操作。因此,文件資訊抽取是智慧文件處理平臺的核心能力之一。通常情況下,文件資訊抽取需要用到機器學習技術。我們知道,訓練一個機器學習模型需要一定規模的標註資料,在文件資訊抽取任務下訓練機器學習模型面臨兩個挑戰。
第一,文件的型別繁多,即便是同一個型別的文件,其版式也可能存在多種。下面是幾個中文完稅證明的例子,我們可以發現,它們雖然都是完稅證明,但版式差別很大,尤其體現在明細表格部分,表格的欄位數量、欄位順序都不太一樣。這意味著,如果使用傳統的方法,需要訓練多個機器學習模型才能滿足不同版式資訊抽取的需求。
第二,很多文件型別是企業特有的,也就是說我們很難提前收集到資料並訓練好模型,而是需要基於企業特有的文件資料,在小樣本下訓練出可用的模型,否則模型的訓練成本太高。下面是幾個英文發票(Invoice)的例子,我們可以發現它們不僅版式不同,而且每一類的數量都不多。
本文中,我們介紹來也科技 IDP 平臺中用到的文件資訊抽取方法,該方法充分利用文件的視覺特徵和語義特徵,能夠在較少樣本的情況下訓練出效果很好的模型,且具備較強的泛化能力,從而快速滿足企業中多種文件資訊抽取的需求。
技/術/方/案
我們的技術方案以 OCR 識別的結果作為輸入,充分利用視覺和語義資訊建模,在低成本(標註資料少、資源佔用少)的情況下完成文件資訊抽取任務。該方案將 OCR 和資訊抽取完全解耦合,這樣設計有兩個優點:
OCR 和資訊抽取相互不受影響,可以分別進行最佳化。
同一個 OCR 引擎可以對接不同的資訊抽取模型;同理,同一個資訊抽取模型也可以對接不同的 OCR 引擎,以滿足不同場景下的需求。
OCR 引擎完成識別和預處理後,由三個子任務構成完整的 pipeline ,如下圖所示。下面我們分別介紹。
1.文字塊序列化
這個任務的目的是將 OCR 識別到的文字塊,按正常的閱讀順序重新進行排列,解決內容折行、資料分組的問題。
如在下面的完稅證明示例中,稅收詳情中存在較多的內容折行, OCR 識別引擎通常會按從左到右、從上到下的順序返回。如圖中所示,OCR輸出的文字塊的順序為圖上標識的數字(1、2、3……11),顯然這個順序既不符合閱讀順序,也會打亂語義和排版資訊。如果不進行調整,會導致模型無法準確的得到正確的語義資訊和結構資訊。
透過上述的例子可以發現,文字序列化任務和具體文件型別基本無關,因此我們可以透過大量標註資料訓練一個通用的文字塊序列化模型,在其他專案中直接使用,降低專案啟動的代價。以下是經過文字塊序列化模型重排序後的順序,在這個排序基礎上進行一定的後處理,我們就可以還原出文檔中的欄位。
2.文字塊分類
對文字塊進行序列化之後,我們的下一個任務是利用文字分類的方法獲得每個文字塊對應的標籤,即每個文字塊屬於哪個待抽取的欄位。在這個任務中,我們將每個 OCR 輸出的文字塊作為獨立的分類目標,利用多分類的方法獲得每個文字塊對應的資訊標籤。透過文字塊的文字語義、空間位置、上下文關係、排版格式等視覺特徵,使用統計模型進行建模並訓練文字塊分類模型。以下是文字塊分類模型用到的主要特徵:
語義特徵:利用文字塊包含的文字資訊生成的特徵;
空間位置:利用文字塊在文件上的位置,以及和其他文字塊的相對位置關係;
排版格式:利用文件的各種排版資訊,如表格、列表等。
3.抽取結果組裝
透過使用以上兩個子任務的輸出結果,我們就可以進行最終的抽取結果組裝。以下面這個資料為例,抽取結果組裝主要解決兩類問題:
文字換行
如在上述完稅證明示例中,稅款所屬稅務機構這列內容中“國家稅務總局”和“xx市稅務局”因為換行的原因被切分為了兩個文字塊,我們可以依據他們有相同的分類標籤(文字塊分類結果)、緊鄰的順序(文字塊序列化結果)、上下的位置關係,將其判定為同一個欄位進行合併,得到最終的資訊抽取結果:
field:稅款所屬稅務機構;value:國家稅務總局xx市稅務局。
資料關聯
在完稅證明的示例中,稅務具體資訊的多個欄位是存在關聯關係的,如果直接將這些欄位的識別結果進行輸出,會丟失其中的關係,難以在下游任務中使用。透過文字塊序列化的輸出結合位置資訊,自動將有關聯關係的欄位進行組裝,為下游任務提供欄位之間的關係資訊。上述例子經過資料關聯後的最終輸出為(JSON格式):
效/果/評/估
為了驗證上述文件資訊抽取方案的效果,我們選擇了“中文完稅證明”和“英文發票”兩個資料集進行測試。
資料集介紹
中文完稅證明
如第一節中樣本所示,全國各個省市的完稅證明版式存在較大差異,但待抽取的欄位基本相同。我們從中文完稅證明中抽取 15 個欄位:發票號碼、填發日期、稅務機關、納稅人識別號、納稅人名稱、稅款所屬時期、原憑證號、稅種、品目名稱、實繳(退)金額、大寫金額、總金額、填票人、備註資訊、入(退)庫日期。我們共使用 12 個版式共 98 張完稅證明進行模型訓練,在 33 張樣本上進行評測。
*以下為完稅證明資訊抽取輸出的示例:
英文發票
如第一節中樣本所示,我們從英文發票中抽取 15 個欄位:發票號碼、發行日期、買家姓名、買家地址、產品專案No.、產品明細、數量明細、產品單價、總額明細、稅額合計、含稅總額、付款方式、採購訂單號、到期日、折扣合計。共使用 34 個版式共 294 張進行模型訓練,在 90 張樣本上進行評測。
*以下為英文發票資訊抽取輸出的示例:
模型整體效果
首先,我們針對上述兩個資料集,分別測試模型的整體效果,即模型抽取的準確率、召回率和 F1 值。可以看到我們的方法在兩個資料集上都能取得約 0.95 的 F1 值。
*F1 值:準確率及召回率的綜合評價指標,越趨近於 1 則表明演算法或模型越佳
模型在小樣本下的效果
最後,我們用模型從未見過的文件來測試模型的泛化能力,並用極少量的該類文件重新訓練模型,對比原模型和新模型的效果。我們在中文完稅證明模型上進行上述實驗,結果如下:
可以發現,在遇到全新版式的資料時,原模型的效果並不理想, F1 值在 0.5 以下。此時,我們只需要補充 5 張資料重新訓練模型,就可以迅速改善模型在新版式上的效果,將 F1 值提升到 0.93 以上。這充分說明,模型有一定的泛化能力,只需原模型的基礎上用極少量樣本即可適應新的版式。
來也科技 IDP 平臺提供強大的文件資訊抽取能力,它透過使用視覺和語義資訊進行建模,在處理類似發票、證件、發貨單、完稅證明等文件資訊抽取任務時,只需極低的標註成本,就能達到非常好的效果。在遇到新資料格式帶來的 badcase 時,透過少量的標註干預,即可有效的提升效果,讓文件處理的自動化變得更加容易。對來也科技 IDP 平臺以及文件資訊抽取能力感興趣的朋友,可點選歡迎申請試用來也科技產品,或登陸來也科技官網檢視更多資訊。