本專案提供一套工具,專門用於處理「施工規範」類型的 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 進行環境管理,安裝速度極快且能確保依賴一致。
# Windows (PowerShell)
powershell -c "irm https://astral-sh.uv/install.ps1 | iex"在專案根目錄執行:
uv sync將 PDF 放入 data/ 資料夾後執行:
uv run python convert_docling.py若只想轉換特定檔案(如案號開頭為 01103 的文件):
uv run python convert_docling.py -f 01103uv run python convert_markitdown.py- 階層重建: 自動識別施工規範中的
1.1,1.1.1等層級。 - 表格提取: 利用 AI 模型高精確度地還原表格內容。
- 圖片擷取: 自動定位文件中的圖片,匯出至
output/docling/images/並在 JSON 中保留標註與原始 OCR 文字。 - 內容清洗: 修正 PDF 換行導致的斷句問題,並過濾頁首頁尾等雜訊。
- 第一次執行 Docling 時,程式會自動從 Hugging Face 下載所需的 AI 模型(如 TableFormer),請確保網路連線。
- 若在 Windows 上遇到符號連結權限問題,程式已內建
HF_HUB_DISABLE_SYMLINKS=1進行排解。