31 ポイント 投稿者 GN⁺ 2024-12-14 | 2件のコメント | WhatsAppで共有
  • さまざまなファイルをMarkdownに変換するユーティリティツール
  • 対応フォーマット:
    • PDF (.pdf), PowerPoint (.pptx), Word (.docx), Excel (.xlsx)
    • 画像(EXIFメタデータおよびOCR)、音声(EXIFメタデータおよび音声変換)
    • HTML(特にWikipediaなどを特別処理)そのほか多様なテキストベース形式(csv, json, xml など)
  • APIの使い方は簡単:
    from markitdown import MarkItDown  
    markitdown = MarkItDown()  
    result = markitdown.convert("test.xlsx")  
    print(result.text_content)  
    

2件のコメント

 
kandk 2024-12-16

お、マイクロソフト内部でもオープンソース化しようとしているみたいですね?

 
GN⁺ 2024-12-14
Hacker Newsの意見
  • uv をインストールしている場合、ファイルに対して追加インストールなしで uvx markitdown path-to-file.pdf コマンドで実行できる

    • 初回実行時に必要なパッケージをキャッシュし、その後の実行ではキャッシュ済みパッケージを再利用する
    • HTML と PDF で試したところ、かなり良い性能を示した
  • 会社でファイルを LLM フレンドリーなテキストに変換する機能を開発した経験がある

    • ソースコードを読んだ結果、この実装はかなり妥当だと思う
    • 画像やスプレッドシートには使わないほうがよい
    • 画像は LLM プロバイダーに直接渡せるし、スプレッドシートは Markdown テーブルの解釈が苦手だからだ
  • 多くのスタートアップやオープンソースプロジェクトがこの分野を複雑にしているが、最終的な目標は理解しやすくデプロイしやすいシンプルなプロジェクトである

  • PDF 処理では、「どれだけ多くの処理をしたいか」を調整できる機能があるとよい

    • PDF はテキスト抽出時に、PDF の書き出し方法に左右されるヒューリスティクスを使うか、完全に OCR を使う必要がある
    • プロジェクトが一つの方法に固定されるのは不便だ
    • 音声-テキスト機能はテキスト-テキスト機能と性能特性が異なる可能性があるため、使わないだろう
  • PDF 処理では PDFMiner を直接統合するほうがよいかもしれない

  • Pandoc を使えば .docx ファイルを Markdown や他のファイル形式に変換できる

    • Pandoc は PowerPoint や Excel ファイルの変換はできない
  • 複雑な視覚レイアウトと大量の表を持つ、テーブルトップ RPG 本の PDF を索引化している

    • PDFMiner のラッパーなら、このツールの付加価値は見えない
    • 表を認識したり処理したりはしないが、最低限の表セル認識はある
    • 可変幅の列や複雑な折り返し方をしたテキストはうまく処理する
    • 完全に整列したテキストに不要な空白を挿入し、文の途中で列分割された箇所に不要な改行を追加する
    • 最大の問題は、見出しを完全に見落とすことだ
  • README に LLM への言及がないのは予想外だが好印象

    • コードを読むのは興味深い
    • 大半は 1101 行の単一ファイルにあるグルーコードだ
  • オンライン語学授業で課題を Slack で提出したときの経験共有

    • .md ファイルで課題を提出したが、先生はそれを理解できなかった
    • それ以来、Word 文書を好む人に出会うとは思っていなかった
  • docling との比較が気になる

    • docling は LLM を使う
  • Markdown から PDF や .docx に変換する良いライブラリがあるのか気になる

    • Pandoc は多くの場合対応できるが、表のような特定の項目では苦労する
  • Microsoft なら Outlook HTML と .docx から半分くらいはまともな結果を出せるはず

    • 有料ソリューションの大半も評価したが、本番運用できるほど良いと思えたものはなかった
    • このツールを試してみるつもりだ