我现在手头有一堆 PDF 文件,它们包括书籍、论文等乱七八糟的东西。很多都是原始书籍的扫描键,最酸爽的是要么没有 OCR,要么 OCR 的质量很差。如果我想全文检索,那压根不可能。
MinerU 就能很好的解决这个问题,这个开源工具可以把 PDF 文件用 AI 转化成 Markdown 格式的文件。
你手头是否有一堆 PDF 文件,它们要么是原始扫描文件,要么 OCR 质量很差。如果能把它们统统转化成高质量的 Markdown 格式就好了。此外,MinerU 还能保留 PDF 文件中的排版,以图片的方式提取表格。这整个过程都只调用本地算力(重金所购的 4090 有用武之地了),完全不会调用云计算资源。
这对我而言,意味着能肆无忌惮地把到手的 PDF 文件先转化成 Markdown 文件再说。这一步作为我的个人本地知识库的起点,接下来才可以利用各种 AI 工具对这些文件进行操作了。
准备运行环境
不过 MinerU 的环境着实难准备,我推荐给好几个小伙伴,都没能在自己的设备上跑起来(即便他们能熟练使用 anaconda)。为此我准备了一个 oomol 流程图,并把它开源了(MinerU)。利用 oomol 能在设备上开启一个 Linux 虚拟环境的特性,这个流程图能确保你的设备只要能成功安装 oomol,就基本能正常运行这个流程图。
不过由于 MinerU 本身对 CPU 指令集的兼容问题,这个流程图现在仅支持 Windows 的 x64 架构的 CPU 设备(他们说等到 1.0 版会解决这个问题)。
oomol 可以在官网下载。我们进入 oomol 的商店页面,搜索 minerU 打开这个页面。
点击右上角的“Open by OOMOL Stduio” 下载并打开。第一次打开时,oomol 会在容器中下载并安装 MinerU 的各种依赖项(如下图),需要耐心等待它安装完毕。
配置运行参数
首先,来看这个流程图的第一个区块 MinerU model,这个区块负责加载 MinerU 的模型。我们要设置 dir_path 字段,设置一个文件夹来存储模型。
设置好文件夹后,第一次运行时,该区块会自动下载模型到这个文件夹中。此后运行便不必下载,直接从该文件夹中读取模型文件。
接下来,我们看到第二个区块 MinerU convert。它会调用各种 AI 来将 PDF 文件转化成 Markdown。
我们需要依次配置箭头所指的三个字段的内容。
pdf_path要转化的 PDF 文件。device建议有条件的设置成 CUDA。 如果显卡够不上,可以设置成 CPU,不过速度会慢很多(也不是不能用)。output_path设置一个文件夹存放 Markdown 格式的文件及其资源文件。
运行
单击右上角的播放键,就可以运行了。
运行成功后,在先前设置的文件夹内会找到若干 MinerU 生成的文件。其中扩展名为 .md 的文件就是生成的 Markdown 文件了。此外,还会有一个名为 images 的文件夹,会存储从 PDF 中提取的图片、表格等。