Skip to content

CJhangTW/PDF_ETL_json_tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Construction Specification PDF ETL Tool (施工規範 PDF 結構化工具)

本專案提供一套工具,專門用於處理「施工規範」類型的 PDF 文件,利用現代化的 AI 技術將非結構化的 PDF 轉換為結構化的 JSON 檔案(包含精確的分層、表格提取與圖片擷取)或標準 Markdown 格式。

🌟 主要技術

  • Docling: 由 IBM 開源,具備強大的版面分析 (Layout Analysis) 與 TableFormer 技術,能重建文件的階層結構。
  • MarkItDown: 由 Microsoft 開源的通用文件轉換工具。

📂 目錄結構

  • data/: 存放待處理的原始 PDF 檔案。
  • output/: 轉換結果輸出。
    • docling/: 存放 Docling 生成的結構化 JSON 及擷取的圖片。
    • markitdown/: 存放 MarkItDown 生成的 Markdown 檔案。
  • convert_docling.py: 核心腳本。執行完整的 ETL 流程,包括版面分析、階層偵測與資料清洗。
  • convert_markitdown.py: 使用 MarkItDown 進行快速格式轉換。

🚀 快速開始 (使用 uv)

專案建議使用 uv 進行環境管理,安裝速度極快且能確保依賴一致。

1. 安裝 uv (若尚未安裝)

# Windows (PowerShell)
powershell -c "irm https://astral-sh.uv/install.ps1 | iex"

2. 初始化環境與同步依賴

在專案根目錄執行:

uv sync

3. 執行 PDF 結構化轉換

將 PDF 放入 data/ 資料夾後執行:

uv run python convert_docling.py

若只想轉換特定檔案(如案號開頭為 01103 的文件):

uv run python convert_docling.py -f 01103

4. 執行 MarkItDown 轉換

uv run python convert_markitdown.py

📝 轉換特性說明

Docling 結構化解析 (convert_docling.py)

  1. 階層重建: 自動識別施工規範中的 1.1, 1.1.1 等層級。
  2. 表格提取: 利用 AI 模型高精確度地還原表格內容。
  3. 圖片擷取: 自動定位文件中的圖片,匯出至 output/docling/images/ 並在 JSON 中保留標註與原始 OCR 文字。
  4. 內容清洗: 修正 PDF 換行導致的斷句問題,並過濾頁首頁尾等雜訊。

⚠️ 注意事項

  • 第一次執行 Docling 時,程式會自動從 Hugging Face 下載所需的 AI 模型(如 TableFormer),請確保網路連線。
  • 若在 Windows 上遇到符號連結權限問題,程式已內建 HF_HUB_DISABLE_SYMLINKS=1 進行排解。

About

本專案提供一套工具,專門用於處理「施工規範」類型的 PDF 文件,利用現代化的 AI 技術將非結構化的 PDF 轉換為結構化的 JSON 檔案(包含精確的分層、表格提取與圖片擷取)或標準 Markdown 格式。

Resources

Stars

Watchers

Forks

Contributors

Languages