pandoc清洗word/pdf语料

1. 本文针对的范围

页面html上爬取信息形成语料,是通用的语料信息来源。但是,还有一部分语料是来自于过去若干年的积累的pdf/word文档,这些信息都是干货,要找到比较好的清洗办法。

2. 方法

分析一下我们的需求,实际上语料中有较多信息都是段落和表格,把这些信息清洗为markdown信息,就成为大模型的专用语言了。市面上有很多工具包,该怎么选择呢

工具 优点 缺点
Pandoc 支持多种格式转换,功能强大。 命令行工具,对初学者不友好。
Mammoth 专注于从 Word 转换,简单易用。 只支持 Word 文档,功能较单一。
MarkdowntoPDF 支持 Markdown 格式生成 PDF,也能从其他格式转。 功能相对基础,转换质量依赖源文件格式。
word2md 简单易用,专注于从 Word 转换 Markdown。 只支持 Word,可能丢失一些格式信息。
PDF2MD 在线工具,直接转换 PDF 到 Markdown。 转换效果不总是完美,复杂布局可能丢失。

通过对比以及实验,最终选择pandoc这个工具。思路为:如果是pdf文档,则将pdf转换为word,然后用pandoc解析markdown,然后对解析出来的markdown表格进行处理,得到较为完美的markdown格式。

3. Pandoc解析文档

pandoc官网:https://www.pandoc.org/
pandoc的使用也比较简单,但是需要仔细阅读一下用户手册,选择正确参数,其中转换markdown最关键的format参数,支持markdownmarkdown_mmdmarkdown_strictmarkdown_phpextra,每种分隔支持不同的表格扩展格式,

3.1 扩展的表格格式

在 Pandoc 中,表格支持多种样式和扩展功能,每种表格样式有其独特的语法和用途。以下是五种常见的 Pandoc 表格样式(simple_table、grid_table、table_caption、multiline_table、pipe_table)的介绍及示例。

1. simple_table
功能:最基础的表格语法,不需要分隔行的复杂结构,只需要对齐列即可。
示例:
Header1 Header2
------- --------
Value1 Value2
Value3 Value4
用途:适用于简单的表格,格式简洁,适合快速创建。

  1. grid_table
    功能:带有完整网格线的表格,通过 +、- 和 | 符号来创建边框和分隔符。
    示例:
    +------------+------------+------------+
    | Header1 | Header2 | Header3 |
    +------------+------------+------------+
    | Value1 | Value2 | Value3 |
    +------------+------------+------------+
    | Value4 | Value5 | Value6 |
    +------------+------------+------------+
    用途:适用于需要清晰区分每个单元格的表格,视觉效果较强,适合展示结构化的数据。

  2. table_caption
    功能:为表格添加标题或说明,可以在表格上方或下方显示标题。
    示例:
    Table 1: This is a table caption

Header1 Header2
Value1 Value2
Value3 Value4

用途:为表格添加注释或标题,适合学术写作或报告中的表格引用。

  1. multiline_table
    功能:允许表格单元格中的内容跨多行。
    示例:
    | Header1 | Header2 |
    |-----------|-------------|
    | Value1 | This is a |
    | multiline | cell text. |
    | Value2 | Another row |
    用途:适用于表格中某个单元格内容较长,需要占据多行的情况。

  2. pipe_table
    功能:最常用的表格语法,使用管道符 | 来创建表格。它是 Markdown 中标准的表格格式,简洁且易于使用。
    示例:
    | Header1 | Header2 |
    |---------|---------|
    | Value1 | Value2 |
    | Value3 | Value4 |
    用途:非常适合基本的 Markdown 渲染,常见于 Markdown 文件和文档中。

总结表格样式比较:

表格样式 优点 缺点
simple_table 语法简洁,易于快速创建简单表格。 不支持复杂结构和标题,缺乏视觉分隔。
grid_table 适合正式文档,网格清晰,适合视觉效果强的表格。 语法较为复杂,维护大型表格时不方便。
table_caption 支持添加标题,适合学术写作和报告。 语法复杂,不适合简单表格,需依赖渲染工具支持。
multiline_table 支持单元格内容跨行显示,适合内容较长的表格。 语法较复杂,可能影响视觉效果。
pipe_table 简单易用,适用于快速创建基本表格。 无法提供边框或复杂的样式,布局控制较弱。

这些表格样式可以根据需要选择,提供了从简单的列对齐到复杂的标题、跨行单元格等多种表格显示方式。

3.2 选择哪种format

table扩展 simple_table grid_table table_caption multiline_table pipe_table
markdown 支持 支持 支持 支持 支持
markdown_mmd 不支持 不支持 不支持 不支持 支持
markdown_strict 不支持 不支持 不支持 不支持 不支持
markdown_phpextra 不支持 不支持 不支持 不支持 支持

对于markdown处理来说,grid_talbe、multiline_table和simple_table是比较难处理的格式,不选择。根据测试结果,最后markdown_strict生成的table格式都是一致的,都是html的格式,最容易处理,因此最终选择format=markdown_strict。

4 小结

当清洗pdf\word的时候,通过我踩过的各种坑,推荐做法,将文档转为word文档,使用pandoc的markdown_strict,然后手工处理html表格格式为markdown格式,能得到较为完美的markdown格式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容