為什么要用 Markdown?以及如何使用它

在處理大量文檔時,尤其是在構建知識庫、進行文檔分析或訓練大語言模型(LLM)時,將各種格式的文件(如 PDF、Word、Excel、PPT、HTML 等)轉換為統一的 Markdown 格式,能夠顯著提高處理效率和兼容性。Microsoft 的開源項目 MarkItDown 正是為此目的而生。

什么是 MarkItDown?

MarkItDown 是一個輕量級的 Python 工具,旨在將多種文件格式轉換為 Markdown 格式,特別適用于 LLM 和相關的文本分析管道。與 Pandoc 等工具相比,MarkItDown 更加專注于保留文檔的結構和內容,如標題、列表、表格、鏈接等,輸出的 Markdown 格式既適合人類閱讀,也適合機器處理

為什么選擇 MarkItDown?

1. 多格式支持

MarkItDown 支持從多種格式轉換為 Markdown,包括:

  • PDF

  • PowerPoint(PPTX)

  • Word(DOCX)

  • Excel(XLSX)

  • 圖片(包括 EXIF 元數據和 OCR)

  • 音頻(包括 EXIF 元數據和語音轉錄)

  • HTML

  • 文本格式(如 CSV、JSON、XML)

  • ZIP 文件(迭代處理其中的內容)

  • YouTube URL

  • EPUB

  • 以及更多

這種廣泛的格式支持使得 MarkItDown 成為處理各種文檔的利器。

html -> md ,內部轉換是markdownify

2. 專為 LLM 優化

MarkItDown 輸出的 Markdown 格式經過優化,適合用于 LLM 的輸入,能夠有效利用 LLM 的上下文窗口。此外,MarkItDown 還提供了 MCP(Model Context Protocol)服務器,支持與 LLM 的實時集成,例如與 Claude Desktop 的集成。

3. 強大的插件系統

MarkItDown 提供了插件系統,用戶可以根據需要擴展功能。例如,有用戶開發了插件來處理 DOCX 文件,并將其中的圖片提取到指定文件夾中。

如何使用 MarkItDown?

安裝 MarkItDown

使用 pip 安裝:

pip install markitdown

如果想安裝全部功能(支持更多格式和插件):

pip install 'markitdown[all]'

基本用法

假設你有一個 Word 文件 example.docx,想把它轉換為 Markdown:

markitdown example.docx

輸出內容會在終端顯示。如果想保存為文件:

markitdown example.docx > example.md

python 代碼

from markitdown import MarkItDownmd = MarkItDown(enable_plugins=False) # Set to True to enable plugins
result = md.convert("example.docx")
print(result.text_content)

example.docx

轉換成的example.md

