十大PDF解析工具在不同文檔類別中的比較研究

十大PDF解析工具總結

PDF解析對于包括文檔分類、信息提取和檢索在內的多種自然語言處理任務至關重要,尤其是RAG的背景下。盡管存在各種PDF解析工具,但它們在不同文檔類型中的有效性仍缺乏充分研究,尤其是超出學術文檔范疇。通過使用DocLayNet數據集,比較10款流行的PDF解析工具在6種文檔類別中的表現,以填補這一空白。這些工具包括PyPDF、pdfminer.six、PyMuPDF、pdfplumber、pypdflum2、Unstructured、Tabula、Camelot以及基于深度學習的工具Nougat和Table Transformer(TATR)。

對于基于深度學習的相關技術方法,筆者在前期介紹了完整的技術鏈路,可以參考《文檔智能專欄(點擊跳轉)》

對于對pdf解析質量要求不高并且要求速度比較快的場景,基于規則引擎的相關pdf parser工具可以依舊滿足相關業務場景,那么該如何選擇pdf解析工具呢?

pdf解析的挑戰

  • 復雜性:PDF解析面臨多個挑戰,包括單詞識別、詞序保持、段落完整性以及表格提取等。這些挑戰要求解析工具能夠準確地識別和處理文檔中的各種元素。
  • 技術需求:PDF解析方法可以分為基于規則的方法和基于深度學習的方法。基于規則的方法通常在計算效率和部署速度上具有優勢,而基于學習的方法在處理復雜文檔時表現出色。

本文通過比較10種流行的PDF解析工具在6種不同文檔類別上的表現,提供對工具性能的全面評估。供參考。

評估方法

常見公開評測數據集

評測數據集

DocLayNet 是一個包含約80,000個文檔頁面的大型數據集,文檔被標注為11種不同的元素(如腳注、公式、列表項、頁腳、頁眉、圖片、節頭、表格、文本和標題)。這些文檔分為六個不同的類別:財務報告、手冊、科學文章、法律法規、專利和政府招標。

類別分布情況

文檔主要用英語標注(95%),少量用德語(2.5%)、法語(1%)和日語(1%)。為了確保標注的高質量和可靠性,大約7,059個文檔進行了雙重標注,1,591個文檔進行了三重標注。

評估指標

并使用多種評估指標進行比較,包括F1分數、BLEU分數和局部對齊分數。

在文檔中,評估策略特別關注于文本提取的質量,尤其是當涉及到復雜的文檔結構和內容時。以下是如何結合具體的公式和評估指標來詳細講解評估策略:

文本提取的評估策略

1.Levenshtein 相似性

L s ( s 1 , s 2 ) = 1 ? L d ( s 1 , s 2 ) max ? ( l 1 , l 2 ) L_s(s_1, s_2) = 1 - \frac{L_d(s_1, s_2)}{\max(l_1, l_2)} Ls?(s1?,s2?)=1?max(l1?,l2?)Ld?(s1?,s2?)?

2.F1 分數

3.BLEU 分數

B L E U = B P ? exp ? ( ∑ n = 1 N w n log ? p n ) BLEU = BP \cdot \exp\left(\sum_{n=1}^{N} w_n \log p_n\right) BLEU=BP?exp(n=1N?wn?logpn?)

4.局部對齊分數

局部對齊分數用于評估文本提取的整體質量,特別是在處理復雜布局和段落結構時。局部對齊通過尋找兩個字符串中最相似的子串來實現,使用匹配得分、不匹配和間隙懲罰來計算相似性。

表格檢測評價指標

使用交并比(IoU)來比較解析器提取的表格與GT表格的相似性。如果解析器不提供邊界框信息,則使用Jaccard系數計算檢測的精確度和召回率。

IoU = ∣ A ∩ B ∣ ∣ A ∪ B ∣ \text{IoU} = \frac{|A \cap B|}{|A \cup B|} IoU=ABAB?

評測工具

工具名稱功能技術輸出格式特點
PyPDF提取文本、圖像和元數據基于規則 (RB)TXT成熟的純 Python 庫,處理多種 PDF 操作
pdfminer.six提取文本、圖像、目錄、字體大小基于規則TXT、HTML、hOCR、JPG多功能,支持 CJK 語言和垂直書寫
PDFPlumber提取文本和表格基于規則 (基于 pdfminer)TXT、HTML、hOCR、JPG提供可視化調試工具,提取過程便捷
PyMuPDF提取文本、表格和圖像基于規則 (MuPDF),可選 OCRTXT、HTML、SVG、JSONPython 綁定,處理復雜文檔布局
pypdfium2提取文本基于規則TXT輕量級庫,專注文本提取
Unstructured預處理和攝取圖像及文本文檔基于規則,支持 OCRTXT支持元素級文本和表格提取
Tabula提取表格基于規則DataFrame、CSV、JSONPython 包裝器,使用 tabula-java
Camelot提取表格基于規則DataFrame、CSV、JSON、HTML靈活配置,支持流模式和格子模式
Nougat提取文本基于 TransformerMarkdown深度學習模型,專為學術文檔訓練
Table Transformer (TATR)檢測表格基于 Transformer圖像對象檢測模型,訓練于 PubTables-1M 等

