31 Punkte von GN⁺ 2024-12-14 | 2 Kommentare | Auf WhatsApp teilen
  • Ein Utility-Tool zum Konvertieren verschiedener Dateien in Markdown
  • Unterstützte Formate:
    • PDF (.pdf), PowerPoint (.pptx), Word (.docx), Excel (.xlsx)
    • Bilder (EXIF-Metadaten und OCR), Audio (EXIF-Metadaten und Sprachtranskription)
    • HTML (mit spezieller Behandlung insbesondere für Wikipedia) sowie diverse weitere textbasierte Formate (csv, json, xml usw.)
  • Die API ist einfach zu verwenden:
    from markitdown import MarkItDown  
    markitdown = MarkItDown()  
    result = markitdown.convert("test.xlsx")  
    print(result.text_content)  
    

2 Kommentare

 
kandk 2024-12-16

Oh, es sieht so aus, als würde man das sogar innerhalb von Microsoft als Open Source veröffentlichen wollen?

 
GN⁺ 2024-12-14
Hacker-News-Kommentare
  • Wenn uv installiert ist, kann man es für Dateien ohne separate Installation mit dem Befehl uvx markitdown path-to-file.pdf ausführen

    • Beim ersten Lauf werden die benötigten Pakete zwischengespeichert, bei späteren Ausführungen werden die gecachten Pakete wiederverwendet
    • Versuche mit HTML und PDF zeigen eine ziemlich ordentliche Leistung
  • Es gibt Erfahrung damit, im Unternehmen eine Funktion zu entwickeln, die Dateien in LLM-freundlichen Text umwandelt

    • Nach dem Lesen des Source Codes wirkt diese Implementierung ziemlich vernünftig
    • Für Bilder oder Spreadsheets sollte man es besser nicht verwenden
    • Bilder können direkt an den LLM-Anbieter übergeben werden, und bei Spreadsheets ist die Interpretation von Markdown-Tabellen eher schwach
  • Viele Startups und Open-Source-Projekte machen diesen Bereich unnötig komplex, aber das Endziel ist ein einfaches Projekt, das leicht verständlich und leicht bereitzustellen ist

  • Bei der PDF-Verarbeitung wäre eine Funktion wünschenswert, mit der sich steuern lässt, „wie viel Verarbeitung man möchte“

    • Bei der Textextraktion aus PDFs muss man entweder Heuristiken verwenden, die empfindlich davon abhängen, wie das PDF exportiert wurde, oder vollständig OCR einsetzen
    • Es ist unpraktisch, wenn ein Projekt auf nur eine Methode festgelegt ist
    • Speech-to-Text würde wegen anderer Leistungsmerkmale als Text-to-Text nicht verwendet werden
  • Für die PDF-Verarbeitung könnte es besser sein, PDFMiner direkt zu integrieren

  • Mit Pandoc lassen sich .docx-Dateien in Markdown und andere Dateiformate umwandeln

    • Pandoc kann keine PowerPoint- oder Excel-Dateien konvertieren
  • Es wurden Tabletop-RPG-Bücher mit komplexem visuellem Layout und vielen Tabellen im PDF-Format indexiert

    • Wenn es nur ein Wrapper für PDFMiner ist, ist der zusätzliche Wert dieses Tools nicht erkennbar
    • Tabellen werden nicht erkannt oder verarbeitet, aber es gibt zumindest eine minimale Erkennung von Tabellenzellen
    • Spalten mit variabler Breite oder Text, der auf komplexe Weise umbrochen ist, werden gut verarbeitet
    • In vollständig ausgerichteten Text werden unnötige Leerzeichen eingefügt, und bei Spaltentrennungen mitten im Satz kommen unnötige Zeilenumbrüche hinzu
    • Das größte Problem ist, dass Überschriften vollständig übersehen werden
  • Dass im README keine Erwähnung von LLMs vorkommt, ist unerwartet, aber positiv

    • Den Code zu lesen ist interessant
    • Der größte Teil ist Glue Code in einer einzigen Datei mit 1101 Zeilen
  • Es wird eine Erfahrung aus einem Online-Sprachkurs geteilt, bei dem Aufgaben über Slack eingereicht wurden

    • Die Aufgabe wurde als .md-Datei eingereicht, aber die Lehrkraft konnte damit nichts anfangen
    • Seitdem war nicht zu erwarten, noch einmal jemandem zu begegnen, der Word-Dokumente bevorzugt
  • Neugier auf einen Vergleich mit docling

    • docling verwendet LLMs
  • Es wird gefragt, ob es eine gute Bibliothek gibt, um von Markdown nach PDF oder .docx zu konvertieren

    • Pandoc funktioniert in den meisten Fällen, hat aber bei bestimmten Elementen wie Tabellen Schwierigkeiten
  • Für Microsoft sollte es möglich sein, aus Outlook-HTML und .docx zumindest halbwegs brauchbare Ergebnisse zu erzielen

    • Die meisten kostenpflichtigen Lösungen wurden ebenfalls evaluiert, aber keine wurde als gut genug für den Produktionseinsatz angesehen
    • Dieses Tool wird ausprobiert werden