31 puntos por GN⁺ 2024-12-14 | 2 comentarios | Compartir por WhatsApp
  • Herramienta utilitaria para convertir diversos archivos a Markdown
  • Formatos compatibles:
    • PDF (.pdf), PowerPoint (.pptx), Word (.docx), Excel (.xlsx)
    • Imágenes (metadatos EXIF y OCR), audio (metadatos EXIF y transcripción de voz)
    • HTML (con manejo especial especialmente para Wikipedia) y varios otros formatos basados en texto (csv, json, xml, etc.)
  • El uso de la API es sencillo:
    from markitdown import MarkItDown  
    markitdown = MarkItDown()  
    result = markitdown.convert("test.xlsx")  
    print(result.text_content)  
    

2 comentarios

 
kandk 2024-12-16

Oh, parece que incluso dentro de Microsoft lo quieren convertir en código abierto, ¿no?

 
GN⁺ 2024-12-14
Comentarios en Hacker News
  • Si tienes uv instalado, puedes ejecutarlo sobre un archivo con el comando uvx markitdown path-to-file.pdf sin necesidad de instalar nada por separado

    • En la primera ejecución almacena en caché los paquetes necesarios y en las siguientes reutiliza los paquetes ya cacheados
    • Al probarlo con HTML y PDF, mostró un rendimiento bastante bueno
  • Tengo experiencia desarrollando en la empresa una función para convertir archivos a texto amigable para LLM

    • Después de leer el código fuente, esta implementación me parece bastante razonable
    • Es mejor no usarlo para imágenes ni hojas de cálculo
    • En el caso de las imágenes, pueden pasarse directamente al proveedor del LLM, y las hojas de cálculo se interpretan mal como tablas Markdown
  • Muchas startups y proyectos open source complican este campo, pero el objetivo final es un proyecto simple, fácil de entender y de desplegar

  • Para el procesamiento de PDF, sería bueno que hubiera una función para ajustar "cuánto procesamiento quieres"

    • Al extraer texto de un PDF, hay que usar heurísticas sensibles a cómo fue exportado el PDF o recurrir completamente a OCR
    • Es incómodo que el proyecto quede atado a un solo método
    • No usaría funciones de voz a texto, porque sus características de rendimiento pueden ser distintas de las de texto a texto
  • Para el procesamiento de PDF, podría ser mejor integrar directamente PDFMiner

  • Se puede usar Pandoc para convertir archivos .docx a Markdown y a otros formatos

    • Pandoc no puede convertir archivos de PowerPoint ni de Excel
  • Indexé libros de RPG de mesa en formato PDF con diseños visuales complejos y muchas tablas

    • Si esto es solo un wrapper de PDFMiner, no veo el valor agregado de esta herramienta
    • No reconoce ni procesa tablas, aunque al menos tiene un reconocimiento mínimo de celdas de tabla
    • Maneja bien columnas de ancho variable o texto envuelto de forma compleja
    • Inserta espacios innecesarios en texto completamente alineado y agrega saltos de línea innecesarios cuando divide columnas a mitad de una oración
    • El mayor problema es que omite por completo los encabezados
  • Me sorprende, pero de manera positiva, que en el README no haya menciones a LLM

    • Leer el código es interesante
    • La mayor parte es código glue en un solo archivo de 1101 líneas
  • Comparto una experiencia de cuando entregué tareas por Slack en una clase de idiomas en línea

    • Entregué la tarea como archivo .md, pero la profesora no entendió qué era
    • Desde entonces no había vuelto a encontrarme con alguien que prefiriera documentos de Word
  • Me da curiosidad la comparación con docling

    • docling usa LLM
  • Me pregunto si existe una buena librería para convertir desde Markdown a PDF o .docx

    • Pandoc puede hacerlo en la mayoría de los casos, pero tiene dificultades con ciertos elementos como las tablas
  • Siendo Microsoft, probablemente pueda dar resultados medio decentes con HTML de Outlook y con .docx

    • También evalué la mayoría de las soluciones de pago, pero ninguna me pareció lo suficientemente buena como para correrla en producción
    • Voy a probar esta herramienta