# Sample DocumentThis document was created using accessibility techniques for headings, lists, image alternate text, tables, and columns. It should be completely accessible using assistive technologies such as screen readers.## HeadingsThere are eight section headings in this document. At the beginning, "Sample Document" is a level 1 heading. The main section headings, such as "Headings" and "Lists" are level 2 headings. The Tables section contains two sub-headings, "Simple Table" and "Complex Table," which are both level 3 headings.## ListsThe following outline of the sections of this document is an ordered (numbered) list with six items. The fifth item, "Tables," contains a nested unordered (bulleted) list with two items.1. Headings
2. Lists
3. Links
4. Images
5. Tables* Simple Tables
* Complex Tables1. Columns## LinksIn web documents, links can point different locations on the page, different pages, or even downloadable documents, such as Word documents or PDFs:[Top of this Page](#_top)
[Sample Document](http://www.dhs.state.il.us/page.aspx?item=67072)
[Sample Document (docx)](http://www.dhs.state.il.us/OneNetLibrary/27897/documents/Initiatives/IITAA/Sample-Document.docx)## Images![Web Access Symbol](data:image/gif;base64...)Documents may contain images. For example, there is an image of the web accessibility symbol to the left of this paragraph. Its alternate text is "Web Access Symbol".Alt text should communicate what an image means, not how it looks.![Chart of Screen Reader Market Share. (Unfortunately, there isn't a way in Word or PDF to include rich formatting, such as a table, in alternate text.)](data:image/png;base64...)Some images, such as charts or graphs, require long descriptions, but not all document types allow that. In web pages, long descriptions may be provided in several ways: on the page below the image, via a link below the image, or via a link on the image.## Tables### Simple TablesSimple tables have a uniform number of columns and rows, without any merged cells:| **Screen Reader** | **Responses** | **Share** |
| --- | --- | --- |
| JAWS | 853 | 49% |
| NVDA | 238 | 14% |
| Window-Eyes | 214 | 12% |
| System Access | 181 | 10% |
| VoiceOver | 159 | 9% |### Complex TablesThe following is a complex table, using merged cells as headers for sections within the table. This can't be made accessible in all types of documents:|  |  |  |  |  |
| --- | --- | --- | --- | --- |
|  | **May 2012** | | **September 2010** | |
| **Screen Reader** | **Responses** | **Share** | **Responses** | **Share** |
| JAWS | 853 | 49% | 727 | 59% |
| NVDA | 238 | 14% | 105 | 9% |
| Window-Eyes | 214 | 12% | 138 | 11% |
| System Access | 181 | 10% | 58 | 5% |
| VoiceOver | 159 | 9% | 120 | 10% |## ColumnsThis is an example of columns. With columns, the page is split into two or more horizontal sections. Unlike tables, in which you usually read across a row and then down to the next, in columns, you read down a column and then across to the next.When columns are not created correctly, screen readers may run lines together, reading the first line of the first column, then the first line of the second column, then the second line of the first column, and so on. Obviously, that is not accessible.Process finished with exit code 0

轉換多種格式示例

1. PDF 轉 Markdown

markitdown document.pdf > document.md

MarkItDown 會嘗試保留標題、列表、表格和鏈接。

2. PPTX 轉 Markdown

markitdown slides.pptx > slides.md

每一張幻燈片的內容會轉換為 Markdown 的標題和列表結構。

3. Excel 轉 Markdown

markitdown data.xlsx > data.md

表格會被保留為 Markdown 表格格式,便于在筆記或 GitHub 上閱讀。

4. ZIP 文件批量處理

如果有一個 ZIP 包含多個文件:

markitdown archive.zip

MarkItDown 會自動遍歷 ZIP 內所有文件并生成 Markdown 輸出。

高級示例:帶圖片和音頻

MarkItDown 可以處理圖片和音頻文件,并嘗試提取 EXIF 元數據或進行語音轉錄:

# 圖片
markitdown photo.jpg > photo.md# 音頻
markitdown audio.mp3 > audio.md

在 LLM 工作流中的應用

MarkItDown 特別適合與大語言模型(LLM)結合使用。你可以:

  • 先將各種文檔統一轉換為 Markdown;

  • 再將 Markdown 作為輸入喂給模型進行問答或摘要;

  • 保留結構化內容(標題、列表、表格),提升 LLM 的理解能力。

GitHub - microsoft/markitdown: Python tool for converting files and office documents to Markdown.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97486.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

訂餐后臺管理系統-day06菜品分類模塊

菜品分類顯示我們需要先實現分類操作,因為沒有菜品分類,我們無法準確知道當前菜品屬于哪個分類,在前端顯示時,需要根據分類顯示數據先顯示分類列表頁面準備路由manage_bp.route(/food/cat/list) def food_cat_list():# 默認頁面從…

More Effective C++ 條款20:協助完成返回值優化(Facilitate the Return Value Optimization)

More Effective C 條款20:協助完成返回值優化(Facilitate the Return Value Optimization)核心思想:返回值優化(RVO)是編譯器消除函數返回時臨時對象的一種重要優化技術。通過編寫適合RVO的代碼&#xff0c…

《HelloGitHub》第 113 期

興趣是最好的老師,HelloGitHub 讓你對開源感興趣!簡介HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。github.com/521xueweihan/HelloGitHub這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、Java…

萌寶喂養日志-我用AI做喂養記錄小程序1-原型設計

準備工作 首先,注冊硅基流動賬號,并配置Trae開發工具。 ↓現在注冊有2000 萬 Tokens 的免費額度↓。 硅基流動統一登錄 具體可以看我這篇文章:Trae接入自有Deepseek模型,不再排隊等待-CSDN博客 實踐 設計原型圖 我想開發一…

工業產品營銷:概念、原理、流程與實踐指南

摘要 工業產品營銷是針對B2B市場的專業化推廣活動,旨在滿足企業客戶的生產和運營需求。本文詳細闡述了工業產品營銷的概念與特點,分析其核心原理,包括客戶需求驅動、價值傳遞和關系管理。營銷過程涵蓋市場調研、細分定位、策略制定、執行、轉化及售后服務六個步驟,并提供品…

【讀書筆記】《人體微生物的奧秘》

Follow Your Gut:人體微生物的奧秘 引言:從蚊子到微生物 夏天來臨,許多人又開始糾結為什么有些人特別招蚊子。有人說是血型問題,有人說是皮膚嫩度,還有人歸結于基因。但今天要分享的一本書,雖然標題看似討論…

【Matplotlib學習】駕馭畫布:Matplotlib 布局方式從入門到精通完全指南

目錄駕馭畫布:Matplotlib 布局方式從入門到精通完全指南一、 核心理念:理解 Figure 和 Axes二、 布局方式大全:從簡單到復雜類別一:自動創建與基礎單圖布局類別二:規律網格布局 - 主力軍類別三:復雜網格布局…

【C#】在一個任意旋轉的矩形(由四個頂點定義)內繪制一個內切橢圓

核心點:在一個任意旋轉的矩形(由四個頂點定義)內繪制一個內切橢圓 實現步驟 計算矩形中心:作為旋轉中心點 創建橢圓路徑:在未旋轉狀態下定義橢圓 應用旋轉變換:使用矩陣繞中心點旋轉路徑 繪制變換后的路…

洛谷 P2052 [NOI2011] 道路修建-普及/提高-

P2052 [NOI2011] 道路修建 題目描述 在 W 星球上有 nnn 個國家。為了各自國家的經濟發展,他們決定在各個國家之間建設雙向道路使得國家之間連通。但是每個國家的國王都很吝嗇,他們只愿意修建恰好 n?1n - 1n?1 條雙向道路。 每條道路的修建都要付出一定…

springboot連接不上redis,但是redis客戶端是能連接上的

除了常規排查,還有一個就是檢查配置文件格式。這個舊版本格式會導致讀取不到配置,spring:# 對應 RedisProperties 類redis:host: 127.0.0.1port: 6379 # password: 123456 # Redis 服務器密碼,默認為空。生產中,一定要設置 Red…

GitBook 完整使用指南:從安裝到部署

文章目錄 環境準備 Node.js 安裝 GitBook CLI 安裝 項目初始化 創建項目結構 (可選) npm 初始化 目錄結構配置 開發與調試 本地服務啟動 構建靜態文件 配置文件詳解 插件系統 常用插件推薦 插件安裝與配置 自定義樣式 部署指南 GitHub Pages 部署 Netlify 部署 高級功能 多語言…

VS安裝 .NETFramework,Version=v4.6.x

一、前言 在使用VS2019打開項目時提示MSB3644 找不到 .NETFramework,Versionv4.6.2 的引用程序集的錯誤 二、解決方案 1.百度......找到了解決方法了 2.打開Visual Studio Install 3.點擊修改 4.點擊單個組件,安裝相對應的版本即可

Visual Studio Code中launch.json的解析筆記

<摘要> launch.json 是 Visual Studio Code 中用于配置調試任務的核心文件。本文解析了其最常用的配置字段&#xff0c;涵蓋了基本調試設置、程序控制、環境配置和高級調試功能。理解這些字段能幫助開發者高效配置調試環境&#xff0c;提升開發效率。<解析> 1. 背景…

試試 Xget 加速 GitHub 克隆倉庫

引言 在全球化軟件開發環境中&#xff0c;開發者經常面臨跨地域訪問GitHub等平臺的網絡挑戰&#xff1a;下載速度緩慢、連接不穩定、甚至完全無法訪問。這些問題嚴重影響了開發效率和協作體驗。Xget作為一個開源的高性能資源獲取加速引擎&#xff0c;通過智能路由、多節點分發…

優雅處理Go中的SIGTERM信

在Go語言中優雅處理SIGTERM信號需通過os/signal包實現&#xff0c;核心流程包括信號注冊、異步監聽和資源清理。SIGTERM 是一種常見的進程終止信號&#xff0c;它允許程序在退出前執行必要的清理操作。與之不同&#xff0c;SIGKILL 信號無法被進程捕獲或忽略。未處理的 SIGTERM…

《R for Data Science (2e)》免費中文翻譯 (第6章) --- scripts and projects

寫在前面 本系列推文為《R for Data Science (2)》的中文翻譯版本。所有內容都通過開源免費的方式上傳至Github&#xff0c;歡迎大家參與貢獻&#xff0c;詳細信息見&#xff1a; Books-zh-cn 項目介紹&#xff1a; Books-zh-cn&#xff1a;開源免費的中文書籍社區 r4ds-zh-cn …

GitHub Spark深度體驗:是革命前夜,還是又一個“大廠玩具”?

最近&#xff0c;AI 編碼工具層出不窮&#xff0c;幾乎每天都有新概念誕生。而當 GitHub 這樣的行業巨頭攜“Vibe Coding”概念入場時&#xff0c;所有開發者的期待值都被瞬間拉滿。GitHub Spark&#xff0c;一個承諾能用自然語言將你的想法直接變成全棧應用的工具&#xff0c;…

科學研究系統性思維的方法體系:研究設計相關模版

一、研究設計方案模板 模板說明本模板基于《研究設計原理與方法》深度解讀報告的理論框架&#xff0c;幫助研究者制定系統性的研究設計方案。模板整合了因果推斷理論、效度控制框架和現代實驗設計原理。1. 研究問題界定與假設陳述 1.1 研究問題核心要素 研究問題&#xff08;明…

法律審查prompt收集

當前DeepSeek等大模型已經具備初步合同審查能力。 這里收集合同審查及相關prompt&#xff0c;不管是做Coze等Agent&#xff0c;還是開發LLM應用&#xff0c;都有可能用到這些prompt。 https://github.com/LeeXYZABC/law_propmpts.git 1 條款分析 system_prompt&#xff0c;L…

貪心算法解決活動選擇問題:最多不重疊活動數量求解

題目描述問題背景活動選擇問題是貪心算法的經典應用場景之一。假設有若干個活動&#xff0c;每個活動都有獨立的開始時間和結束時間&#xff0c;且同一時間只能進行一個活動。要求從這些活動中選擇出最大數量的不重疊活動&#xff0c;即任意兩個選中的活動&#xff0c;前一個活…