PDF 解析問題調研

說點真實的感受 :網上看啥組件都好,實際測,啥組件都不行。效果好的不開源收費,開源的效果不好。測試下來,發現把組件融合起來,還是能不花錢解決問題的,都是麻煩折騰一些。
這里分享了目前網上能夠看到的資料。很多資料都是反復重復的,且效果不好的。目前網上基本沒有太好用的工具,也沒有太好的方案資料。剩下的就是收費效果好的。

PDF解析中的諸多挑戰

版面分析:如何得到標題、如何的得到段落(正確的段落)、如何得到表格、如何得到圖片,圖和得到圖片上的文字?

還有細節問題:雙欄和多欄的問題、公式問題

掃描件:掃描件本質上是圖片,如何從圖片中解析得到文件。

PDF解析的主要思路

針對上述的挑戰,PDF解析主要分為兩個方向。一是標準PDF文件,程序可讀。二是掃描文件,實際上就是圖片,程序不可直接讀。

  1. 解析和結構分析:?PDF?抓取工具首先解析?PDF?文件并分析其結構以識別文檔中的各種元素。?解析涉及檢查布局、字體樣式、表格、標題和其他結構組件,以了解內容的組織和安排。
  2. 文本提取:?然后,該工具采用?OCR?技術將掃描或基于圖像的?PDF?轉換為機器可讀的文本。?OCR?算法通過分析?PDF?中的視覺數據并識別字符,將其轉換為可編輯和可搜索的文本來實現此目的。
  3. 數據提取和模式識別:?一旦數據轉換為機器可讀格式,PDF?抓取工具就會應用模式識別算法來識別文本中的特定數據點,例如文檔中的關鍵字、模式或預定義結構。?例如,抓取工具可以根據預定規則或正則表達式查找發票號碼、日期、客戶姓名或產品詳細信息。
  4. 輸出和格式:?然后,PDF?抓取工具將提取的數據組織成相關字段和結構化格式,例如電子表格、數據庫或?JSON/XML,以供進一步分析。

OCR解析的路線

OCR是唯一的解決掃描版文件的方案,包括獲取圖片上的內容。

unstructured

GitHub - Unstructured-IO/unstructured: Open source libraries and APIs to build custom preprocessing pipelines for labeling, training, or production machine learning pipelines.

Paddle-structure

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/table/README_ch.md#41-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

Meta的版面恢復大模型:Nougat

Meta的版面恢復大模型:Nougat??|?Breezedeus.com

Nougat被戲稱為富人的玩具。有一段這樣的描述,就知道它有多慢了!“在一臺配備有24GB VRAM的NVIDIA A10G顯卡的機器上,可以并行處理6頁內容。生成速度在很大程度上取決于給定頁面上的文本量。在沒做任何推理優化時,按平均每頁有 ~1400 個 tokens算,Nougat base模型處理一個batch圖片的平均時間為19.5秒。”

Nougat:結合光學神經網絡,引領學術PDF文檔的智能解析、挖掘學術論文PDF的價值?-?汀、人工智能?-?博客園

P2T檢查走小模型的路線,目前拿來做內容識別還是OK的,特別是在公式方面。

GitHub - breezedeus/Pix2Text: Pix In, Latex & Text Out. Recognize Chinese, English Texts, and Math Formulas from Images. 80+ languages are supported.

PDF?解析工具對比

使用Python操作PDF:常用PDF庫總結?-?知乎

大模型RAG問答下的實用開源文檔解析工具總結及技術思考:從文檔版本分析到單雙欄處理

PDF信息提取技術的匯總(干貨滿滿!)?-?知乎

可以拿到bbox的組件

pdfplunber??pdfminer??pymupdf??papermage??這些組件是不是都可以拿到bbox?

  1. pdfplumber:pdfplumber?是一個基于?PDFMiner?的?Python?庫,專門用于提取?PDF?文件中的文本和表格數據。它提供了一些方法來獲取文本、表格和頁面的?bounding?box?信息。
  2. pdfminer:PDFMiner?是一個功能強大的?PDF?處理工具,可以用于提取?PDF?文件中的文本和布局信息。通過?PDFMiner,你可以獲取文本、圖片、表格等元素的位置信息,從而獲得它們的?bounding?box。
  3. pymupdf:PyMuPDF(也稱為MuPDF)是一個用于處理?PDF?文件的?Python?庫,提供了豐富的功能,包括提取文本、圖像和其他元素的信息,以及獲取它們的?bounding?box。
  4. papermage:Papermage?是一個用于處理?PDF?文件的?Python?庫,它使用了?PDFMiner?和其他一些工具,可以用于提取?PDF?文件中的文本、圖像和布局信息,包括?bounding?box。

