在模型应用开发中,经常会遇到需要把各种文件转换成模型比较可读的文本数据,比如从excel、word中提取出里面的文本内容,用于后续的问答或者rag流程。
微软最近开源了一个可以把各种格式的文件和office相关格式的文件转换为 Markdown 的 Python 工具,markitdown。
它目前支持的文件格式有:PDF (.pdf)、PowerPoint (.pptx)、Word (.docx)、Excel (.xlsx)、图片(EXIF元数据和光学字符识别OCR)、音频(EXIF元数据和语音转录)、HTML(对维基百科等特殊处理)、各种其他基于文本的格式(csv, json, xml等)。
安装
安装很简单,啪一下就行
pip install markitdown
Demo
from markitdown import MarkItDown
markitdown = MarkItDown()
result = markitdown.convert("test.xlsx")
print(result.text_content)
测试结果
高级用法
markitdown也支持调用大模型来处理图片、音视频等格式的文件数据。我这里用gpt-4o来测试上面的表格提取的结果对比图(模型需要支持视觉)
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI(
api_key='your key',
base_url='xxx',
timeout=100
)
md = MarkItDown(mlm_client=client, mlm_model='gpt-4o')
x = md.convert(source='test_1.png', mlm_prompt='提取图片里的信息,并且总结')
print(x.text_content)
converter
目前支持的converter有14种,并且还支持bing搜索的结果处理,这里就不一一测试了,感兴趣的小伙伴可以自行测试一下~
还是得来个总结
虽然在大模型时代,多模态能力已经成为人工智能发展的一个重要趋势。但是尽管如此,将各种文件格式转换成Markdown的需求依然存在。主要体现在下面几个方面:
非结构化数据转换:多模态大模型虽然能够理解图片和PDF文件中的版式元素,但它们通常需要将非结构化数据转换为结构化的格式,如Json代码和Markdown格式文件,以提高文档处理的效率和准确性。
提高模型训练效率:在模型训练环节,将PDF文件转换为Markdown格式可以将非结构化数据纳入模型训练流程,从而提高模型的泛化能力和适应性。
复杂文档解析:对于包含数学公式和表达式的文档,多模态大模型需要准确地识别和翻译这些复杂元素。文件转换工具可以帮助将这些复杂元素准确地转化为LaTeX代码,减少手动校对和修正的时间。
知识管理和团队协作:将PDF文档转换为Markdown格式,可以方便地进行标注、归档和全文检索,助力个人知识管理和团队协作。
数据源集成:Markdown格式的资料易于存储、索引和检索,可作为RAG(检索增强生成)系统的数据源,为大模型在对话、问答与推理中提供高质量知识支持。
在线文档与静态网站构建:Markdown可以轻松转换为HTML或接入静态网站生成器,便于快速构建在线知识库、博客与技术文档网站。
批量处理和自动化:文件转换工具如Doc2X提供多线程与批处理能力,可以快速将大量PDF文档转为Markdown,提高团队生产力与数据整理效率。
API集成:许多文件转换工具提供API接口,支持将PDF转Markdown功能集成到内部流程、数据管道或知识管理系统中,实现全自动化处理与持续更新。
到这里本篇已经完结,也欢迎大家在评论区留言,分享你对模型应用的一些经验和看法~