数据集准备---批量把pdf文件转换为txt文件
1 引言
训练语言模型需要准备大量数据文件,但其格式必须是纯文本,也就是txt文件,不能使用带有格式的文件,如常见的html,pdf或docx。把pdf文件转换为文本的方法很多,既可以使用手动方法,也可以使用工具软件。由于我们要批量把pdf文件转换为txt文件,而且要去掉文件内的所有html格式,因此自己写了一段大约80行的代码(pdf-to-txt.py)来实现这个目的,如下图所示。
2 代码功能
可以把pdf文件拖进来,也可以打开文件对话框选择要转换的文件,文件即时进行转换,保存到指定的目录中,转换后的txt文件与原来的pdf文件同名。也可以直接指定整个目录,这样就把该目录下的所有pdf文件进行了转换,转换速度非常快。
3 安装的库
最重要的库是PyPDF2和html2text,在测试时发现一些pdf文件需要安装PyCryptodome库,否则出现错误信息:"PyCryptodome is required for AES algorithm",因此PyCryptodome库也必须安装,暂时还没有发现其它需要额外安装的库。
4 应用
目前已经使用这个代码转换了\02_Rock Mechanics下的A~F部分,极大地扩展了数据集的搜索能力。例如使用我们自己的C(n,3)算法,搜索"catch bench stability",得到如下结果:(1) (1995) Computer modeling of catch benches to mitigate rockfall hazards in open pit mines(3) Designing catch benches(4) Rock Slope Engineering其中(1)和(4)是刚使用这个代码转换过来的txt文件。基于这个搜索结果,一个综合的总结(Sage + ChatGPT + Claude-instant)如下:(1) 讨论了使用计算机辅助分析评估和提高露天矿安全平台的稳定性,重点是减轻岩石坠落的危害,特别是在不连续岩体中,岩石沿着天然裂缝滑动。[(2000) Computer modeling of catch benches to mitigate rockfall hazards in open pit mines. ](3) 工程分析应该考虑安全平台的稳定性以及在矿山生命周期内保持其功能性。[(2000) Designing Catch Benches and lnterramp Slopes](5) Aitik矿山案例研究:(a) (2002) Improved Blasting and Bench Slope Design at the Aitik Mine; (b) (2018) Analysis of Large-Scale Pit Slope Stability - The Aitik Mine Revisited.