LLMs之PDF:MinerU(將PDF文件轉換成Markdown和JSON格式)的簡介、安裝和使用方法、案例應用之詳細攻略
目錄
MinerU的簡介
0、日志
1、MinerU 的主要特點
2、已知問題
MinerU 安裝和使用方法
1、MinerU的三種體驗方式
T1、在線演示
T2、快速CPU演示
T3、GPU 使用
2、命令行使用
3、Python API 使用
MinerU的案例應用
科學文獻處理
數據預處理
知識圖譜構建
文檔摘要
其他文本挖掘任務
MinerU的簡介
2024年7月5日,MinerU是一個高質量的開源工具,用于將PDF文件轉換成Markdown和JSON格式。它提供了一站式解決方案,能夠高精度地提取PDF文檔中的各種信息。
MinerU 項目誕生于InternLM的預訓練過程中,旨在解決科學文獻中的符號轉換問題,并為大模型時代的技術發展做出貢獻。 它致力于提供高質量的PDF內容提取,目標是將PDF轉換為機器可讀的格式,例如Markdown和JSON,方便后續處理和應用。 與商業產品相比,MinerU 仍在發展中,如果遇到問題或結果不理想,建議在GitHub issue中提交問題并附上相關的PDF文件。
MinerU是一個功能強大且易于使用的PDF轉換工具,它能夠高效地將PDF轉換為Markdown和JSON格式,并支持多種高級功能,例如公式識別、表格識別和OCR。 雖然還存在一些已知問題,但其不斷更新迭代,并積極吸納社區反饋,未來有望成為一個更加完善和強大的PDF處理工具。
GitHub地址:GitHub - opendatalab/MinerU: A high-quality tool for convert PDF to Markdown and JSON.一站式開源高質量數據提取工具,將PDF轉換成Markdown和JSON格式。
0、日志
2024年11月22日發布0.10.0版本。引入了混合OCR文本提取功能,顯著提高了在復雜文本分布場景(如密集公式、不規則跨度區域和圖像表示的文本)中的解析性能。結合了文本模式中準確內容提取和更快速度的優勢,以及在OCR模式中更精確的跨度/行區域識別。?
2024年11月15日發布0.9.3版本。集成了RapidTable進行表格識別,將單表格解析速度提高了10倍以上,同時準確性更高,GPU內存使用率更低。?
2024年11月6日發布0.9.2版本。集成了StructTable-InternVL2-1B模型以實現表格識別功能。?
2024年10月31日發布0.9.0版本。這是一個主要的新版本,進行了廣泛的代碼重構,解決了許多問題,提高了性能,降低了硬件要求,并增強了可用性: 重構了排序模塊代碼,使用layoutreader進行閱讀順序排序,確保在各種布局中保持高準確性。 重構了段落拼接模塊,實現了跨列、跨頁、跨圖形和跨表格場景的良好效果。 重構了列表和目錄識別功能,顯著提高了列表塊和目錄塊的準確性,以及相應文本段落的解析。 重構了圖形、表格和描述文本的匹配邏輯,大大提高了將標題和腳注與圖形和表格匹配的準確性,并將描述文本的丟失率降低到接近零。 為OCR添加了多語言支持,支持檢測和識別84種語言。支持的語言列表請參見OCR語言支持列表。 添加了內存回收邏輯和其他內存優化措施,顯著降低了內存使用。啟用所有加速功能(不包括表格加速(布局/公式/OCR))的內存需求從16GB降低到8GB,啟用所有加速功能的內存需求從24GB降低到10GB。 優化了配置文件功能開關,添加了獨立的公式檢測開關,在不需要公式檢測時可以顯著提高速度和解析結果。 集成了PDF-Extract-Kit 1.0: 添加了自研的doclayout_yolo模型,與原始解決方案相比,處理速度提高了10倍以上,同時保持了類似的解析效果,并且可以通過配置文件與layoutlmv3自由切換。 將公式解析升級到unimernet 0.2.1,提高了公式解析的準確性,同時顯著降低了內存使用。 由于PDF-Extract-Kit 1.0的倉庫變更,您需要重新下載模型。請參閱如何下載模型以獲取詳細步驟。?
2024年9月27日發布0.8.1版本,修復了一些錯誤,并提供了在線演示和前端界面的本地化部署版本。?
2024年9月9日:發布0.8.0版本,支持使用Dockerfile快速部署,并在Huggingface和Modelscope上推出演示。
2024年8月30日:發布0.7.1版本,添加了paddle tablemaster表格識別選項?
2024年8月9日:發布0.7.0b1版本,簡化了安裝過程,添加了表格識別功能?
2024年8月1日:發布0.6.2b1版本,優化了依賴沖突問題和安裝文檔
2024年7月5日:首次開源發布
1、MinerU 的主要特點
去除頁眉、頁腳、腳注、頁碼等干擾信息;以人類可讀的順序輸出文本,適應單列、多列和復雜布局;保留原始文檔結構,包括標題、段落、列表等;提取圖像、圖像描述、表格、表格標題和腳注;自動識別并轉換公式為LaTeX格式;自動識別并轉換表格為HTML格式;自動檢測掃描版PDF和亂碼PDF并啟用OCR功能;OCR支持84種語言的檢測和識別;支持多種輸出格式,例如多模態和NLP Markdown、按閱讀順序排序的JSON以及豐富的中間格式;支持多種可視化結果,包括布局可視化和跨度可視化,方便確認輸出質量;支持CPU和GPU環境;兼容Windows、Linux和Mac平臺。
>> 高質量PDF提取工具:MinerU 是一款高質量的工具,能夠將PDF文件轉換成機器可讀的格式,例如Markdown和JSON。這使得數據提取和進一步處理變得非常容易。
>> 多格式輸出:支持多種輸出格式,包括多模態和NLP Markdown、按閱讀順序排序的JSON以及豐富的中間格式。
>> 結構化保留:能夠保留原始文檔的結構,包括標題、段落、列表等,保證語義連貫性。
>> 全面信息提取:不僅提取文本,還能夠提取圖像、圖像描述、表格、表格標題和腳注等信息。
>> 公式和表格轉換:自動識別并轉換文檔中的公式為LaTeX格式,表格為HTML格式。
>> OCR支持:自動檢測掃描版PDF和亂碼PDF,并啟用OCR功能,支持84種語言的檢測和識別。
>> 布局處理能力強:能夠處理單列、多列和復雜布局的文檔,并按人類可讀的順序輸出文本。 針對復雜的文本分布場景(如密集公式、不規則跨度區域和圖像表示的文本)的解析性能也有顯著提升。
>> 多種優化:進行了大量的代碼重構,解決了諸多問題,提升了性能,降低了硬件要求,并增強了易用性。 包括內存優化,支持多種模型選擇,并針對公式檢測、表格識別等功能提供了獨立開關,方便用戶根據需求調整。
>> 多種運行環境支持:支持CPU和GPU環境,兼容Windows、Linux和Mac平臺。
>> 開源且持續更新:項目開源,并持續更新和維護,不斷改進性能和功能。
2、已知問題
>> 復雜的布局可能會導致閱讀順序錯誤。
>> 不支持垂直文本。
>> 對一些不常見的列表格式識別可能存在問題。
>> 只支持一級標題。
>> 代碼塊目前不支持。
>> 漫畫書、藝術畫冊、小學課本和練習題等類型的PDF解析效果可能較差。
>> 復雜的表格識別可能出現行/列識別錯誤。
>> 對于一些小眾語言的PDF,OCR識別可能存在誤差。
>> 部分公式在Markdown中可能無法正確渲染。
MinerU 安裝和使用方法
1、MinerU的三種體驗方式
在線演示(無需安裝)、快速CPU演示(Windows、Linux、Mac)和GPU加速(需要CUDA環境)。
T1、在線演示
提供了穩定版和測試版兩個版本,無需任何安裝,可以直接在網頁上進行測試。
T2、快速CPU演示
安裝 magic-pdf:使用conda創建名為MinerU的Python 3.10虛擬環境,激活環境后,使用pip安裝 magic-pdf[full] 包,并指定額外的索引URL(--extra-index-url https://wheels.myhloli.com)。
下載模型權重文件:參考項目文檔中的“如何下載模型文件”部分進行下載。
修改配置文件:腳本會自動生成 magic-pdf.json 文件,用戶可以修改該文件中的配置來啟用或禁用某些功能,例如表格識別。 配置文件中包含對 layoutlmv3 和 doclayout_yolo 模型、公式識別和表格識別的配置選項,用戶可以根據需要進行調整。
T3、GPU 使用
如果設備支持CUDA并滿足GPU要求,可以使用GPU加速。 項目提供了Ubuntu 22.04 LTS + GPU和Windows 10/11 + GPU的詳細指南。 也提供了使用Docker進行快速部署的方法,但需要至少8GB VRAM的GPU,所有加速功能默認啟用。
2、命令行使用
MinerU可以通過命令行進行使用,具體使用方法請參考項目文檔中的“命令行”部分。
3、Python API 使用
MinerU 也提供了Python API,方便用戶在自己的程序中集成使用,具體使用方法請參考項目文檔中的“API”部分。
MinerU的案例應用
MinerU 主要應用于需要從PDF文檔中提取結構化數據的場景,例如:
科學文獻處理
MinerU最初是為了解決科學文獻中的符號轉換問題而開發的,可以用于提取文獻中的公式、表格、文本等信息,方便后續的分析和處理。
數據預處理
MinerU可以作為數據預處理工具,將PDF文檔轉換為結構化的數據,用于訓練大型語言模型或其他機器學習模型。
知識圖譜構建
MinerU可以用于提取PDF文檔中的實體關系信息,用于構建知識圖譜。
文檔摘要
MinerU可以提取PDF文檔中的關鍵信息,用于生成文檔摘要。
其他文本挖掘任務
MinerU可以用于各種文本挖掘任務,例如文本分類、情感分析等。