Datasets documentation

Bir belge veri seti oluşturun

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

Bir belge veri seti oluşturun

Bu kılavuz, PdfFolder ve bazı metadata ile bir belge veri seti oluşturma yöntemini gösterir. Bu, binlerce PDF içeren bir belge veri setini hızlıca oluşturmak için kod gerektirmeyen bir çözümdür.

Veri setinize erişimi, kullanıcıların önce iletişim bilgilerini paylaşmasını gerektirerek kontrol edebilirsiniz. Bu özelliği Hub'da nasıl etkinleştireceğinize dair daha fazla bilgi için Gated datasets kılavuzuna göz atın.

PdfFolder

PdfFolder, kod yazmanıza gerek kalmadan birkaç bin PDF içeren bir belge veri setini hızlıca yüklemek için tasarlanmış bir veri seti oluşturucudur.

💡 PdfFolder'ın veri seti deposu yapınıza dayalı olarak veri seti bölümlerini nasıl oluşturduğunu öğrenmek için Bölme desen hiyerarşisine göz atın.

PdfFolder, veri setinizin sınıf etiketlerini dizin adına göre otomatik olarak çıkarır. Veri setinizi aşağıdaki gibi bir dizin yapısında saklayın:

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

Veri kümesi PdfFolder yapısını izliyorsa, doğrudan load_dataset() ile yükleyebilirsiniz:

>>> from datasets import load_dataset

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

Bu, load_dataset() içinde pdffolder değerini ve dizini data_dir içinde elle geçirmeye eşdeğerdir:

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

Birden fazla bölüme sahip veri setlerini yüklemek için pdffolder kullanabilirsiniz. Bunu yapmak için veri seti dizininizin aşağıdaki yapıya sahip olması gerekir:

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

Tüm PDF dosyaları tek bir dizinde yer alıyorsa veya aynı dizin yapısı seviyesinde değillerse, label sütunu otomatik olarak eklenmez. Bu sütuna ihtiyacınız varsa, drop_labels=False değerini açıkça belirleyin.

Veri setiniz hakkında eklemek istediğiniz ek bilgiler varsa, örneğin metin açıklamaları veya sınırlayıcı kutular, bunları klasörünüze metadata.csv dosyası olarak ekleyin. Bu sayede metin açıklama veya nesne algılama gibi farklı bilgisayarlı görme görevleri için veri setlerini hızla oluşturabilirsiniz. Ayrıca bir JSONL dosyası olan metadata.jsonl veya bir Parquet dosyası olan metadata.parquet kullanabilirsiniz.

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

metadata.csv dosyanız, PDF dosyalarını metadata ile ilişkilendiren bir file_name veya *_file_name alanına sahip olmalıdır:

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

veya metadata.jsonl kullanarak:

{"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"}

Burada file_name, metadata dosyasının yanındaki PDF dosyasının adı olmalıdır. Daha genel olarak, metadata dosyasının bulunduğu dizinden PDF dosyasına göre göreli yol olmalıdır.

Veri setinizdeki her satırda birden fazla PDF'ye işaret etmeniz mümkündür, örneğin hem girdi hem de çıktınız PDF ise:

{"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 listeleri de tanımlayabilirsiniz. Bu durumda alanın adını file_names veya *_file_names olarak belirlemeniz gerekir. İşte bir örnek:

{"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 (Optik Karakter Tanıma)

OCR veri setleri, bir PDF'de bulunan metni içerir. metadata.csv örneği şu görünüme sahip olabilir:

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

Veri setini PdfFolder ile yükleyin; bu, PDF açıklamaları için bir text sütunu oluşturacaktır:

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

Veri setini Hub'a yükle

Bir veri seti oluşturduktan sonra, örneğin huggingface_hub kullanarak paylaşabilirsiniz. huggingface_hub kütüphanesinin yüklü olduğundan ve Hugging Face hesabınıza giriş yaptığınızdan emin olun (daha fazla ayrıntı için Python ile Yükleme öğreticisi’ne bakın).

Veri setinizi huggingface_hub.HfApi.upload_folder ile yükleyin:

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