戰(zhàn):3 步把 PDF、DOCX 轉(zhuǎn)成結(jié)構(gòu)化數(shù)據(jù))
Docling 智能文檔解析實(shí)戰(zhàn)3 步把 PDF、DOCX 轉(zhuǎn)成結(jié)構(gòu)化數(shù)據(jù)【免費(fèi)下載鏈接】doclingGet your documents ready for gen AI項(xiàng)目地址: https://gitcode.com/GitHub_Trending/do/docling如果你要給 RAG 或智能體喂語料第一步多半卡在同一件事上手里的文檔五花八門而大模型要的是干凈的結(jié)構(gòu)化文本。Docling 就是干這個(gè)的把 PDF、Word、PPT、Excel、HTML、圖片、音頻等幾十種文檔統(tǒng)一解析成同一套中間表示再一鍵導(dǎo)出成 Markdown、JSON、HTML 或純文本全程可在本地運(yùn)行也內(nèi)置了掃描件 OCR。下面用真實(shí)場景帶你看它怎么用、能用到什么程度。安裝與第一次轉(zhuǎn)換三條命令出結(jié)果pip install docling # 需要 Python 3.10 docling report.pdf # 在當(dāng)前目錄生成帶結(jié)構(gòu)的 .mdPython 里更常用from docling.document_converter import DocumentConverter converter DocumentConverter() result converter.convert(report.pdf) # 本地路徑或 URL 都行 print(result.document.export_to_markdown())到這里你就拿到了一份帶標(biāo)題層級(jí)、表格、公式標(biāo)記的 Markdown。它背后做的事值得花兩分鐘理解一下。看懂中間產(chǎn)物Docling 文檔模型是什么Docling 把每個(gè)格式交給一個(gè)專屬后端去讀取PDF 走 PDF 后端Word 走 MS Word 后端再交給對(duì)應(yīng)的管道處理最后都落成同一個(gè)DoclingDocument對(duì)象。這一步是整個(gè)工具里最關(guān)鍵的設(shè)計(jì)不管你輸入什么格式拿到的都是同一套帶標(biāo)題層級(jí)、表格行列、圖片、公式的樹形結(jié)構(gòu)。后續(xù)導(dǎo)成 Markdown、無損 JSON或者切塊送向量庫操作的都是這個(gè)對(duì)象而不是每種格式各寫一套代碼。想細(xì)看結(jié)構(gòu)定義可以從 docs/concepts/docling_document.md 入手。按場景用PDF、掃描件、混合批次和 RAG帶表格的 PDF 怎么解析默認(rèn)管道已經(jīng)會(huì)做版面分析、閱讀順序判斷和表格結(jié)構(gòu)識(shí)別導(dǎo)出時(shí)表格會(huì)變成 Markdown 表格。對(duì)難啃的表格可以調(diào)一下結(jié)構(gòu)識(shí)別模式from docling.datamodel.base_models import InputFormat from docling.datamodel.pipeline_options import PdfPipelineOptions, TableFormerMode from docling.document_converter import DocumentConverter, PdfFormatOption opts PdfPipelineOptions(do_table_structureTrue) opts.table_structure_options.mode TableFormerMode.ACCURATE converter DocumentConverter(format_options{ InputFormat.PDF: PdfFormatOption(pipeline_optionsopts) })ACCURATE精度更高、速度稍慢日常默認(rèn)值就夠用遇到識(shí)別不干凈的復(fù)雜表格再切換。掃描件、老報(bào)紙、拍的照片呢這些沒有文本層的文檔把 OCR 模式設(shè)成FULL_PAGE就是整頁當(dāng)圖片來識(shí)別比默認(rèn)的檢測式 OCR 更徹底代價(jià)是更慢。Tesseract、EasyOCR、RapidOCR 等多個(gè)引擎可以按需切換完整例子在 docs/examples/full_page_ocr.py。一次處理一整箱混合格式在初始化時(shí)傳入allowed_formats白名單并用format_options對(duì)每種格式單獨(dú)定制參數(shù)一次轉(zhuǎn)換跑完。參考 docs/examples/run_with_formats.py。接 RAG 怎么切塊轉(zhuǎn)出來的文檔自帶官方分塊器按章節(jié)語義切塊并保留標(biāo)題等元數(shù)據(jù)比簡單按字?jǐn)?shù)截?cái)嘤押玫枚唷7謮K和序列化的完整玩法見 docs/concepts/chunking.md 與 docs/concepts/serialization.md。進(jìn)階一置信度評(píng)分批量轉(zhuǎn)換不再裸奔跑批量任務(wù)最怕的是轉(zhuǎn)完了但不知道質(zhì)量。ConversionResult里帶一個(gè)confidence報(bào)告從版面識(shí)別、OCR、文本單元格、表格四個(gè)維度打分再匯總成mean_grade和low_grade兩個(gè)等級(jí)從 POOR 到 EXCELLENT。實(shí)際用法就是設(shè)個(gè)閾值——等級(jí)低于 GOOD 的文檔自動(dòng)轉(zhuǎn)人工復(fù)核不用逐份肉眼檢查。說明文檔在 docs/concepts/confidence_scores.md。進(jìn)階二離線與內(nèi)網(wǎng)環(huán)境部署Docling 默認(rèn)全部模型本地推理不向外部服務(wù)發(fā)數(shù)據(jù)。首次運(yùn)行會(huì)自動(dòng)下載模型如果是斷網(wǎng)或內(nèi)網(wǎng)環(huán)境先在聯(lián)網(wǎng)機(jī)器上執(zhí)行docling-tools models download把模型拉到本地再設(shè)置DOCLING_ARTIFACTS_PATH環(huán)境變量指向該目錄即可完全離線。若確實(shí)要調(diào)用遠(yuǎn)程服務(wù)比如云端圖片描述必須顯式打開enable_remote_servicesTrue否則直接報(bào)錯(cuò)——這個(gè)默認(rèn)關(guān)門的設(shè)計(jì)對(duì)敏感數(shù)據(jù)場景挺友好。細(xì)節(jié)在 docs/usage/advanced_options.md。常見坑先知道再踩版本門檻2.70.0 起要求 Python 3.10老環(huán)境會(huì)直接裝不上或跑不動(dòng)。第一次很慢首次轉(zhuǎn)換要下載模型到~/.cache/docling/models之后就有緩存別把首跑時(shí)間當(dāng)成真實(shí)性能。掃描件識(shí)別不全默認(rèn) OCR 是檢測式的掃描質(zhì)量差時(shí)改用OcrMode.FULL_PAGE整頁識(shí)別。表格多列被并成一列把do_cell_matching設(shè)為False讓結(jié)構(gòu)識(shí)別模型自己給出單元格文本通常能解決串列問題。轉(zhuǎn)換結(jié)果異常先看confidence定位是版面、OCR 還是表格環(huán)節(jié)出的問題再?zèng)Q定調(diào)參數(shù)還是換管道。適合誰用哪里還不行適合的場景給 RAG、檢索或智能體流程準(zhǔn)備干凈的文檔語料把公司里 PDF/Office/HTML 混雜的文件統(tǒng)一成結(jié)構(gòu)化數(shù)據(jù)處理敏感材料時(shí)全程本地閉環(huán)不出內(nèi)網(wǎng)。局限也要說清楚復(fù)雜化學(xué)結(jié)構(gòu)式分子結(jié)構(gòu)圖目前還在開發(fā)計(jì)劃里純 CPU、無 GPU 的環(huán)境下帶版面分析模型的轉(zhuǎn)換速度有限音頻轉(zhuǎn)寫和視頻解析需要額外安裝asr組件。更多格式清單和選項(xiàng)見 docs/usage/supported_formats.md倉庫里docs/examples/目錄下的示例腳本基本覆蓋了常見用法可以直接照著改。【免費(fèi)下載鏈接】doclingGet your documents ready for gen AI項(xiàng)目地址: https://gitcode.com/GitHub_Trending/do/docling創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考