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