Datasets 文件
建立文件資料集
並獲得增強的文件體驗
開始使用
建立文件資料集
本指南將向您展示如何使用 PdfFolder
和一些元資料來建立文件資料集。這是一個無需程式碼的解決方案,用於快速建立包含數千個 PDF 檔案的文件資料集。
您可以透過要求使用者先分享聯絡資訊來控制對資料集的訪問。有關如何在 Hub 上啟用此功能的更多資訊,請檢視受限資料集指南。
PdfFolder
PdfFolder
是一個數據集構建器,旨在快速載入包含數千個 PDF 檔案的文件資料集,而無需您編寫任何程式碼。
💡 檢視分割模式層級以瞭解 PdfFolder
如何根據資料集倉庫結構建立資料集分割。
PdfFolder
根據目錄名自動推斷資料集的類別標籤。將資料集儲存在以下目錄結構中:
folder/train/resume/0001.pdf
folder/train/resume/0002.pdf
folder/train/resume/0003.pdf
folder/train/invoice/0001.pdf
folder/train/invoice/0002.pdf
folder/train/invoice/0003.pdf
如果資料集遵循 PdfFolder
結構,則可以直接使用 load_dataset() 載入它
>>> from datasets import load_dataset
>>> dataset = load_dataset("path/to/folder")
這等效於在 load_dataset() 中手動傳遞 pdffolder
並在 data_dir
中傳遞目錄
>>> dataset = load_dataset("pdffolder", data_dir="/path/to/folder")
您還可以使用 pdffolder
載入涉及多個分割的資料集。為此,您的資料集目錄應具有以下結構:
folder/train/resume/0001.pdf
folder/train/resume/0002.pdf
folder/test/invoice/0001.pdf
folder/test/invoice/0002.pdf
如果所有 PDF 檔案都包含在單個目錄中,或者它們不在同一目錄結構級別,則不會自動新增 `label` 列。如果需要,請明確設定 `drop_labels=False`。
如果您想包含有關資料集的其他資訊,例如文字標題或邊界框,請將其新增為資料夾中的 metadata.csv
檔案。這使您可以快速建立用於不同計算機視覺任務(如文字標題或物件檢測)的資料集。您還可以使用 JSONL 檔案 metadata.jsonl
或 Parquet 檔案 metadata.parquet
。
folder/train/metadata.csv
folder/train/0001.pdf
folder/train/0002.pdf
folder/train/0003.pdf
您的 metadata.csv
檔案必須有一個 file_name
或 *_file_name
欄位,用於將 PDF 檔案與它們的元資料鏈接起來
file_name,additional_feature
0001.pdf,This is a first value of a text feature you added to your pdfs
0002.pdf,This is a second value of a text feature you added to your pdfs
0003.pdf,This is a third value of a text feature you added to your pdfs
或使用 metadata.jsonl
{"file_name": "0001.pdf", "additional_feature": "This is a first value of a text feature you added to your pdfs"}
{"file_name": "0002.pdf", "additional_feature": "This is a second value of a text feature you added to your pdfs"}
{"file_name": "0003.pdf", "additional_feature": "This is a third value of a text feature you added to your pdfs"}
這裡的 file_name
必須是元資料檔案旁邊的 PDF 檔案的名稱。更一般地說,它必須是從包含元資料到 PDF 檔案的相對路徑。
可以在資料集的每一行中指向多個 PDF,例如,如果您的輸入和輸出都是 PDF
{"input_file_name": "0001.pdf", "output_file_name": "0001_output.pdf"}
{"input_file_name": "0002.pdf", "output_file_name": "0002_output.pdf"}
{"input_file_name": "0003.pdf", "output_file_name": "0003_output.pdf"}
您也可以定義 PDF 列表。在這種情況下,您需要將欄位命名為 file_names
或 *_file_names
。示例如下:
{"pdfs_file_names": ["0001_part1.pdf", "0001_part2.pdf"], "label": "urgent"}
{"pdfs_file_names": ["0002_part1.pdf", "0002_part2.pdf"], "label": "urgent"}
{"pdfs_file_names": ["0003_part1.pdf", "0002_part2.pdf"], "label": "normal"}
OCR(光學字元識別)
OCR 資料集包含 PDF 中的文字。一個示例 metadata.csv
可能如下所示:
file_name,text
0001.pdf,Invoice 1234 from 01/01/1970...
0002.pdf,Software Engineer Resume. Education: ...
0003.pdf,Attention is all you need. Abstract. The ...
使用 PdfFolder
載入資料集,它將為 PDF 標題建立一個 text
列
>>> dataset = load_dataset("pdffolder", data_dir="/path/to/folder", split="train")
>>> dataset[0]["text"]
"Invoice 1234 from 01/01/1970..."
將資料集上傳到 Hub
建立資料集後,您可以使用 huggingface_hub
等方式將其分享到 Hub。請確保您已安裝 huggingface_hub 庫並登入您的 Hugging Face 帳戶(有關更多詳細資訊,請參閱使用 Python 上傳教程)。
使用 huggingface_hub.HfApi.upload_folder
上傳您的資料集
from huggingface_hub import HfApi
api = HfApi()
api.upload_folder(
folder_path="/path/to/local/dataset",
repo_id="username/my-cool-dataset",
repo_type="dataset",
)