3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft OfficeのファイルをLLMに投入する時に一手間かけると劇的に結果が改善されるので、その一手間を記事にしてみました

3
Posted at

はじめに

日々の業務では、Word・Excel・PowerPoint・PDFなど多様な形式のファイルが飛び交う。これらをChatGPTやClaudeなどのLLMに読み込ませて要約・分析させたいと考える人は多いが、実際にやってみると次のような問題に直面しやすい。

  • PDFをコピペすると改行位置やレイアウトが崩れてテキストが読みにくくなる
  • Excelの表をそのまま貼り付けると構造(行・列・見出し)が失われる
  • PowerPointのスライドはテキストと図が混在しており、抽出が難しい
  • ファイルが大きいと、そのままではLLMのコンテキストに収まらない

こうした「LLMに読ませる前処理」の手間を解消するのが、Microsoftが公開しているオープンソースツール「MarkItDown」である。

MarkItDownとは

MarkItDownは、さまざまなファイル形式をMarkdownに変換するツールである。

MicrosoftのAutoGenチームが開発・公開しているPython製のユーティリティで、GitHub上で15万を超えるStarを獲得しており、「ファイルをLLM向けのテキストに変換する」用途のデファクトスタンダード的な位置づけになっている。

最大の特徴は、単に文字を抜き出すだけでなく、見出し・リスト・表・リンクといった文書の構造をできるだけ保ったままMarkdown化することだ。これにより、変換後のテキストをLLMに渡したときに、元の文書の論理構造(どこが見出しで、どこが表か)を維持できる。

なぜMarkdownに変換するのか

ChatGPTやClaudeなどの主要なLLMは、学習データにMarkdown形式のテキストが大量に含まれているため、Markdownの構造を自然に理解し、応答自体もMarkdown形式で返してくることが多い。つまりLLMにとってMarkdownは「読みやすく」「扱いやすい」フォーマットである。

さらに、PDFや画像をそのままLLMに渡す場合と比べて、MarkItDownで変換してから渡すことで装飾やレイアウト情報などのノイズが取り除かれ、トークン消費量を抑えられるというメリットもある。これはRAGのように大量の文書をLLMの前段で処理するケースで特に効果が大きい。

対応ファイル形式

MarkItDownは2026年6月時点(v0.1.6)で以下のような形式に有効である。

  • Office系: Word(.docx)、Excel(.xlsx)、PowerPoint(.pptx)
  • PDF
  • HTML、CSV、JSON、XML
  • YouTube URL(字幕の取得)
  • ePub

業務で頻出するOffice三種(Word/Excel/PowerPoint)とPDFをまとめて1つのツール・1つのAPIで扱えるのが、他の単機能な変換ツールと比べた強みである。

追加で環境を整えると以下の形式も扱えるらしい。

  • 画像(EXIFメタデータの抽出・OCRによるテキスト抽出)
  • 音声(メタデータ抽出・音声文字変換)
  • ZIPファイル(内部のファイルを再帰的に変換)

インストール方法

Pythonがインストールされている環境であれば、pipで簡単に導入できる。

pip install 'markitdown[all]'

最新の開発版を使いたい場合は、GitHubからソースを取得してインストールすることもできる。

git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'

基本的な使い方

コマンドラインから使う

ファイルを指定するだけでMarkdownに変換できる。

# 標準出力にMarkdownを出力
markitdown path-to-file.pdf > document.md

# ファイルに出力
markitdown path-to-file.pdf -o document.md

Pythonコードから使う

業務システムやスクリプトに組み込みたい場合は、Python APIを使う。

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.xlsx")
print(result.text_content)

変換結果はMarkdown形式の文字列として取得できるため、そのままLLMのプロンプトに埋め込んだり、ベクトルDBに格納する前処理として利用できる。

プラグインの利用

MarkItDownはデフォルトでプラグインが無効になっている。OCR強化など、サードパーティ製プラグイン(例: markitdown-ocr)を使いたい場合は明示的に有効化する。

# 利用可能なプラグインを確認
markitdown --list-plugins

# プラグインを有効にして変換
markitdown --use-plugins path-to-file.pdf

MCPサーバーとしての利用

