Datasets documentation

إنشاء مجموعة بيانات مستندات

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

إنشاء مجموعة بيانات مستندات

ستُظهر لك هذه الدليل كيفية إنشاء مجموعة بيانات مستندات باستخدام 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")

يعادل هذا تمرير pdffolder يدويًا في load_dataset() والمجلد في 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)

تحتوي مجموعات بيانات التعرف الضوئي على الحروف على النص الموجود في ملف 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، وسيتم إنشاء عمود text لعناوين ملفات PDF:

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

رفع مجموعة البيانات إلى Hub

بمجرد إنشاء مجموعة بيانات، يمكنك مشاركتها باستخدام huggingface_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",
)
Update on GitHub