Datasets 文件

建立文件資料集

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

建立文件資料集

本指南將向您展示如何使用 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",
)
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.