見出し画像

様々なファイルをMarkdownにするMarkitdownを試す

  [読了目安: 3分]
NO AI(人間が書きました✍️)

AI系ポッドキャスト(耳で学ぶAI)運営の矢野哲平(@robothink_jp)です。この記事ではMicrosoftが公開したMarkitdownについて解説します。

Markitdown

2024年12月にMicrosoftが公開したPythonライブラリです。

WordやPDFなどのファイルをMarkdownに変換することができます。
対応しているファイルは多岐に渡ります👇

  • PDF

  • PowerPoint, Word, Excel

  • 画像

  • 音声

  • HTML

  • CSV, JSON, XML

  • ZIPファイル

Markitdownの使い方

ここからが本題です。さっそくMarkitdownを使っていきましょう。
冒頭でも説明したようにMarkitdownはPythonのライブラリとなります。
注意点として動作にはPythonのバージョンが3.10以上の必要があるようです。

Python3.8や3.9ではエラーが出るのでご注意ください。

ImportError: cannot import name 'MarkItDown' from 'markitdown'

Pythonが3.10以上であることを確認した上でインストールします。

pip install markitdown

インストールできたら以下のコマンドをターミナルに入力すれば指定のファイルをMarkdown化できます。

markitdown path-to-file.pdf > document.md

👆ではpath-to-file.pdfを読み込みdocument.mdに変換しています。

試しにGeminiのプロンプトガイド(PDF)をMarkdown化してみました。

なるほどなるほど。テキスト部分は問題なく変換できていますね。
ただ、リスト部分はうまくいってないようです。

具体的にはPDFで

  • Persona

  • Task

  • Content

  • Format

と書かれている部分が以下のようになっています。ズレてる。

•

•

•

•

 Persona

 Task

 Context

 Format

日本語PDFで試す

次は日本語の資料で試してみます。

日本語も問題ないですね!
ちなみに、こちらの場合はリスト表示もうまく読み込めました(なぜ?)

スライドに挿入されている図はスキップされているようですね。

Pythonで書く

ちなみにMarkitdownをPythonで書くと以下のようなコードになります。

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("sample.pdf")
print(result.text_content)

シンプルですね!

画像をMarkdownに変換する

次に画像を変換してみます。
画像の場合は一手間必要でLLMのモデルを使う必要があります。
ここではOpenAI APIを使いGPT-4oのモデルで画像を説明させています。

from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("openai.jpg")
print(result.text_content)

環境変数にOpenAIのAPIキーを設定して実行してください。

試しにOpenAIのロゴを読み込ませてみました。

# Description:
The image features the logo of OpenAI, prominently displayed against 
a green background. The logo consists of a stylized, 
intertwined pattern that resembles a nodal structure, 
symbolizing the interconnectedness and 
complexity of artificial intelligence technologies.
Adjacent to the emblem is the text “OpenAI” in a crisp, modern font, 
emphasizing the organization's focus on innovation and cutting-edge AI research. 
The minimalist design and color choice suggest a commitment to clarity and
forward-thinking in the realm of technology.

【日本語訳】
# 概要
この画像には、OpenAIのロゴが緑色の背景に際立って表示されています。ロゴは、結び目のような構造を連想させるスタイリッシュで絡み合ったパターンで構成されており、人工知能技術の相互接続性と複雑さを象徴しています。エンブレムの隣には、「OpenAI」というテキストが洗練されたモダンなフォントで表示されており、革新と最先端のAI研究に対する組織の重点を強調しています。このミニマルなデザインと配色は、技術分野における明確さと先進的な姿勢への取り組みを示唆しています。

色々なファイルで試してみましたが毎回確実に100%の精度というわけではありません。
ただ、アプローチとしてはすごく面白いと思います。
色々検証して精度が悪いファイルに関しては代替手段を探すのも面白そう。

何よりシンプルに使えるのが使いやすいと思いました。

生成AIとMarkdownは非常に相性が良いと感じています。引き続き生成AIとMarkdownの組み合わせの可能性について探っていきたいと思います。

【note読者限定】生成AIのおすすめツールは?

  • 生成AIは何を使えばいいか分からない

  • もっと業務効率化に貢献するツールを知りたい

  • ChatGPT以外のAIツールを知りたい

こういった声に応えておすすめの生成AIツールを解説する資料を制作しました。よりAIの情報をキャッチアップしたい人はチェックしてみてください。

👉資料を受け取る【無料】

noteでも月に20本ほどAI関連の記事を投稿しています。フォローよろしくお願いします😼

いいなと思ったら応援しよう!

この記事が参加している募集