Datasets documentation

Buat dataset dokumen

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Buat dataset dokumen

Panduan ini akan menunjukkan cara membuat dataset dokumen dengan PdfFolder dan beberapa metadata. Ini adalah solusi tanpa kode untuk dengan cepat membuat dataset dokumen dengan beberapa ribu PDF.

Anda dapat mengontrol akses ke dataset Anda dengan meminta pengguna untuk membagikan informasi kontak mereka terlebih dahulu. Lihat panduan Gated datasets untuk informasi lebih lanjut tentang cara mengaktifkan fitur ini di Hub.

PdfFolder

PdfFolder adalah pembangun dataset yang dirancang untuk memuat dataset dokumen dengan ribuan PDF dengan cepat tanpa mengharuskan Anda menulis kode apa pun.

💡 Lihat hierarki pola Split untuk mempelajari lebih lanjut tentang bagaimana PdfFolder membuat split dataset berdasarkan struktur repositori dataset Anda.

PdfFolder secara otomatis menyimpulkan label kelas dari dataset Anda berdasarkan nama direktori. Simpan dataset Anda dalam struktur direktori seperti:

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

Jika dataset mengikuti struktur PdfFolder, maka Anda dapat memuatnya langsung dengan load_dataset():

>>> from datasets import load_dataset

>>> dataset = load_dataset("path/to/folder")

Ini setara dengan meneruskan pdffolder secara manual di load_dataset() dan direktori di data_dir:

>>> dataset = load_dataset("pdffolder", data_dir="/path/to/folder")

Anda juga dapat menggunakan pdffolder untuk memuat dataset yang melibatkan beberapa split. Untuk melakukannya, direktori dataset Anda harus memiliki struktur berikut:

folder/train/resume/0001.pdf
folder/train/resume/0002.pdf
folder/test/invoice/0001.pdf
folder/test/invoice/0002.pdf

Jika semua file PDF berada dalam satu direktori atau tidak berada pada level struktur direktori yang sama, kolom label tidak akan ditambahkan secara otomatis. Jika Anda membutuhkannya, tetapkan drop_labels=False secara eksplisit.

Jika ada informasi tambahan yang ingin Anda sertakan tentang dataset Anda, seperti teks caption atau bounding box, tambahkan sebagai file metadata.csv di folder Anda. Hal ini memungkinkan Anda dengan cepat membuat dataset untuk berbagai tugas computer vision seperti text captioning atau object detection. Anda juga dapat menggunakan file JSONL metadata.jsonl atau file Parquet metadata.parquet.

folder/train/metadata.csv
folder/train/0001.pdf
folder/train/0002.pdf
folder/train/0003.pdf

File metadata.csv Anda harus memiliki field file_name atau *_file_name yang menghubungkan file PDF dengan metadata mereka:

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

atau menggunakan 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"}

Di sini, file_name harus berupa nama file PDF yang berada di samping file metadata. Secara lebih umum, ini harus berupa path relatif dari direktori yang berisi metadata ke file PDF.

Anda dapat menunjuk ke lebih dari satu PDF di setiap baris dalam dataset Anda, misalnya jika input dan output Anda keduanya berupa 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"}

Anda juga dapat mendefinisikan daftar PDF. Dalam hal itu, Anda perlu menamai field file_names atau *_file_names. Berikut adalah contohnya:

{"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 (Optical Character Recognition)

Dataset OCR memiliki teks yang terkandung dalam PDF. Contoh metadata.csv mungkin terlihat seperti:

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 ...

Muat dataset dengan PdfFolder, dan kolom text untuk caption PDF akan dibuat:

>>> dataset = load_dataset("pdffolder", data_dir="/path/to/folder", split="train")
>>> dataset[0]["text"]
"Invoice 1234 from 01/01/1970..."

Unggah dataset ke Hub

Setelah Anda membuat dataset, Anda dapat membagikannya menggunakan huggingface_hub, misalnya. Pastikan Anda telah menginstal pustaka huggingface_hub dan telah masuk ke akun Hugging Face Anda (lihat tutorial Upload with Python untuk detail lebih lanjut).

Unggah dataset Anda dengan 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",
)
Update on GitHub