MarkItDownはMCP(Model Context Protocol)サーバーとして動作させる機能も提供されており、Claude DesktopなどのMCP対応クライアントに接続することで、チャット上から直接ファイル変換を呼び出せる。コードを書かずに「このファイルをMarkdownにして」とチャットで依頼できる手軽さが特徴で、エンジニア以外の業務担当者にも導入しやすい選択肢になる。

業務での活用例

  • 会議資料・議事録の要約
  • PowerPointやWordの会議資料をMarkdown化し、LLMに要約・アクションアイテム抽出をさせる
  • 社内ナレッジベースのRAG化
    社内マニュアルや報告書(Word/PDF/Excel)を一括でMarkdownに変換し、社内検索チャットボットの検索対象データとして整備する
  • レポート・決算資料の分析
    Excelの集計表をMarkdown化して、傾向分析や異常値の指摘をLLMに依頼する
  • 大量ファイルの一次変換バッチ
    ZIPでまとめられた大量のOfficeファイルを再帰的に変換し、後続のLLM処理パイプラインに流し込む

利用時の注意点・制限

  • 複雑なレイアウト(多段組み・図と文字が重なるデザインなど)のPDFやPowerPointは、変換時に意図した順序・構造にならないことがある
  • 画像内の文字を読み取るOCR機能はプラグイン依存であり、デフォルトでは無効になっている
  • 機密情報を含む社内文書を外部LLM APIに渡す場合は、変換だけでなく送信先のセキュリティ・利用規約も別途確認が必要
  • あくまで「変換」ツールであり、要約や分析自体はLLM側の役割であることを理解しておく

競合ツール

比較表

MarkItDown以外にも、ファイルをLLM/RAG向けに変換・構造化するOSSはいくつか存在する。代表的なものを比較する。

ツール 開発元 特徴 MarkItDownとの違い
Docling IBM Research AIによるレイアウト解析で表・数式・多段組みの構造を高精度に保持 精度重視で重く遅い。複雑な学術文書・帳票に強い
Marker datalab-to Surya OCRベース。--use_llmオプションでLLMによる精度補正も可能 GPUを使えば高精度。画像中心の文書に強い
MinerU OpenDataLab 研究用途向けの高精度PDF抽出 学術論文など複雑なPDFに特化
PyMuPDF4LLM ML/GPU不要の軽量ライブラリ ネイティブPDF(テキスト埋め込み済み)の変換が最速
Pandoc 汎用文書変換の老舗OSS。Markdown含む多形式の相互変換が可能 LLM向け最適化やOffice→Markdown特化ではない、文書変換全般のスイスアーミーナイフ
Unstructured Unstructured.io ファイルを論理要素(Title/Table/ListItemなど)に分割し、チャンキング・40以上のデータコネクタまで備えるETLプラットフォーム 単純な「変換」ではなく、RAGパイプライン全体(パース→チャンク化→ベクトルDB投入)をカバー。学習コストは高め

使い分けの目安

  • 手軽にOfficeファイルをLLMに読ませたい・素早く試したい → MarkItDown
  • 複雑な表・多段組み・数式を含む文書の精度を重視したい → Docling/Marker
  • 社内文書を大量に取り込んで本格的なRAGシステムを構築したい(チャンキングやコネクタも必要) → Unstructured

実務では「まずMarkItDownで高速に変換し、品質が不足する文書だけDoclingなどにフォールバックする」というハイブリッド運用も紹介されており、MarkItDownは数あるツールの中でも「導入の手軽さ」と「対応形式の広さ」で選ばれることが多い。

おわりに

MarkItDownは、業務で扱う多様なOfficeファイルをLLMが読みやすいMarkdown形式に変換し、文書構造を保ったまま前処理の手間を大幅に削減できるオープンソースツールである。CLIでもPython APIでも手軽に使えるうえ、Claude DesktopとのMCP連携によりノーコードでの利用も可能なため、エンジニアだけでなく業務担当者にとっても「LLM活用の入り口」を広げてくれる存在といえる。一方で、精度や大規模パイプライン構築を重視する場合はDoclingやUnstructuredといった選択肢も検討するとよい。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?