pandoc清洗word/pdf語料

1. 本文針對(duì)的范圍

頁面html上爬取信息形成語料,是通用的語料信息來源。但是,還有一部分語料是來自于過去若干年的積累的pdf/word文檔,這些信息都是干貨,要找到比較好的清洗辦法。

2. 方法

分析一下我們的需求,實(shí)際上語料中有較多信息都是段落和表格,把這些信息清洗為markdown信息,就成為大模型的專用語言了。市面上有很多工具包,該怎么選擇呢

工具 優(yōu)點(diǎn) 缺點(diǎn)
Pandoc 支持多種格式轉(zhuǎn)換,功能強(qiáng)大。 命令行工具,對(duì)初學(xué)者不友好。
Mammoth 專注于從 Word 轉(zhuǎn)換,簡單易用。 只支持 Word 文檔,功能較單一。
MarkdowntoPDF 支持 Markdown 格式生成 PDF,也能從其他格式轉(zhuǎn)。 功能相對(duì)基礎(chǔ),轉(zhuǎn)換質(zhì)量依賴源文件格式。
word2md 簡單易用,專注于從 Word 轉(zhuǎn)換 Markdown。 只支持 Word,可能丟失一些格式信息。
PDF2MD 在線工具,直接轉(zhuǎn)換 PDF 到 Markdown。 轉(zhuǎn)換效果不總是完美,復(fù)雜布局可能丟失。

通過對(duì)比以及實(shí)驗(yàn),最終選擇pandoc這個(gè)工具。思路為:如果是pdf文檔,則將pdf轉(zhuǎn)換為word,然后用pandoc解析markdown,然后對(duì)解析出來的markdown表格進(jìn)行處理,得到較為完美的markdown格式。

3. Pandoc解析文檔

pandoc官網(wǎng):https://www.pandoc.org/
pandoc的使用也比較簡單,但是需要仔細(xì)閱讀一下用戶手冊(cè),選擇正確參數(shù),其中轉(zhuǎn)換markdown最關(guān)鍵的format參數(shù),支持markdown、markdown_mmd、markdown_strict、markdown_phpextra,每種分隔支持不同的表格擴(kuò)展格式,

3.1 擴(kuò)展的表格格式

在 Pandoc 中,表格支持多種樣式和擴(kuò)展功能,每種表格樣式有其獨(dú)特的語法和用途。以下是五種常見的 Pandoc 表格樣式(simple_table、grid_table、table_caption、multiline_table、pipe_table)的介紹及示例。

1. simple_table
功能:最基礎(chǔ)的表格語法,不需要分隔行的復(fù)雜結(jié)構(gòu),只需要對(duì)齊列即可。
示例:
Header1 Header2
------- --------
Value1 Value2
Value3 Value4
用途:適用于簡單的表格,格式簡潔,適合快速創(chuàng)建。

  1. grid_table
    功能:帶有完整網(wǎng)格線的表格,通過 +、- 和 | 符號(hào)來創(chuàng)建邊框和分隔符。
    示例:
    +------------+------------+------------+
    | Header1 | Header2 | Header3 |
    +------------+------------+------------+
    | Value1 | Value2 | Value3 |
    +------------+------------+------------+
    | Value4 | Value5 | Value6 |
    +------------+------------+------------+
    用途:適用于需要清晰區(qū)分每個(gè)單元格的表格,視覺效果較強(qiáng),適合展示結(jié)構(gòu)化的數(shù)據(jù)。

  2. table_caption
    功能:為表格添加標(biāo)題或說明,可以在表格上方或下方顯示標(biāo)題。
    示例:
    Table 1: This is a table caption

Header1 Header2
Value1 Value2
Value3 Value4

用途:為表格添加注釋或標(biāo)題,適合學(xué)術(shù)寫作或報(bào)告中的表格引用。

  1. multiline_table
    功能:允許表格單元格中的內(nèi)容跨多行。
    示例:
    | Header1 | Header2 |
    |-----------|-------------|
    | Value1 | This is a |
    | multiline | cell text. |
    | Value2 | Another row |
    用途:適用于表格中某個(gè)單元格內(nèi)容較長,需要占據(jù)多行的情況。

  2. pipe_table
    功能:最常用的表格語法,使用管道符 | 來創(chuàng)建表格。它是 Markdown 中標(biāo)準(zhǔn)的表格格式,簡潔且易于使用。
    示例:
    | Header1 | Header2 |
    |---------|---------|
    | Value1 | Value2 |
    | Value3 | Value4 |
    用途:非常適合基本的 Markdown 渲染,常見于 Markdown 文件和文檔中。

總結(jié)表格樣式比較:

表格樣式 優(yōu)點(diǎn) 缺點(diǎn)
simple_table 語法簡潔,易于快速創(chuàng)建簡單表格。 不支持復(fù)雜結(jié)構(gòu)和標(biāo)題,缺乏視覺分隔。
grid_table 適合正式文檔,網(wǎng)格清晰,適合視覺效果強(qiáng)的表格。 語法較為復(fù)雜,維護(hù)大型表格時(shí)不方便。
table_caption 支持添加標(biāo)題,適合學(xué)術(shù)寫作和報(bào)告。 語法復(fù)雜,不適合簡單表格,需依賴渲染工具支持。
multiline_table 支持單元格內(nèi)容跨行顯示,適合內(nèi)容較長的表格。 語法較復(fù)雜,可能影響視覺效果。
pipe_table 簡單易用,適用于快速創(chuàng)建基本表格。 無法提供邊框或復(fù)雜的樣式,布局控制較弱。

這些表格樣式可以根據(jù)需要選擇,提供了從簡單的列對(duì)齊到復(fù)雜的標(biāo)題、跨行單元格等多種表格顯示方式。

3.2 選擇哪種format

table擴(kuò)展 simple_table grid_table table_caption multiline_table pipe_table
markdown 支持 支持 支持 支持 支持
markdown_mmd 不支持 不支持 不支持 不支持 支持
markdown_strict 不支持 不支持 不支持 不支持 不支持
markdown_phpextra 不支持 不支持 不支持 不支持 支持

對(duì)于markdown處理來說,grid_talbe、multiline_table和simple_table是比較難處理的格式,不選擇。根據(jù)測(cè)試結(jié)果,最后markdown_strict生成的table格式都是一致的,都是html的格式,最容易處理,因此最終選擇format=markdown_strict。

4 小結(jié)

當(dāng)清洗pdf\word的時(shí)候,通過我踩過的各種坑,推薦做法,將文檔轉(zhuǎn)為word文檔,使用pandoc的markdown_strict,然后手工處理html表格格式為markdown格式,能得到較為完美的markdown格式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容