評測結論

種PDF解析庫進行了全面比較

  • 文本提取結論
    在財務、招標、法律法規和手冊類別中,大多數工具表現較好,PyMuPDF和pypdfium在這些類別中表現尤為突出。在科學和專利類別中,所有工具的表現均有所下降。PyMuPDF和pypdfium在專利類別中表現相對較好,但科學類別仍然是一個挑戰。Nougat作為一個基于視覺變換器的模型,在科學文檔的文本提取中表現出色。Nougat在科學文檔中表現優于所有基于規則的工具。

  • 表格檢測結論
    評估了四種基于規則的PDF表格提取工具(Camelot、pdfplumber、PyMuPDF、Tabula)和一個基于Transformer的模型(TATR)在表格檢測任務中的表現。規則工具在特定文檔類型中表現良好,但在其他類別中表現不佳。Camelot在政府招標類別中表現最佳,Tabula在手冊、科學和專利類別中表現較好。TATR在所有類別中表現出較高的召回率和一致性。在科學、財務和招標類別中,TATR的召回率較高,顯示出其在處理復雜表格結構時的優勢。

總結

其實,全文看下來,這個評測的粒度還是比較粗的,但是其中的對于基于規則的pdf parser工具結論還是值得看一看的。在具體的業務場景中,選擇合適的解析工具需要考慮文檔類型和具體任務的需求。

參考文獻:A Comparative Study of PDF Parsing Tools Across Diverse
Document Categories,https://arxiv.org/pdf/2410.09871v2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75513.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HarmonyOS-ArkUI 裝飾器V2 @ObservedV2與@Trace裝飾器

參考文檔: 文檔中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/arkts-new-observedv2-and-trace-V14#trace%E8%A3%85%E9%A5%B0%E5%AF%B9%E8%B1%A1%E6%95%B0%E7%BB%84由于V2的裝飾器比V1的裝飾器更加易用,盡管學習的過程中用到的都是V1的裝飾器,但…

GPT - GPT(Generative Pre-trained Transformer)模型框架

