Marker---一个把pdf文件转换为文本文件的优秀工具

文摘   科学   2024-09-21 09:49   内蒙古  

1. 引言

把pdf文件转换为纯文本(md或txt)文件是自然语言处理的一个前提,有许多方法可以实现功能。之前自己写过一个大约80行的代码(pdf-to-txt.py)批量把pdf文件转换为txt文件【数据集准备---批量把pdf文件转换为txt文件】,如下图所示。不过,这个代码的功能有限,首先忽略了pdf文件中的图表,其次忽略了原文件的格式,如分段。

本文测试了一个相对专业的转换工具Marker (R13, 8/20/2024),Marker能够取出pdf文件中的图表,内容保存为md文本,同时去掉了pdf文件中的页眉和页脚。 


2. 安装

Marker安装在虚拟环境st下,安装命令为:
pip install marker-pdf
安装完成后,执行单个文件的转换命令marker_single,可以列出其用法和所需的参数,包括:

(1) [-h] 

(2) [--max_pages MAX_PAGES] 

(3) [--start_page START_PAGE] 

(4) [--langs LANGS]

(5) [--batch_multiplier BATCH_MULTIPLIER]

(6) filename output


3. 测试

我们使用最基本的命令对一个文件进行测试,输入的文件名为06.pdf,这个文件是名为[(2024) What I wish I knew earlier about rock engineering for deep mines.]的论文,共有10页。
marker_single d:/06.pdf d:/ --batch_multiplier 2 --max_pages 10
执行上述命令后,在d:盘生成了一个名为06的文件夹。原pdf文件的尺寸为6.2M,转换后的所有文件尺寸为964K。这个文件夹包括三部分内容:
(1) 从pdf文件取出的所有图形,经核对,取出了原文中的所有图形,共8个,图形格式为png,不过由于这些图形采用了OCR技术,因此图形质量不如原文的质量高。
(2) 与原文件相同名称的06.md。Marker取出了pdf的所有内容,但去掉了原文中的页眉和页脚。
(3) 06_meta.json文件,总结了转换信息。

4. GPU加速

目前的st环境安装的是Torch的CPU版本(pip install torch),因此不能使用GPU (Torch not compiled with CUDA enabled,未启用 CUDA 对 Torch 进行编译),即使在settings.py内把CPU的核数改为机器的最大值32,运行速度仍然没有显著改善。
PDFTEXT_CPU_WORKERS: int = 32

于是按照下面的设置安装CUDA版本。CUDA是NVIDIA专为图形处理单元(GPU)上的通用计算开发的并行计算平台和编程模型,借助CUDA,开发者能够利用GPU的强大性能显著加速计算应用。在经GPU加速的应用中,工作负载的串行部分在CPU上运行,且CPU已针对单线程性能进行优化,而应用的计算密集型部分则以并行方式在GPU核心上运行。使用CUDA时,开发者使用编程语言如 C、C++、Fortran、Python 和 MATLAB进行编程,并通过扩展程序以几个基本关键字的形式来表示并行性。

安装完成后进行测试,测试通过,证明安装成功。现在重新试验转换命令,显示采用cuda运行,转换速度明显加快。
import torchtorch_version = torch.__version__ cuda_available = torch.cuda.is_available()cuda_version = torch.version.cudacuda_count = torch.cuda.device_count()cuda_device = torch.cuda.current_device()cuda_name = torch.cuda.get_device_name(torch.cuda.current_device())cuda_mem_allo = torch.cuda.memory_allocated(0)/1024**3cuda_mem_reser = torch.cuda.memory_reserved(0)/1024**3

5. 结束语
Marker是一个很好的pdf->txt转换工具,不过正确部署这个工具通常不会一蹴而就,对较大的文件转换速度相当慢,硬件配置要求高,因此批量转换文件既费时又费力。如果你不想自己动手,可以联系本公众号为你代作,每页的服务费用为0.2元。

计算岩土力学
2024年5月8日,《计算岩土力学》建立4周年啦!
 最新文章