可以拿到bbox的組件組件對比

  1. pdfplumber
    1. 優點:pdfplumber?提供了簡單易用的接口,使得提取文本和表格數據以及獲取?bbox?變得非常方便。
      1. 它能夠準確地提取文本的?bbox,并且支持表格的識別和提取。
      2. 在處理包含復雜布局的?PDF?文件時表現較好。
    2. 缺點:對于處理包含大量圖像的?PDF?文件時,性能可能不如其他庫。
      1. 對于一些特殊格式的?PDF?文件,可能會出現解析錯誤。
  2. pdfminer
    1. 優點:PDFMiner?是一個功能強大且靈活的庫,可以用于處理各種類型的?PDF?文件。
      1. 它提供了豐富的功能和選項,使得用戶可以對文本和布局信息進行更深入的處理和分析。
    2. 缺點:相比于其他庫,PDFMiner?的接口相對較復雜,需要更多的代碼來實現相同的功能。
      1. 在處理復雜布局的?PDF?文件時,可能需要額外的調整和處理,以獲得準確的?bbox?信息。
  3. pymupdf
    1. 優點:PyMuPDF(MuPDF)是一個快速和高效的?PDF?處理庫,對于大型?PDF?文件的處理效率較高。
      1. 它提供了一些簡單的方法來獲取文本、圖像和布局信息,并且可以準確地提取?bbox。
    2. 缺點:PyMuPDF?的文檔和社區支持相對較少,有時可能需要進行一些自行探索和調試。
  4. papermage
    1. 優點:Papermage?是一個基于?PDFMiner?和其他一些工具構建的庫,它提供了一些簡單的接口來處理?PDF?文件。
      1. 它支持獲取文本、圖像和布局信息,并且能夠準確地提取?bbox。
    2. 缺點:Papermage?相對較新,可能還不夠成熟,可能存在一些功能上的限制和問題。
      1. 相比于其他庫,Papermage?的文檔和社區支持較少。

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

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

相關文章

Python中的反射

在Python中,反射(Reflection)是一種動態地訪問對象和調用其方法的能力,而不需要在編寫代碼時顯式地知道對象的類或屬性。這種機制使得代碼具有更高的靈活性和可擴展性。Python通過幾種內置函數提供了反射的功能,主要包…

機器學習中類別不平衡問題的解決方案

類別不平衡問題 解決方案簡單方法收集數據調整權重閾值移動 數據層面欠采樣過采樣采樣方法的優劣 算法層面代價敏感集成學習:EasyEnsemble 總結 類別不平衡(class-imbalance)就是指分類任務中不同類別的訓練樣例數目差別很大的情況 解決方案…

智能分析網關V4電瓶車檢測與煙火算法,全面提升小區消防安全水平

2024年2月23日,南京市某小區因電瓶車停放處起火引發火災事故,造成巨大人員傷亡和損失。根據國家消防救援局的統計,2023年全國共接報電動自行車火災2.1萬起。電瓶車火災事故頻發,這不得不引起我們的重視和思考,尤其是在…

阿里云A10推理qwen

硬件配置 vCPU:32核 內存:188 GiB 寬帶:5 Mbps GPU:NVIDIA A10 24Gcuda 安裝 wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-rhel7-12-1-local-12.1.0_530.30.02-1.x86_64.rpm s…

ZDH-大數據采集-支持KETTLE任務

目錄 項目源碼 預覽地址 支持KETTLE介紹 新增KETTLE任務 配置調度KETTLE 重要說明 感謝支持 項目源碼 zdh_web:GitHub - zhaoyachao/zdh_web: 大數據采集,抽取平臺 預覽地址 后臺管理-登陸 用戶名:zyc 密碼:123456 支持KETTLE介紹 當前平臺不…

lv20 QT進程線程編程

知識點&#xff1a;啟動進程 &#xff0c;線程 &#xff0c;線程同步互斥 1 啟動進程 應用場景&#xff1a;通常在qt中打開另一個程序 process模板 QString program “/bin/ls"; QStringList arguments; arguments << "-l" << “-a";QPro…

手撕Java集合之簡易版Deque(LinkedList)

在目前&#xff0c;許多互聯網公司的面試已經要求能手撕集合源碼&#xff0c;集合源碼本身算是源碼里比較簡單的一部分&#xff0c;但是要在面試極短的10來分鐘內快速寫出一個簡易版的源碼還是比較麻煩的&#xff0c;很容易出現各種小問題。所以在平時就要注重這方面的聯系。 以…

倉儲自動化新解:托盤四向穿梭車駛入智能工廠 智能倉儲與產線緊密結合

目前&#xff0c;由于對倉庫存儲量的要求越來越高&#xff0c;揀選、輸送以及出入庫頻率等要求也越來越高&#xff0c;對此&#xff0c;在物流倉儲領域&#xff0c;自動化與智能化控制技術得以快速發展&#xff0c;貨架穿梭車在自動庫領域的應用越來越廣泛。現階段&#xff0c;…

linux之進程理解(1)