本節代碼主要為實現了一個簡化版的 GPT(Generative Pre-trained Transformer)模型。GPT 是一種基于 Transformer 架構的語言生成模型,主要用于生成自然語言文本。 1. 模型結構 初始化部分 class GPT(nn.Module):def __init__(self, vocab…

基于FPGA的六層電梯智能控制系統 矩陣鍵盤-數碼管 上板仿真均驗證通過

基于FPGA的六層電梯智能控制系統 前言一、整體方案二、軟件設計總結 前言 本設計基于FPGA實現了一個完整的六層電梯智能控制系統,旨在解決傳統電梯控制系統在別墅環境中存在的個性化控制不足、響應速度慢等問題。系統采用Verilog HDL語言編程,基于Cyclo…

車載通信系統中基于ISO26262的功能安全與抗輻照協同設計研究

摘要:隨著智能網聯汽車的快速發展,車載通信系統正面臨著功能安全與抗輻照設計的雙重挑戰。在高可靠性要求的車載應用場景下,如何實現功能安全標準與抗輻照技術的協同優化,構建滿足ISO26262安全完整性等級要求的可靠通信架構&#…

Node.js種cluster模塊詳解

Node.js 中 cluster 模塊全部 API 詳解 1. 模塊屬性 const cluster require(cluster);// 1. isMaster // 判斷當前進程是否為主進程 console.log(是否為主進程:, cluster.isMaster);// 2. isWorker // 判斷當前進程是否為工作進程 console.log(是否為工作進程:, cluster.isW…

融合動態權重與抗刷機制的網文評分系統——基于優書網、IMDB與Reddit的混合算法實踐

? Yumuing 博客 🚀 探索技術的每一個角落,解碼世界的每一種可能! 💌 如果你對 AI 充滿好奇,歡迎關注博主,訂閱專欄,讓我們一起開啟這段奇妙的旅程! 以權威用戶為核心,時…

使用Golang打包jar應用

文章目錄 背景Go 的 go:embed 功能介紹與打包 JAR 文件示例1. go:embed 基礎介紹基本特性基本語法 2. 嵌入 JAR 文件示例項目結構代碼實現 3. 高級用法:嵌入多個文件或目錄4. 使用注意事項5. 實際應用場景6. 完整示例:運行嵌入的JAR 背景 想把自己的一個…

前端大屏可視化項目 局部全屏(指定盒子全屏)

需求是這樣的&#xff0c;我用的項目是vue admin 項目 現在需要在做大屏項目 不希望顯示除了大屏的其他東西 于是想了這個辦法 至于大屏適配問題 請看我文章 底部的代碼直接復制就可以運行 vue2 px轉rem 大屏適配方案 postcss-pxtorem-CSDN博客 <template><div …

《2025藍橋杯C++B組:D:產值調整》

**作者的個人gitee**?? 作者的算法講解主頁?? 每日一言&#xff1a;“淚眼問花花不語&#xff0c;亂紅飛過秋千去&#x1f338;&#x1f338;” 題目 二.解題策略 本題比較簡單&#xff0c;我的思路是寫三個函數分別計算黃金白銀銅一次新產值&#xff0c;通過k次循環即可獲…

[VTK] 四元素實現旋轉平移

VTK 實現旋轉&#xff0c;有四元數的方案&#xff0c;也有 vtkTransform 的方案&#xff1b;主要示例代碼如下&#xff1a; //構造旋轉四元數vtkQuaterniond rotation;rotation.SetRotationAngleAndAxis(vtkMath::RadiansFromDegrees(90.0),0.0, 1.0, 0.0);//構造旋轉點四元數v…

華為hcie證書的有效期怎么判斷?

在ICT行業&#xff0c;華為HCIE證書堪稱含金量極高的“敲門磚”&#xff0c;擁有它往往意味著在職場上更上一層樓。然而&#xff0c;很多人在辛苦考取HCIE證書后&#xff0c;卻對其有效期相關事宜一知半解。今天&#xff0c;咱們就來好好嘮嘮華為HCIE證書的有效期怎么判斷這個關…

【精品PPT】2025固態電池知識體系及最佳實踐PPT合集(36份).zip

精品推薦&#xff0c;2025固態電池知識體系及最佳實踐PPT合集&#xff0c;共36份。供大家學習參考。 1、中科院化學所郭玉國研究員&#xff1a;固態金屬鋰電池及其關鍵材料.pdf 2、中科院物理所-李泓固態電池.pdf 3、全固態電池技術研究進展.pdf 4、全固態電池生產工藝.pdf 5、…

MySQL 中為產品添加靈活的自定義屬性(如 color/size)

方案 1&#xff1a;EAV 模型&#xff08;最靈活但較復雜&#xff09; 適合需要無限擴展自定義屬性的場景 -- 產品表 CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),price DECIMAL(10,2) );-- 屬性名表 CREATE TABLE attributes (id INT PRIMA…

CSPM認證對項目論證的范式革新:從合規審查到價值創造的戰略躍遷

引言 在數字化轉型浪潮中&#xff0c;全球企業每年因項目論證缺陷導致的損失高達1.7萬億美元&#xff08;Gartner 2023&#xff09;。CSPM&#xff08;Certified Strategic Project Manager&#xff09;認證體系通過結構化方法論&#xff0c;將傳統的項目可行性評估升級為戰略…

CLIP中的Zero-Shot Learning原理

CLIP&#xff08;Contrastive Language-Image Pretraining&#xff09;是一種由OpenAI提出的多模態模型&#xff0c;它通過對比學習的方式同時學習圖像和文本的表示&#xff0c;并且能在多種任務中進行零樣本學習&#xff08;Zero-Shot Learning&#xff09;。CLIP模型的核心創…

spring mvc 中 RestTemplate 全面詳解及示例

RestTemplate 全面詳解及示例 1. RestTemplate 簡介 定義&#xff1a;Spring 提供的同步 HTTP 客戶端&#xff0c;支持多種 HTTP 方法&#xff08;GET/POST/PUT/DELETE 等&#xff09;&#xff0c;用于調用 RESTful API。核心特性&#xff1a; 支持請求頭、請求體、URI 參數的…

北大:LLM在NL2SQL中任務分解

&#x1f4d6;標題&#xff1a;LearNAT: Learning NL2SQL with AST-guided Task Decomposition for Large Language Models &#x1f310;來源&#xff1a;arXiv, 2504.02327 &#x1f31f;摘要 &#x1f538;自然語言到SQL&#xff08;NL2SQL&#xff09;已成為實現與數據庫…

STM32LL庫編程系列第八講——ADC模數轉換

系列文章目錄 往期文章 STM32LL庫編程系列第一講——Delay精準延時函數&#xff08;詳細&#xff0c;適合新手&#xff09; STM32LL庫編程系列第二講——藍牙USART串口通信&#xff08;步驟詳細、原理清晰&#xff09; STM32LL庫編程系列第三講——USARTDMA通信 STM32LL庫編程…

網絡5 TCP/IP 虛擬機橋接模式、NAT、僅主機模式

TCP/IP模型 用于局域網和廣域網&#xff1b;多個協議&#xff1b;每一層呼叫下一層&#xff1b;四層&#xff1b;通用標準 TCP/IP模型 OSI七層模型 應用層 應用層 表示層 會話層 傳輸層 傳輸層 網絡層 網絡層 鏈路層 數據鏈路層 物理層 鏈路層&#xff1a;傳數據幀&#xff0…

【C語言】預處理(下)(C語言完結篇)

一、#和## 1、#運算符 這里的#是一個運算符&#xff0c;整個運算符會將宏的參數轉換為字符串字面量&#xff0c;它僅可以出現在帶參數的宏的替換列表中&#xff0c;我們可以將其理解為字符串化。 我們先看下面的一段代碼&#xff1a; 第二個printf中是由兩個字符串組成的&am…