RAG(檢索增強生成)生態系統已快速成熟,但有一個瓶頸始終存在:垃圾進,垃圾出。大多數文件解析工具在未理解文件視覺結構的情況下,將原始文字送入 LLM 管線,產生的區塊會將標題與其內容分離、將表格跨頁分割,並失去了使文件可讀的語義層級結構。Filimoa 的 Open Parse 從根源解決了這個問題。
Open Parse 是一款視覺驅動的文件解析器,在提取文字之前先分析每個頁面的實際版面。它不是將 PDF 視為字元串流,而是使用電腦視覺技術識別文字區塊、欄位、標題、表格邊界與圖說。輸出保留文件的語義結構為結構化 Markdown,準備好用於真正合理的區塊策略。
該函式庫在 RAG 社群中獲得了快速採用,因為它直接解決了單純文字分割器的根本失效模式——將語義單元分開。當文件區塊將標題與其段落分離,或將表格分割到兩個區塊中時,檢索品質會急劇下降。Open Parse 的版面感知方法保持語義單元完整,大幅提升了檢索上下文的相關性。
graph TD
A[PDF / 圖片 / 文件] --> B[視覺版面分析]
B --> C[識別文字區塊、欄位、標題、表格]
C --> D[語義結構樹]
D --> E[智慧區塊演算法]
E --> F[LLM 就緒區塊]
F --> G[RAG 管線]
F --> H[Markdown 匯出]
F --> I[知識庫]
E --> J[表格提取]
J --> K[CSV / JSON / Markdown 表格]Open Parse 的視覺方法與傳統解析有何不同?
Open Parse 與傳統文件解析器之間的根本區別在於它們如何解讀文件。傳統的 PDF 文字提取器線性讀取文字串流,完全忽略版面。Open Parse 從視覺頁面開始。
| 能力 | 傳統 PDF 解析器 | Open Parse |
|---|---|---|
| 版面感知 | 無(線性文字串流) | 完整頁面版面分析 |
| 欄位處理 | 跨欄混雜文字 | 尊重多欄版面 |
| 標題檢測 | 啟發式(字型大小/粗體) | 視覺位置 + 格式 |
| 表格提取 | 脆弱的正則表達式 | 電腦視覺邊界檢測 |
| 程式碼區塊保留 | 通常遺失 | 視覺縮排 + 等寬字型檢測 |
| 分頁處理 | 句子中間分割 | 語義邊界保留 |
實際影響是巨大的。單純的分割器可能會將科學論文的摘要分割到兩個區塊中,或將財務表格分割到三個獨立的檢索單元中。Open Parse 對視覺語義的理解意味著每個區塊都是一個自包含的語義單元——一個完整的段落、一個完整的表格,或一個帶有標題的章節。
Open Parse 支援哪些區塊策略?
Open Parse 提供多種區塊策略,這些策略在語義樹上運作,而非原始字元位置。這是其視覺方法帶來最大價值的地方。
| 策略 | 行為 | 最佳用途 |
|---|---|---|
| Token 閾值 | 分組節點直到達到 token 預算 | 一般 RAG,平衡區塊大小 |
| 基於章節 | 保持每個標題及其內容在一起 | 文件、長篇文章 |
| 表格保留 | 從不分割表格節點 | 財務報告、科學資料 |
| 遞迴後備 | 如果區塊太大則退回較小單元 | 混合內容密度的文件 |
Token 閾值策略是最常用於 RAG 管線的。Open Parse 走訪語義樹,將較小的節點(段落、清單項目)分組為區塊,直到達到配置的 token 限制,同時確保大型節點(表格、程式碼區塊)即使超過限制也保持完整。
Open Parse 對表格提取的效果如何?
表格歷來是文件解析用於 RAG 的最弱環節。Open Parse 以基於視覺的方法解決這個問題,在嘗試提取之前先識別表格區域。
flowchart LR
A[頁面影像] --> B[視覺模型:\n識別表格區域]
B --> C[儲存格邊界檢測]
C --> D[OCR / 文字提取\n每個儲存格]
D --> E{信心檢查}
E -->|高| F[匯出結構化表格]
E -->|低| G[後備:捕捉\n為影像區塊]
F --> H[Markdown 表格]
F --> I[CSV 匯出]
F --> J[JSON 結構化]| 表格複雜度 | 單純解析器 | Open Parse |
|---|---|---|
| 簡單網格表格 | 中等準確度 | 高準確度 |
| 合併儲存格(colspan/rowspan) | 通常失敗 | 正確識別 |
| 多行儲存格 | 截斷 | 完整捕捉 |
| 跨頁表格 | 損壞的分割 | 合併為單一區塊 |
| 財務報表 | 欄位對齊錯誤 | 欄位精準 |
如何安裝與整合 Open Parse?
安裝非常簡單,整合到現有的 Python RAG 管線只需幾分鐘。
pip install open-parse
pip install open-parse[vision] # 用於表格提取支援
用於送入 RAG 管線的基本使用範例:
import open_parse
parser = open_parse.DocumentParser()
doc = parser.parse("financial_report.pdf")
chunks = doc.chunk(max_tokens=512)
for chunk in chunks:
print(chunk.text) # 語義連貫的 Markdown
print(chunk.metadata) # 位置、頁碼、標題上下文
該函式庫可自然整合到 LangChain、LlamaIndex 與自訂向量儲存管線中。其輸出區塊包含文件中原始位置的元資料,使下游應用能夠將檢索內容歸因到特定頁面與章節——這是可稽核的 RAG 系統與合規敏感應用程式的關鍵功能。
FAQ
什麼是 Open Parse? Open Parse 是開源 Python 函式庫,用於視覺驅動的文件解析。它分析 PDF、圖片與文件的視覺版面以理解語義結構——標題、段落、表格、清單與圖說——產生針對 LLM 消費與 RAG 管線最佳化的區塊輸出。
Open Parse 與單純的文字分割有何不同? 單純的文字分割器盲目地根據字元或 token 數量運作,經常在句子中間或破壞表格與程式碼區塊。Open Parse 分析每個頁面的實際視覺版面,識別文字區塊、欄位、頁首與表格結構。它產生語義連貫的區塊,尊重文件層級,從而顯著提升 RAG 檢索品質。
Open Parse 支援 Markdown 輸出嗎? 是的,Open Parse 原生生成 Markdown 輸出,包含正確的標題層級、清單格式、表格結構與程式碼區塊。這使得解析後的輸出可直接用於 LLM 提示、知識庫與文件系統,無需手動重新格式化。
Open Parse 如何處理複雜的表格提取? Open Parse 使用電腦視覺方法識別表格邊界與儲存格結構。它支援合併儲存格、多行儲存格與跨頁表格。結果可以匯出為 Markdown 表格、CSV 或結構化 JSON。解析器保留表格頁首,並處理財務與科學文件中常見的巢狀表格結構。
如何安裝 Open Parse? 透過 pip 安裝:‘pip install open-parse’。需要 Python 3.9+。如需完整的表格提取支援,也請安裝 ‘pip install open-parse[vision]’。該函式庫輕量且可在 CPU 上執行,但基於視覺的表格檢測可使用 GPU 加速。
延伸閱讀
- Open Parse GitHub 倉庫 – 原始碼、文件與社群貢獻
- LlamaIndex 文件解析指南 – RAG 文件攝取最佳實踐
- LangChain 文件載入器 – 將自訂解析器整合到 LangChain 工作流程
- 視覺文件理解調查 – 視覺文件解析技術的學術概述
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!