目錄 1. 馮諾依曼體系結構 2. 操作系統(OS) 2.1 概念 2.2 設計OS的目的 2.3 定位 2.4 理解管理 3. 系統調用和庫函數概念 4. 補充 1. 馮諾依曼體系結構 我們常見的計算機&#xff0c;如筆記本。我們不常見的計算機&#xff0c;如服務器&#xff0c;大部分都遵守馮諾依曼體…

chrome選項頁面options page配置

options 頁面用以定制Chrome瀏覽器擴展程序的運行參數。 通過Chrome 瀏覽器的“工具 ->更多工具->擴展程序”&#xff0c;打開chrome://extensions頁面&#xff0c;可以看到有的Google Chrome擴展程序有“選項Options”鏈接&#xff0c;如下圖所示。單擊“選項Options”…

制作鏡像與配置推送阿里云倉庫

一、制作jdk鏡像 1.1、Alpine linux簡介 Alpine Linux是一個輕量級的Linux發行版&#xff0c;專注于安全、簡潔和高效。它采用了musl libc和BusyBox&#xff0c;使得系統資源占用較少&#xff0c;啟動速度較快。 Alpine Linux也提供了一個簡單的包管理工具APK&#xff0c;(注…

【計算機網絡_應用層】協議定制序列化反序列化

文章目錄 1. TCP協議的通信流程2. 應用層協議定制3. 通過“網絡計算器”的實現來實現應用層協議定制和序列化3.1 protocol3.2 序列化和反序列化3.2.1 手寫序列化和反序列化3.2.2 使用Json庫 3.3 數據包讀取3.4 服務端設計3.5 最后的源代碼和運行結果 1. TCP協議的通信流程 在之…

深入分析Android運行時環境ART:原理、特點與優化策略

摘要 隨著移動互聯網的快速發展&#xff0c;智能手機的性能和功能日益強大&#xff0c;其中Android操作系統因其開放性和靈活性而占據主導地位。Android運行時環境&#xff08;ART&#xff09;作為執行應用程序代碼的關鍵組件&#xff0c;在系統性能和用戶體驗方面起著至關重要…

Vue+SpringBoot打造高校學生管理系統

目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 學生管理模塊2.2 學院課程模塊2.3 學生選課模塊2.4 成績管理模塊 三、系統設計3.1 用例設計3.2 數據庫設計3.2.1 學生表3.2.2 學院課程表3.2.3 學生選課表3.2.4 學生成績表 四、系統展示五、核心代碼5.1 查詢課程5.2 新…

DFS剪枝

剪枝 將搜索過程中一些不必要的部分剔除掉&#xff0c;因為搜索過程構成了一棵樹&#xff0c;剔除不必要的部分&#xff0c;就像是在樹上將樹枝剪掉&#xff0c;故名剪枝。 剪枝是回溯法中的一種重要優化手段&#xff0c;方法往往先寫一個暴力搜索&#xff0c;然后找到某些特…

超詳細紅黑樹的模擬實現

前言 有人說設計出AVL樹的的人是個大牛&#xff0c;那寫紅黑樹&#xff08;RBTree&#xff09;的人就是天才&#xff01; 上一篇文章&#xff0c;我們已經學習了AVL樹&#xff0c;牛牛個人認為AVL樹已經夠優秀了&#xff0c;那讓我們一起探究一下&#xff0c;為什么紅黑樹比AV…

鏈表類型題目

文章目錄 簡介鏈表的常用技巧兩數相加原理代碼代碼|| 兩兩交換鏈表中的節點代碼原理 重排鏈表(重要)原理代碼 合并 K 個升序鏈表代碼遞歸代碼 K 個一組翻轉鏈表原理代碼 簡介 大家好,這里是jiantaoyab,這篇文章給大家帶來的是鏈表相關的題目練習和解析,希望大家能相互討論進步 …

[線代]自用大綱

部分內容整理自張宇和網絡 序 題型分布&#xff1a; 題型單題分值題目數量總分值選擇題5315填空題515解答題12112 *一道大題可能用到六部分所有知識 矩陣 性質 k k k倍和乘積行列式 ∣ k A ∣ k n ∣ A ∣ |kA|k^n|A| ∣kA∣kn∣A∣ ∣ A B ∣ ≠ ∣ A ∣ ∣ B ∣ |AB|≠…

DDE圖像增強

DDE&#xff08;Detail and Darkness Enhancement&#xff0c;細節和暗部增強&#xff09;是一種用于增強圖像細節和暗部區域的方法。其原理可以簡要概括如下&#xff1a; 細節增強&#xff1a;在圖像中突出顯示細節信息&#xff0c;使得圖像更加清晰和具有視覺沖擊力。這可以通…

藍橋杯刷題--python-15-二分(進階)

503. 借教室 - AcWing題庫 n,mmap(int,input().split()) class_list(map(int,input().split())) class_[0]class_ d[0] s[0] t[0] for _ in range(m): dj,sj,tjmap(int,input().split()) d.append(dj) s.append(sj) t.append(tj) def check(k): b[0]*(n2) …