前幾天,有一位用户使用OCR產品識別多欄論文後向我們詢問:要怎麼解決不合適的斷句、分段以及錯誤閲讀順序的問題?
我們用一個相似案例為大家直觀展示這位用户遇到的情況。
如圖中的多欄期刊,如果用OCR識別,或直接在一些辦公軟件對文字進行復制黏貼,我們就會得到右側的效果——按PDF排版而不是語義進行換行分段,對多欄文字直接從左向右排布,得到完全不通順的文字段落。
顯然這樣的效果是無法接受的。
於是,我們向用户推薦了文檔解析產品,建議在處理多欄文件時使用文檔解析來獲得更好的識別結果。
這是文檔解析的同一篇期刊論文輸出示例👇
可以看到,不論是自然段的劃分,還是閲讀順序,甚至換頁情況下的識別,都遵循了正確的閲讀習慣。 這正是我們在做文檔解析過程中關注的重點之一,也是解析產品和過往純OCR產品的不同之處:段落識別與閲讀順序還原。
今天,我們也想和大家聊聊,在Markdown Tester中,這個維度的指標是如何設計的。 再次指路我們的測評工具👉https://github.com/intsig/markdown_tester
段落維度的指標包含了段落識別率、召回率,指標的計算方式後文我們會進行展開説明。直觀上來説,段落識別能力指的是系統能夠識別和區分PDF文檔中的不同段落,理解每個段落的開始和結束。
而閲讀順序的還原能力指的是系統能夠根據PDF文檔的佈局和格式,推斷出人類閲讀時的順序,而不僅僅是機械地判定為從左至右排序。作為自然語言處理的利器,大模型需要的也正是與人類一致的閲讀順序,從預訓練、調整到對話應用,正確、優質的語料能為大模型提供良好的工作基礎。
在實際情況中,文檔智能應用場景往往包含着複雜的文檔佈局(如多欄、嵌套表格、不規則文本框等),正確識別段落和恢復閲讀順序是確保信息準確傳達的關鍵要素之一。
以目前對PDF解析需求量相當高的RAG開發和數據清洗兩個應用方向為例: 在RAG(Retrieval-Augmented Generation)系統中,正確的閲讀順序還原有助於系統理解文檔的邏輯結構和信息流,而正確的段落識別讓系統能更準確地定位到文檔中的關鍵信息段落,從而提高檢索的準確性和生成內容的相關性。在優秀解析能力的輔助下,RAG分塊(Chunking)策略也可以做進一步優化,用按段落分塊取代固定長度切分,避免把完整的段落文字“攔腰斬斷”、影響語義理解與生成的問題。
而在數據清洗和模型訓練過程中,解析工具能夠保持文檔的原始閲讀順序,段落識別則有助於將PDF文檔分割成更小的、語義上獨立的單元。這使得訓練數據更加結構化,對於訓練模型理解文檔的層次結構和內容組織至關重要,能有效提高模型的訓練效果、泛化能力和對複雜文檔的理解能力。
💡來看看我們的Markdown Tester如何評估這兩個維度的解析效果。 此處涉及4個指標:🌟平均閲讀順序指標=計算預測值和真值中,所有匹配段落的編輯距離(排版用正副標題) 編輯距離的概念,我們在上一期文章《聊聊文檔解析測評裏的表格指標》裏介紹過。(+鏈接) 它指的是,對給定的兩個字符串,最少要經歷多少次插入、刪除、替換操作,才能使兩個字符串完全一樣。 在閲讀順序指標中,我們應用同樣的概念對匹配段落進行檢測,在這一項中得分越高,意味着解析結果中的閲讀順序與實際越匹配、差異越小,也即還原效果越好。🌟段落識別率=段落匹配的個數(段落編輯距離小於0.2) / 預測出的總段落數 段落識別率指的是被正確識別的段落數量佔所有識別出的段落總數的百分比。 它測量的是段落解析夠不夠“準”。
舉一個比較直觀的例子來説明段落識別率和段落召回率分別代表的含義。 現在我們有一篇需要識別的短文,它有3個段落,分別為:
+----------------+
段1:開頭
+----------------+
+----------------+
段2:正文
+----------------+
+----------------+
段3:結尾
+----------------+
在解析過程中,段1、段2被正確識別,而段3被識別為了2個分開的段落。即解析結果為:
+----------------+
段1:開頭
+----------------+
+----------------+
段2:正文
+----------------+
+----------------+
段3:發展
+----------------+
+----------------+
段4:結尾
+----------------+
那麼,在這個案例中,段落識別率=2/4=50%。
段落識別率反映了產品正確識別段落的能力,即查準率。識別率越高,意味着系統在識別段落時的準確性越高。
🌟段落召回率=段落匹配的個數(段落編輯距離小於0.2)/ 總的段落數 段落召回率是指被識別到的相關段落數量佔實際總段落數的百分比。
它測量的是段落解析是不是“全”。 我們繼續看前面的短文案例,此處的段落召回率=2/3=66.67%。 簡單來説,就是原文的3個段落中裏,我們正確找到了其中的2個。
它衡量了解析產品在識別文檔時的查全率。召回率越高,意味着越能夠正確找到所有段落。🌟段落F1=2 (段落識別率 段落召回率) / (段落識別率 + 段落召回率) F1值是識別率和召回率的調和平均值,它綜合考慮了這兩個指標,用於評估文檔解析的整體性能。F1值越高,通常意味着文檔解析的性能越好。
本期,我們主要介紹了PDF解析中段落與閲讀順序相關的指標及重要性。
關於公式、標題的討論,我們也將繼續深入。之後,我們還會不斷擴充測評的維度、廠商,更好地滿足大家的需求。
歡迎各位開發者隨時給我們提出需求,包括但不限於對這個tester本身的優化建議,或者提供樣本找我們對比測試,甚至是指定產品做對比測試~ TextIn文檔解析產品目前正在內測計劃中,為每位用户提供每週7000頁的額度福利,關注公眾號《合研社》即可申領。 關於測評工具、產品或需求,都可以隨時找我們溝通。我們歡迎所有探討和交流!