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

الفئات الرئيسية

DatasetInfo

فئة datasets.DatasetInfo

< >

( description: str = <factory>citation: str = <factory>homepage: str = <factory>license: str = <factory>features: typing.Optional[datasets.features.features.Features] = Nonepost_processed: typing.Optional[datasets.info.PostProcessedInfo] = Nonesupervised_keys: typing.Optional[datasets.info.SupervisedKeysData] = Nonebuilder_name: typing.Optional[str] = Nonedataset_name: typing.Optional[str] = Noneconfig_name: typing.Optional[str] = Noneversion: typing.Union[str, datasets.utils.version.Version, NoneType] = Nonesplits: typing.Optional[datasets.splits.SplitDict] = Nonedownload_checksums: typing.Optional[dict] = Nonedownload_size: typing.Optional[int] = Nonepost_processing_size: typing.Optional[int] = Nonedataset_size: typing.Optional[int] = Nonesize_in_bytes: typing.Optional[int] = None )

المعاملات

  • description (str) — وصف للمجموعة.
  • citation (str) — استشهاد BibTeX للمجموعة.
  • homepage (str) — رابط (URL) إلى الصفحة الرئيسية الرسمية للبيانات.
  • license (str) — رخصة مجموعة البيانات. يمكن أن تكون اسم الرخصة أو فقرة تحتوي على شروط الرخصة.
  • features (Features، اختياري) — الميزات المستخدمة لتحديد أنواع أعمدة مجموعة البيانات.
  • post_processed (PostProcessedInfo، اختياري) — مُتروك. معلومات حول الموارد الخاصة بمعالجة لاحقة محتملة لمجموعة بيانات. على سبيل المثال، يمكن أن تحتوي على معلومات حول فهرس.
  • supervised_keys (SupervisedKeysData، اختياري) — يحدد الميزة المدخلة والوسم للتعلم الإشرافي إذا كان ذلك ينطبق على مجموعة البيانات (موروث من TFDS).
  • builder_name (str، اختياري) — اسم فئة فرعية من GeneratorBasedBuilder المستخدمة لإنشاء مجموعة البيانات. وهو أيضًا النسخة بصيغة snake_case من اسم فئة منشئ مجموعة البيانات.
  • config_name (str، اختياري) — اسم الإعداد المشتق من BuilderConfig.
  • version (str أو Version، اختياري) — إصدار مجموعة البيانات.
  • splits (dict، اختياري) — التعيين بين اسم التقسيم والميتاداتا.
  • download_checksums (dict, اختياري) — التعيين بين عنوان URL لتنزيل جداول التحقق من سلامة مجموعة البيانات والميتاداتا المقابلة.
  • download_size (int، اختياري) — حجم الملفات التي سيتم تنزيلها لتوليد مجموعة البيانات، بالبايت.
  • post_processing_size (int، اختياري) — مُتروك. حجم مجموعة البيانات بالبايت بعد المعالجة اللاحقة، إن وُجدت.
  • dataset_size (int، اختياري) — الحجم الإجمالي بالبايت لجداول Arrow الخاصة بجميع التقسيمات.
  • size_in_bytes (int، اختياري) — الحجم الإجمالي بالبايت لجميع الملفات المرتبطة بالبيانات (الملفات المُحمّلة + ملفات Arrow).
  • **config_kwargs (حجج إضافية بالكلمات المفتاحية) — حجج بالكلمات المفتاحية تُمرَّر إلى BuilderConfig وتُستخدم في DatasetBuilder.

معلومات حول مجموعة بيانات.

DatasetInfo يوثّق مجموعات البيانات، بما في ذلك اسمها وإصدارها وميزاتها. راجع معاملات المنشئ والخصائص للحصول على قائمة كاملة.

ليست جميع الحقول معروفة عند الإنشاء وقد يتم تحديثها لاحقًا.

from_directory

< >

( dataset_info_dir: strstorage_options: typing.Optional[dict] = None )

المعاملات

  • dataset_info_dir (str) — المجلد الذي يحتوي على ملف البيانات الوصفية. يجب أن يكون هذا المجلد هو المجلد الجذري لإصدار محدد من مجموعة البيانات.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.9.0

أنشئ DatasetInfo من ملف JSON الموجود في dataset_info_dir.

تحديث هذه الدالة جميع الحقول المولّدة ديناميكيًا (num_examples، hash، وقت الإنشاء،…) الخاصة بـ DatasetInfo.

سيؤدي هذا إلى تجاوز جميع البيانات الوصفية السابقة.

مثال:

>>> from datasets import DatasetInfo
>>> ds_info = DatasetInfo.from_directory("/path/to/directory/")

write_to_directory

< >

( dataset_info_dirpretty_print = Falsestorage_options: typing.Optional[dict] = None )

المعاملات

  • dataset_info_dir (str) — المجلد الوجهة.
  • pretty_print (bool، القيمة الافتراضية False) — إذا كانت True، فسيتم عرض JSON بتنسيق مقروء مع مستوى مسافة بادئة قدره 4.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.9.0

اكتب DatasetInfo والرخصة (إن وُجدت) كملفات JSON في dataset_info_dir.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.info.write_to_directory("/path/to/directory/")

مجموعة البيانات

تُنفّذ الفئة الأساسية Dataset مجموعة بيانات مدعومة بجدول Apache Arrow.

فئة datasets.Dataset

< >

( arrow_table: Tableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_table: typing.Optional[datasets.table.Table] = Nonefingerprint: typing.Optional[str] = None )

مجموعة بيانات مدعومة بجدول Arrow.

add_column

< >

( name: strcolumn: typing.Union[list, numpy.ndarray]new_fingerprint: typing.Optional[str] = Nonefeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure, NoneType] = None )

المعاملات

  • name (str) — اسم العمود.
  • column (list أو np.array) — بيانات العمود المراد إضافتها.
  • feature (FeatureType أو None، الافتراضي None) — نوع بيانات العمود.

إضافة عمود إلى Dataset.

أُضيف في 1.7

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> more_text = ds["text"]
>>> ds = ds.add_column(name="text_2", column=more_text)
>>> ds
Dataset({
    features: ['text', 'label', 'text_2'],
    num_rows: 1066
})

add_item

< >

( item: dictnew_fingerprint: typing.Optional[str] = None )

المعاملات

  • item (dict) — بيانات العنصر المراد إضافته.

إضافة عنصر إلى Dataset.

أُضيف في 1.7

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> new_review = {'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}
>>> ds = ds.add_item(new_review)
>>> ds[-1]
{'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}

from_file

< >

( filename: strinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_filename: typing.Optional[str] = Nonein_memory: bool = False )

المعاملات

  • filename (str) — اسم ملف مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • indices_filename (str, اختياري) — أسماء ملفات الفهارس.
  • in_memory (bool، الافتراضي False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.

أنشئ كائن Dataset مدعوماً بجدول Arrow في المسار filename.

from_buffer

< >

( buffer: Bufferinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_buffer: typing.Optional[pyarrow.lib.Buffer] = None )

المعاملات

  • buffer (pyarrow.Buffer) — مخزن Arrow.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • indices_buffer (pyarrow.Buffer، اختياري) — مخزن Arrow للفهارس.

أنشئ كائن Dataset مدعوماً بذاكرة Arrow.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = None )

المعاملات

  • df (pandas.DataFrame) — إطار بيانات يحتوي على مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • preserve_index (bool، اختياري) — ما إذا كان سيتم تخزين الفهرس كعمود إضافي في مجموعة البيانات الناتجة. القيمة الافتراضية None ستخزّن الفهرس كعمود، باستثناء RangeIndex الذي يُخزَّن كبيانات وصفية فقط. استخدم preserve_index=True لإجباره على التخزين كعمود.

قم بتحويل pandas.DataFrame إلى pyarrow.Table لإنشاء Dataset.

تُستنتج أنواع الأعمدة في جدول Arrow الناتج من أنواع البيانات (dtypes) الخاصة بـ pandas.Series داخل DataFrame. في حالة السلاسل غير الكائنية (non-object Series)، يُترجم نوع NumPy إلى ما يعادله في Arrow. أما في حالة object، فيجب تخمين نوع البيانات من خلال فحص الكائنات Python الموجودة في هذا السلسلة.

انتبه إلى أن سلسلة من نوع object لا تحمل معلومات كافية دائمًا للتوصل إلى نوع Arrow ذي معنى. في حال تعذّر استنتاج النوع، على سبيل المثال لأن إطار البيانات طوله 0 أو لأن السلسلة تحتوي فقط على كائنات None/nan، يتم تعيين النوع إلى null. يمكن تجنّب هذا السلوك من خلال بناء ميزات صريحة وتوريدها إلى هذه الدالة.

Important: a dataset created with from_pandas() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

مثال:

>>> ds = Dataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

المعاملات

  • mapping (Mapping) — تعيين السلاسل النصية إلى مصفوفات أو قوائم بايثون.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • on_mixed_types (Literal["use_json"], اختياري, القيمة الافتراضية هي None) — إذا كانت القيمة "use_json"، يتم استخدام نوع Json() للحقول ذات الأنواع المختلطة، أي الحقول غير المهيكلة التي تحتوي على بيانات بدون مخطط مسبق التعريف. في هذه الحالة، يُضبط الحقل ذو النوع المختلط على Json().

    يتيح هذا تحميل قوائم تحتوي على مزيج من النصوص/الأعداد الصحيحة/الأعداد العشرية، على سبيل المثال، أو قواميس ذات أنواع قيم عشوائية.

    أُضيف في 4.7.0

تحويل dict إلى pyarrow.Table لإنشاء Dataset.

Important: a dataset created with from_dict() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

أمثلة:

احصل على مجموعة بيانات من قاموس يحتوي على قائمة واحدة لكل عمود:

>>> ds = Dataset.from_dict({"text": ["hello there !", "general kenobi !"]})

مرّر الميزات لتحديد أنواع الأعمدة، على سبيل المثال لبيانات الصور:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_dict({"image": ["path/to/image.png"]}, features=features)

تستند مجموعات البيانات إلى Arrow وهو تنسيق أعمدة، ولذلك يتوقع أن يكون لكل مثال نفس النوع والأنواع الفرعية، وأن تكون القواميس ذات نفس المفاتيح وأنواع القيم. عند تحميل مجموعة بيانات، يظهر خطأ إذا كانت الحقول ذات أنواع غير متطابقة، وتُملأ الحقول الناقصة في القواميس بقيمة None بحيث تمتلك جميع القواميس نفس المفاتيح وأنواع القيم.

لتجنّب ذلك والسماح بأنواع مختلطة دون أخطاء، يمكنك استخدام on_mixed_types="use_json" أو تحديد features= مع نوع Json:

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]})
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

يُفيد هذا أيضًا في حالة قوائم من القواميس ذات مفاتيح وقيم عشوائية، لتجنب ملء الحقول الناقصة بقيمة None:

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]})
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

مثال آخر مع بيانات استدعاء الأدوات:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_dict({"messages": [messages]}, on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

المعاملات

  • mapping (List[dict]) — قائمة من خرائط تُحوّل السلاسل النصية إلى قيم الصفوف.
  • features (Features، اختياري) — ميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • on_mixed_types (Literal["use_json"], اختياري, القيمة الافتراضية هي None) — إذا كانت القيمة "use_json"، يتم استخدام نوع Json() للحقول ذات الأنواع المختلطة، أي الحقول غير المهيكلة التي تحتوي على بيانات بدون مخطط مسبق التعريف. في هذه الحالة، يُضبط الحقل ذو النوع المختلط على Json().

    يتيح هذا تحميل قوائم تحتوي على مزيج من النصوص/الأعداد الصحيحة/الأعداد العشرية، على سبيل المثال، أو قواميس ذات أنواع قيم عشوائية.

    أُضيف في 4.7.0

تحويل قائمة من القواميس إلى pyarrow.Table لإنشاء Dataset`.

لاحظ أن مفاتيح الإدخال الأول ستُستخدم لتحديد أعمدة مجموعة البيانات، بغض النظر عما يُمرر إلى features.

Important: a dataset created with from_list() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

أمثلة:

احصل على مجموعة بيانات من قائمة تحتوي على الأمثلة:

>>> ds = Dataset.from_list([{"text": "hello there !"}, {"text": "general kenobi !"}]})

مرّر الميزات لتحديد أنواع الأعمدة، على سبيل المثال لبيانات الصور:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_list([{"image": "path/to/image.png"}], features=features)

تستند مجموعات البيانات إلى Arrow وهو تنسيق أعمدة، ولذلك يتوقع أن يكون لكل مثال نفس النوع والأنواع الفرعية، وأن تكون القواميس ذات نفس المفاتيح وأنواع القيم. عند تحميل مجموعة بيانات، يظهر خطأ إذا كانت الحقول ذات أنواع غير متطابقة، وتُملأ الحقول الناقصة في القواميس بقيمة None بحيث تمتلك جميع القواميس نفس المفاتيح وأنواع القيم.

لتجنّب ذلك والسماح بأنواع مختلطة دون أخطاء، يمكنك استخدام on_mixed_types="use_json" أو تحديد features= مع نوع Json:

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}])
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

يُفيد هذا أيضًا في حالة قوائم من القواميس ذات مفاتيح وقيم عشوائية، لتجنب ملء الحقول الناقصة بقيمة None:

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}])
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

مثال آخر مع بيانات استدعاء الأدوات:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_list([{"messages": messages}], on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsegen_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesplit: NamedSplit = NamedSplit('train')fingerprint: typing.Optional[str] = None**kwargs )

المعاملات

  • generator ( —Callable): دالة مولِّد yields أمثلة.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • gen_kwargs(dict, اختياري) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى الدالة القابلة للاستدعاء generator. يمكنك تحديد مجموعة بيانات مقسمة إلى أجزاء عن طريق تمرير قائمة الأجزاء في gen_kwargs وإعداد num_proc أكبر من 1.
  • num_proc (int, اختياري, الافتراضي هو None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. يكون هذا مفيدًا إذا كانت مجموعة البيانات مكوّنة من ملفات متعددة. يتم تعطيل المعالجة متعددة العمليات افتراضيًا. إذا num_proc كان أكبر من واحد، فيجب أن تكون جميع قيم القوائم في gen_kwargs من نفس الطول. سيتم تقسيم هذه القيم بين استدعاءات المولّد. سيكون عدد الشرائح هو الحد الأدنى بين أقصر قائمة في gen_kwargs و num_proc.

    أُضيف في 2.7.0

  • split (NamedSplit, الافتراضي هو Split.TRAIN) — اسم الجزء الذي سيُسند إلى مجموعة البيانات.

    أُضيف في 2.21.0

  • fingerprint (str, اختياري) — بصمة تُستخدم لتوليد معرّف مجموعة البيانات. بشكل افتراضي fingerprint تُتولَّد البصمة عن طريق تجزئة دالة المولّد وجميع المعاملات، وقد يكون ذلك بطيئًا إذا كانت تستخدم كائنات كبيرة مثل نماذج الذكاء الاصطناعي.

    أُضيف في 4.3.0

  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى :GeneratorConfig.

إنشاء مجموعة بيانات من مولّد.

حمّل البيانات من المولّد، واحفظها مؤقتًا على القرص بتنسيق Arrow، ثم أعد مجموعة البيانات (Dataset) من بيانات Arrow المخزّنة على القرص عبر خرائط الذاكرة (memory-mapped).

مثال:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = Dataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = Dataset.from_generator(gen, gen_kwargs={"shards": shards})

بيانات

< >

( )

جدول Apache Arrow الذي يدعم مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.data
MemoryMappedTable
text: string
label: int64
----
text: [["compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .","the soundtrack alone is worth the price of admission .","rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .","beneath the film's obvious determination to shock at any cost lies considerable skill and determination , backed by sheer nerve .","bielinsky is a filmmaker of impressive talent .","so beautifully acted and directed , it's clear that washington most certainly has a new career ahead of him if he so chooses .","a visual spectacle full of stunning images and effects .","a gentle and engrossing character study .","it's enough to watch huppert scheming , with her small , intelligent eyes as steady as any noir villain , and to enjoy the perfectly pitched web of tension that chabrol spins .","an engrossing portrait of uncompromising artists trying to create something original against the backdrop of a corporate music industry that only seems to care about the bottom line .",...,"ultimately , jane learns her place as a girl , softens up and loses some of the intensity that made her an interesting character to begin with .","ah-nuld's action hero days might be over .","it's clear why deuces wild , which was shot two years ago , has been gathering dust on mgm's shelf .","feels like nothing quite so much as a middle-aged moviemaker's attempt to surround himself with beautiful , half-naked women .","when the precise nature of matthew's predicament finally comes into sharp focus , the revelation fails to justify the build-up .","this picture is murder by numbers , and as easy to be bored by as your abc's , despite a few whopping shootouts .","hilarious musical comedy though stymied by accents thick as mud .","if you are into splatter movies , then you will probably have a reasonably good time with the salton sea .","a dull , simple-minded and stereotypical tale of drugs , death and mind-numbing indifference on the inner-city streets .","the feature-length stretch . . . strains the show's concept ."]]
label: [[1,1,1,1,1,1,1,1,1,1,...,0,0,0,0,0,0,0,0,0,0]]

cache_files

< >

( )

ملفات الكاش التي تحتوي على جدول Apache Arrow الذي يدعم مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cache_files
[{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]

num_columns

< >

( )

عدد الأعمدة في مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_columns
2

num_rows

< >

( )

عدد الصفوف في مجموعة البيانات (نفس Dataset.len()).

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_rows
1066

column_names

< >

( )

أسماء الأعمدة في مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.column_names
['text', 'label']

الشكل

< >

( )

شكل مجموعة البيانات (عدد الأعمدة، عدد الصفوف).

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.shape
(1066, 2)

فريد

< >

( column: str ) → list

المعاملات

  • column (str) — اسم العمود (قائمة بأسماء الأعمدة باستخدام column_names).

يعيد

list

قائمة العناصر الفريدة في العمود المحدد.

إرجاع قائمة بالعناصر الفريدة في عمود.

يتم تنفيذ ذلك في الخلفية منخفضة المستوى، ولذلك فهو سريع للغاية.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.unique('label')
[1, 0]

تسطيح

< >

( new_fingerprint: typing.Optional[str] = Nonemax_depth = 16 ) → Dataset

المعاملات

  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.

نسخة من مجموعة البيانات مع أعمدة مسطحة.

تسطيح الجدول. يتم تسطيح كل عمود من نوع struct إلى عمود واحد لكل حقل في البنية. تُترك الأعمدة الأخرى دون تغيير.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers': {'text': List(Value('string')),
 'answer_start': List(Value('int32'))}}
>>> ds = ds.flatten()
>>> ds
Dataset({
    features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
    num_rows: 87599
})

cast

< >

( features: Featuresbatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000num_proc: typing.Optional[int] = None ) → Dataset

المعاملات

  • features (Features) — ميزات جديدة لتحويل مجموعة البيانات إليها. يجب أن تتطابق أسماء الحقول في الميزات مع أسماء الأعمدة الحالية. كما يجب أن يكون نوع البيانات قابلاً للتحويل من نوع إلى آخر. للتحويل غير البسيط، مثل str <-> ClassLabel، يجب عليك استخدام map() لتحديث مجموعة البيانات.
  • batch_size (int، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى cast. إذا كان batch_size <= 0 أو batch_size == None، فتمنح مجموعة البيانات كاملةً كدفعة واحدة إلى cast.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • load_from_cache_file (bool، القيمة الافتراضية True إذا كانت التخزين المؤقت مفعّلة) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • cache_file_name (str، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map().
  • num_proc (int، اختياري، القيمة الافتراضية None) — عدد العمليات المستخدمة في المعالجة المتعددة. افتراضيًا، لا يتم استخدام المعالجة المتعددة.

نسخة من مجموعة البيانات مع الميزات المُحوَّلة.

قم بتحويل مجموعة البيانات إلى مجموعة جديدة من الميزات.

مثال:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure]new_fingerprint: typing.Optional[str] = None )

المعاملات

  • column (str) — اسم العمود.
  • feature (FeatureType) — الميزة المستهدفة.
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.

قم بتحويل العمود إلى ميزة للتحليل.

مثال:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

المعاملات

  • column_names (Union[str, List[str]]) — اسم العمود أو الأعمدة المراد حذفها.
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.

نسخة من كائن مجموعة البيانات دون الأعمدة المراد إزالتها.

إزالة عمود واحد أو عدة أعمدة من مجموعة البيانات والميزات المرتبطة بها.

يمكنك أيضًا إزالة عمود باستخدام map() مع remove_columns لكن الطريقة الحالية لا تنسخ بيانات الأعمدة المتبقية وبالتالي فهي أسرع.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.remove_columns('label')
Dataset({
    features: ['text'],
    num_rows: 1066
})
>>> ds = ds.remove_columns(column_names=ds.column_names) # Removing all the columns returns an empty dataset with the `num_rows` property set to 0
Dataset({
    features: [],
    num_rows: 0
})

rename_column

< >

( original_column_name: strnew_column_name: strnew_fingerprint: typing.Optional[str] = None ) → Dataset

المعاملات

  • original_column_name (str) — اسم العمود الذي سيتم تغيير اسمه.
  • new_column_name (str) — الاسم الجديد للعمود.
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.

نسخة من مجموعة البيانات مع إعادة تسمية للعمود.

إعادة تسمية عمود في مجموعة البيانات، ونقل الميزات المرتبطة بالعمود الأصلي إلى تحت اسم العمود الجديد.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_column('label', 'label_new')
Dataset({
    features: ['text', 'label_new'],
    num_rows: 1066
})

rename_columns

< >

( column_mapping: dictnew_fingerprint: typing.Optional[str] = None ) → Dataset

المعاملات

  • column_mapping (Dict[str, str]) — خريطة للأعمدة لإعادة تسميتها بأسمائها الجديدة
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.

نسخة من مجموعة البيانات مع إعادة تسمية الأعمدة

أعد تسمية عدة أعمدة في مجموعة البيانات، وانقل الميزات المرتبطة بالأعمدة الأصلية إلى الأسماء الجديدة للأعمدة.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
Dataset({
    features: ['text_new', 'label_new'],
    num_rows: 1066
})

select_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

المعاملات

  • column_names (Union[str, List[str]]) — اسم العمود أو الأعمدة التي يجب الاحتفاظ بها.
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوامل التحويل.

نسخة من كائن مجموعة البيانات تتكون فقط من الأعمدة المحددة.

حدد عمودًا واحدًا أو عدة أعمدة في مجموعة البيانات والميزات المرتبطة بها.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select_columns(['text'])
>>> ds
Dataset({
    features: ['text'],
    num_rows: 1066
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

المعاملات

  • column (str) — اسم العمود الذي سيتم تحويله (يمكنك عرض جميع أسماء الأعمدة باستخدام column_names)
  • include_nulls (bool, القيمة الافتراضية هي False) — ما إذا كان يجب تضمين القيم الفارغة في تسميات الفئات. إذا كانت True, سيتم ترميز القيم الفارغة على أنها "None" تسمية فئة.

    أُضيف في 1.14.2

يُحوّل العمود المُعطى إلى ClassLabel ويحدّث الجدول.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq", split="validation")
>>> ds.features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column('answer')
>>> ds.features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

__len__

< >

( )

عدد الصفوف في مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.__len__
<bound method Dataset.__len__ of Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})>

__iter__

< >

( )

تكرار على الأمثلة.

إذا تم ضبط تنسيق باستخدام Dataset.set_format() فسيتم إرجاع الصفوف بالتنسيق المحدد.

iter

< >

( batch_size: intdrop_last_batch: bool = False )

المعاملات

  • batch_size (int) — حجم كل دفعة تُقدَّم.
  • drop_last_batch (bool، الافتراضي False) — ما إذا كان يجب حذف الدفعة الأخيرة إذا كانت أصغر من batch_size

تكرار عبر الدفعات ذات الحجم batch_size.

إذا تم ضبط تنسيق باستخدام [~datasets.Dataset.set_format]، فسيتم إرجاع الصفوف بالتنسيق المحدد.

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن getitem“ يعيد كائنات بايثون (الافتراضي).
  • columns (List[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون).
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

يُستخدم في عبارة with. اضبط صيغة إرجاع __getitem__ (النوع والأعمدة).

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن __getitem__ يعيد كائنات بايثون (الافتراضي).
  • columns (List[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون).
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

حدد صيغة إرجاع __getitem__ (النوع والأعمدة). يتم تطبيق تنسيق البيانات بشكل فوري. يُستخدم النوع type (مثل “numpy”) لتنسيق الدفعات عند استخدام __getitem__. كما يمكن استخدام تحويلات مخصصة للتنسيق باستخدام set_transform().

من الممكن استدعاء map() بعد استدعاء set_format. بما أن map قد يضيف أعمدة جديدة، فإن قائمة الأعمدة المنسّقة

يتم تحديثه. في هذه الحالة، إذا قمت بتطبيق map على مجموعة بيانات لإضافة عمود جديد، فسيتم تنسيق هذا العمود على النحو التالي:

new formatted columns = (all columns - previously unformatted columns)

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['text', 'label'])
>>> ds.format
{'type': 'numpy',
'format_kwargs': {},
'columns': ['text', 'label'],
'output_all_columns': False}

set_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

المعاملات

  • transform (Callable، اختياري) — تحويل تنسيق مُعرَّف من قِبل المستخدم، يستبدل التنسيق المُعرَّف بواسطة set_format(). دالة التنسيق هي دالة قابلة للاستدعاء تستقبل دفعة (على شكل dict) كمدخل وتعيد دفعة. تُطبَّق هذه الدالة مباشرة قبل إرجاع الكائنات في __getitem__.
  • columns (List[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. إذا تم تحديدها، فإن دفعة الإدخال الخاصة بالتحويل تحتوي فقط على تلك الأعمدة.
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون). إذا تم ضبطها على True، فسيتم الاحتفاظ بالأعمدة غير المنسّقة الأخرى مع مخرجات التحويل.

حدد صيغة إرجاع __getitem__ باستخدام هذا التحويل. يُطبَّق التحويل على الفور على الدفعات عند استدعاء __getitem__. كما هو الحال مع set_format()، يمكن إعادة تعيين ذلك باستخدام reset_format().

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
>>> def encode(batch):
...     return tokenizer(batch['text'], padding=True, truncation=True, return_tensors='pt')
>>> ds.set_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1]),
 'input_ids': tensor([  101, 29353,  2135, 15102,  1996,  9428, 20868,  2890,  8663,  6895,
         20470,  2571,  3663,  2090,  4603,  3017,  3008,  1998,  2037, 24211,
         5637,  1998, 11690,  2336,  1012,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0])}

إعادة تعيين التنسيق

< >

( )

إعادة تعيين صيغة إرجاع __getitem__ إلى كائنات بايثون وجميع الأعمدة.

نفس self.set_format()

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds.format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن __getitem__ يعيد كائنات بايثون (الافتراضي).
  • columns (List[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون).
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

حدد صيغة إرجاع __getitem__ (النوع والأعمدة). يتم تطبيق تنسيق البيانات على الفور. يُستخدم النوع type (مثل “numpy”) لتنسيق الدفعات عند استخدام __getitem__.

من الممكن أيضًا استخدام تحويلات مخصصة للتنسيق باستخدام with_transform().

على عكس set_format()، تُعيد with_format كائن Dataset جديدًا.

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds[0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

المعاملات

  • transform (Callable, optional) — تحويل تنسيق مُعرَّف من قِبل المستخدم، يستبدل التنسيق المُعرَّف بواسطة set_format(). دالة التنسيق هي دالة قابلة للاستدعاء تستقبل دفعة (على شكل dict) كمدخل وتعيد دفعة. تُطبَّق هذه الدالة مباشرة قبل إرجاع الكائنات في __getitem__.
  • columns (List[str], optional) — الأعمدة التي سيتم تنسيقها في المخرجات. إذا تم تحديدها، فإن دفعة الإدخال الخاصة بالتحويل تحتوي فقط على تلك الأعمدة.
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون). إذا تم ضبطها على True، فسيتم الاحتفاظ بالأعمدة غير المنسّقة الأخرى مع مخرجات التحويل.

حدد صيغة إرجاع __getitem__ باستخدام هذا التحويل. يُطبَّق التحويل على الفور على الدفعات عند استدعاء __getitem__.

كما هو الحال مع set_format()، يمكن إعادة تعيين هذا باستخدام reset_format().

على عكس set_transform()، تُعيد with_transform كائن Dataset جديدًا.

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example["text"], padding=True, truncation=True, return_tensors='pt')
>>> ds = ds.with_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
         1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
         1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0])}

__getitem__

< >

( key )

يمكن استخدامه لمؤشر الأعمدة (بأسماء نصية) أو الصفوف (بمؤشر صحيح أو قابل للتكرار من المؤشرات أو القيم المنطقية).

cleanup_cache_files

< >

( ) → int

يعيد

int

عدد الملفات المحذوفة.

قم بتنظيف جميع ملفات الكاش في مجلد كاش مجموعة البيانات، باستثناء ملف الكاش المستخدم حاليًا إن وُجد.

انتبه عند تنفيذ هذا الأمر إلى عدم وجود عملية أخرى تستخدم ملفات الكاش الأخرى في الوقت الحالي.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cleanup_cache_files()
10

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = 'use_json' )

المعاملات

  • function (Callable) — دالة تحمل أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> Dict[str, Any] إذا كان batched=False وwith_indices=False وwith_rank=False
    • function(example: Dict[str, Any], *extra_args) -> Dict[str, Any] إذا كان batched=False و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)
    • function(batch: Dict[str, List]) -> Dict[str, List] إذا كان batched=True و with_indices=False و with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> Dict[str, List] إذا كان batched=True و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)

    للاستخدام المتقدم، يمكن للدالة أيضاً أن تُرجع pyarrow.Table. إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي. علاوة على ذلك، إذا كانت دالتك لا تُرجع شيئاً (None)، فإن map ستنفّذ دالتك وتُرجع مجموعة البيانات دون تغيير. إذا لم تُوفَّر دالة، فسيتم افتراض دالة الهوية: lambda x: x.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx[, rank]): ....
  • with_rank (bool، القيمة الافتراضية False) — توفير ترتيب العملية إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـ function هو def function(example[, idx], rank): ....
  • input_columns (Optional[Union[str, List[str]]]، القيمة الافتراضية None) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير dict يربط جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True. إذا كان batch_size <= 0 أو batch_size == None، فتمنح مجموعة البيانات كاملةً كدفعة واحدة إلى function.
  • drop_last_batch (bool، القيمة الافتراضية False) — ما إذا كان يجب تجاهل الدفعة الأخيرة الأصغر من batch_size بدلاً من معالجتها بواسطة الدالة.
  • remove_columns (Optional[Union[str, List[str]]])، القيمة الافتراضية None — إزالة مجموعة من الأعمدة أثناء تنفيذ عملية الخرائط (mapping). سيتم إزالة الأعمدة قبل تحديث الأمثلة بمخرجات function، أي إذا كان function يضيف أعمدة بأسماء موجودة في remove_columns، فسيتم الاحتفاظ بهذه الأعمدة.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • cache_file_name (str، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • features (Optional[datasets.Features]، الافتراضي None) — استخدم كائن Features محددًا لتخزين ملف الكاش بدلاً من الملف المولَّد تلقائيًا.
  • disable_nullable (bool، القيمة الافتراضية False) — يمنع القيم الفارغة في الجدول.
  • fn_kwargs (Dict، اختياري، القيمة الافتراضية None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function.
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات المستخدمة للمعالجة المتعددة. إذا كانت القيمة None أو 0، فلن تُستخدم المعالجة المتعددة وسيتم تنفيذ العملية في العملية الرئيسية. إذا كانت القيمة أكبر من 1، فسيتم استخدام عملية عاملة واحدة أو عدة عمليات لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) لكي تعمل المعالجة المتعددة بشكل صحيح (أي، يُفضَّل استخدام الدوال المعرفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
    • إذا كانت None أو 0، فلا يُستخدم تعدد العمليات، وتُنفَّذ العملية في العملية الرئيسية.
    • If greater than 1, one or multiple worker processes are used to process data in parallel. Note: The function passed to map() must be picklable for multiprocessing to work correctly (i.e., prefer functions defined at the top level of a module, not inside another function or class). suffixtemplate (str): If cache_file_name is specified, then this suffix will be added at the end of the base name of each. Defaults to `”{rank:05d}of{num_proc:05d}”. For example, if cache_file_nameis "processed.arrow", then forrank=1andnum_proc=4, the resulting file would be “processed_00001_of_00004.arrow”` for the default suffix.
  • new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة للمجموعة البيانات بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوامل التحويل.
  • desc (str، اختياري، القيمة الافتراضية None) — وصف ذو معنى يُعرض إلى جانب شريط التقدم أثناء خرائط الأمثلة.
  • try_original_type (Optional[bool]، القيمة الافتراضية True) — حاول الحفاظ على أنواع الأعمدة الأصلية (مثل int32 -> int32). اضبطها على False إذا كنت تريد دائمًا استنتاج أنواع جديدة.
  • on_mixed_types (Literal["use_json"], اختياري, القيمة الافتراضية هي None) — إذا كانت القيمة "use_json"، يتم استخدام نوع Json() للحقول ذات الأنواع المختلطة، أي الحقول غير المهيكلة التي تحتوي على بيانات بدون مخطط مسبق التعريف. في هذه الحالة، يُضبط الحقل ذو النوع المختلط على Json().

    يتيح هذا تحميل قوائم تحتوي على مزيج من النصوص/الأعداد الصحيحة/الأعداد العشرية، على سبيل المثال، أو قواميس ذات أنواع قيم عشوائية.

    أُضيف في 4.7.0

تطبيق دالة على جميع الأمثلة في الجدول (فرديةً أو على شكل دفعات) وتحديث الجدول. إذا كانت دالتك تُرجع عمودًا موجودًا مسبقًا، فإنها تُعيد كتابته.

يمكنك تحديد ما إذا كان ينبغي تجميع الدالة أم لا باستخدام معامل batched:

  • إذا كانت False، فإن الدالة تستقبل مثالًا واحدًا ويجب أن تُرجع مثالًا واحدًا. المثال هو قاموس، مثل {"text": "Hello there !"}.
  • إذا كان True وbatch_size يساوي 1، فإن الدالة تستقبل دفعة تحتوي على مثال واحد كمدخلات ويمكنها إرجاع دفعة تحتوي على مثال واحد أو أكثر. الدفعة هي قاموس، على سبيل المثال دفعة تحتوي على مثال واحد هي {"text": ["Hello there !"]}.
  • إذا كان True وbatch_size هو n > 1، فإن الدالة تستقبل دفعة من n أمثلة كمدخلات، ويمكن أن تعيد دفعة تحتوي على n أمثلة، أو على عدد عشوائي من الأمثلة. لاحظ أن الدفعة الأخيرة قد تحتوي على أقل من n أمثلة. الدفعة هي قاموس، على سبيل المثال، دفعة من n أمثلة هي {"text": ["Hello there !"] * n}.

إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن. يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds[0:3]["text"]
['Review: compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'Review: the soundtrack alone is worth the price of admission .',
 'Review: rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

فلتر

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = None )

المعاملات

  • function (Callable) — دالة قابلة للاستدعاء (Callable) تحمل أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> bool إذا كان batched=False وwith_indices=False وwith_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool إذا كان batched=False و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)
    • function(batch: Dict[str, List]) -> List[bool] إذا كان batched=True و with_indices=False و with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> List[bool] إذا كان batched=True و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)

    إذا كانت الدالة غير متزامنة، فسيُنفّذ filter دالتك بالتوازي. إذا لم تُوفَّر دالة، فإن القيمة الافتراضية هي دالة تُرجع دائمًا True: lambda x: True.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx[, rank]): ....
  • with_rank (bool، القيمة الافتراضية False) — توفير ترتيب العملية إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـ function هو def function(example[, idx], rank): ....
  • input_columns (str أو List[str]، اختياري) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير dict يربط جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُمرَّر إلى function إذا كان batched = True. إذا كان batched = False، يتم تمرير مثال واحد لكل دفعة إلى function. إذا كان batch_size <= 0 أو batch_size == None، يتم تقديم مجموعة البيانات الكاملة كدفعة واحدة إلى function.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • cache_file_name (str، اختياري) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • fn_kwargs (dict، اختياري) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function.
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات المستخدمة للمعالجة المتعددة. إذا كانت القيمة None أو 0، فلن تُستخدم المعالجة المتعددة وسيتم تنفيذ العملية في العملية الرئيسية. إذا كانت القيمة أكبر من 1، فسيتم استخدام عملية عاملة واحدة أو عدة عمليات عاملة لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) لكي تعمل المعالجة المتعددة بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
    • إذا كانت None أو 0، فلا يُستخدم تعدد العمليات، وتُنفَّذ العملية في العملية الرئيسية.
    • إذا كان أكبر من 1، تُستخدم عملية عامل واحدة أو عدة عمليات عامل لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) حتى يعمل تعدد العمليات بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
  • suffix_template (str) — إذا تم تحديد cache_file_name، فسيتم إضافة هذا البادئة في نهاية الاسم الأساسي لكل ملف. على سبيل المثال، إذا كان cache_file_name هو "processed.arrow"، فبالنسبة إلى rank = 1 وnum_proc = 4، سيكون الملف الناتج "processed_00001_of_00004.arrow" للبادئة الافتراضية (الافتراضي _{rank:05d}_of_{num_proc:05d}).
  • new_fingerprint (str، اختياري) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة وحوافز التحويل.
  • desc (str، اختياري، القيمة الافتراضية None) — وصف ذو معنى يُعرض إلى جانب شريط التقدم أثناء تصفية الأمثلة.

تطبيق دالة تصفية على جميع العناصر في الجدول على دفعات وتحديث الجدول بحيث تتضمن مجموعة البيانات أمثلة فقط وفقاً لدالة التصفية.

إذا كانت الدالة غير متزامنة، فسيُنفّذ filter دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن (قابل للضبط). يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.filter(lambda x: x["label"] == 1)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

select

< >

( indices: Iterablekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

المعاملات

  • indices (range، list، iterable، ndarray أو Series) — نطاق أو قائمة أو مصفوفة أحادية البُعد من فهارس صحيحة للترميز. إذا كانت الفهارس تتوافق مع نطاق متصل، يتم تقطيع جدول Arrow ببساطة. ومع ذلك، فإن تمرير قائمة من الفهارس غير المتصلة يُنشئ ترميزًا للفهارس، وهو أقل كفاءة بكثير، لكنه لا يزال أسرع من إعادة إنشاء جدول Arrow يتكون من الصفوف المطلوبة.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بترتيب الفهارس في الذاكرة بدلاً من كتابته في ملف مؤقت.
  • indices_cache_file_name (str، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين تعيين الفهارس بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة للمجموعة البيانات بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوامل التحويل.

أنشئ مجموعة بيانات جديدة مع اختيار الصفوف وفقاً للقائمة/المصفوفة من الفهارس.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select(range(4))
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 4
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

المعاملات

  • column_names (Union[str, Sequence[str]]) — أسماء الأعمدة التي سيتم الفرز بناءً عليها.
  • reverse (Union[bool, Sequence[bool]]، القيمة الافتراضية False) — إذا كانت True، يتم الفرز حسب الترتيب التنازلي بدلاً من التصاعدي. إذا تم تقديم قيمة bool واحدة، تُطبَّق القيمة على فرز جميع أسماء الأعمدة. وإلا، يجب تقديم قائمة من قيم bool بنفس الطول والترتيب مثل column_names.
  • null_placement (str, الافتراضي هو at_end) — ضع قيم None في البداية إذا كان at_start أو first أو في النهاية إذا كان at_end أو last

    أُضيف في 1.14.2

  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالفهارس المرتبة في الذاكرة بدلاً من كتابتها في ملف كاش.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الفهارس المرتبة، فاستخدمه بدلاً من إعادة الحساب.
  • indices_cache_file_name (str، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين الفهارس المرتبة بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. القيمة الأعلى تنتج ملفات كاش أصغر، بينما القيمة الأقل تستهلك ذاكرة مؤقتة أقل.
  • new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوافز التحويل

أنشئ مجموعة بيانات جديدة مرتبة وفقاً لعمود واحد أو عدة أعمدة.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes', split='validation')
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

المعاملات

  • seed (int, اختياري) — بذرة لتوليد BitGenerator الافتراضي إذا كان generator=None. إذا كان None، فسيتم سحب إنتروبيا جديدة وغير متوقعة من نظام التشغيل. إذا تم تمرير int أو array_like[ints]، فسيتم تمريرها إلى SeedSequence لاستنتاج حالة BitGenerator الأولية.
  • generator (numpy.random.Generator، اختياري) — مولّد عشوائي من Numpy يُستخدم لحساب تبديل صفوف مجموعة البيانات. إذا كان generator=None (الافتراضي)، يُستخدم np.random.default_rng (مولّد البتات الافتراضي (PCG64) في NumPy).
  • keep_in_memory (bool، الافتراضي False) — احتفظ بالفهارس المُختلطة في الذاكرة بدلاً من كتابتها إلى ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الفهارس المُخلوطة، فاستخدمه بدلاً من إعادة الحساب.
  • indices_cache_file_name (str, اختياري) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين الفهارس المُختلطة بدلاً من اسم ملف التخزين المؤقت المُولَّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة للمجموعة البيانات بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوامل التحويل.

أنشئ مجموعة بيانات جديدة حيث تكون الصفوف مُخلوطة.

يستخدم التجميع العشوائي حاليًا مولّدات الأرقام العشوائية من numpy. يمكنك إما تقديم مولّد بتات NumPy BitGenerator لاستخدامه، أو تقديم بذرة (seed) لبدء مولّد الأرقام العشوائية الافتراضي في NumPy (PCG64).

يقوم الخلط بأخذ قائمة الفهارس [0:len(my_dataset)] وخلطها لإنشاء تعيين للفهارس. ومع ذلك، بمجرد أن يصبح لديك تعيين للفهارس في Dataset، قد يصبح الأداء أبطأ بعشر مرات. وذلك لأن هناك خطوة إضافية للحصول على فهرس الصف الذي يجب قراءته باستخدام تعيين الفهارس، والأهم من ذلك أنك لم تعد تقرأ مقاطع متجاورة من البيانات. للاستعادة السرعة، ستحتاج إلى إعادة كتابة مجموعة البيانات بأكملها على القرص مرة أخرى باستخدام Dataset.flatten_indices()، والذي يزيل تعيين الفهارس.

قد يستغرق ذلك وقتًا طويلاً اعتمادًا على حجم مجموعة البيانات الخاصة بك:

my_dataset[0]  # fast
my_dataset = my_dataset.shuffle(seed=42)
my_dataset[0]  # up to 10x slower
my_dataset = my_dataset.flatten_indices()  # rewrite the shuffled dataset on disk as contiguous chunks of data
my_dataset[0]  # fast again

في هذه الحالة، نوصي بالانتقال إلى IterableDataset والاستفادة من طريقة الخلط التقريبي السريع IterableDataset.shuffle().

إنه يعيد ترتيب الشرائح فقط ويضيف مخزن خلط إلى مجموعة بياناتك، مما يحافظ على سرعة مجموعة البيانات في أفضل حالاتها:

my_iterable_dataset = my_dataset.to_iterable_dataset(num_shards=128)
for example in enumerate(my_iterable_dataset):  # fast
    pass

shuffled_iterable_dataset = my_iterable_dataset.shuffle(seed=42, buffer_size=100)

for example in enumerate(shuffled_iterable_dataset):  # as fast as before
    pass

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds['label'][:10]
[1, 0, 1, 1, 0, 0, 0, 0, 0, 0]

تخطي

< >

( n: int )

المعاملات

  • n (int) — عدد العناصر التي سيتم تجاوزها.

أنشئ Dataset جديدًا يتخطى أول n عناصر.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

المعاملات

  • n (int) — عدد العناصر المطلوب أخذها.

أنشئ Dataset جديدًا يحتوي على العناصر الـn الأولى فقط.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

train_test_split

< >

( test_size: typing.Union[float, int, NoneType] = Nonetrain_size: typing.Union[float, int, NoneType] = Noneshuffle: bool = Truestratify_by_column: typing.Optional[str] = Noneseed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonetrain_indices_cache_file_name: typing.Optional[str] = Nonetest_indices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000train_new_fingerprint: typing.Optional[str] = Nonetest_new_fingerprint: typing.Optional[str] = None )

المعاملات

  • test_size (Union[float, int, None], اختياري) — حجم مجموعة الاختبار إذا كان float، فيجب أن يكون بين 0.0 و1.0 ويمثل نسبة مجموعة البيانات التي سيتم تضمينها في مجموعة الاختبار. إذا كان int، فيمثل العدد المطلق لعينات الاختبار. إذا كان None، يتم تعيين القيمة إلى مكمّل حجم التدريب. إذا كان train_size أيضًا None، فسيتم تعيينه إلى 0.25.
  • train_size (Union[float, int, None]، اختياري) — حجم الجزء التدريبي إذا كان float، فيجب أن يكون بين 0.0 و1.0 ويمثل نسبة مجموعة البيانات التي سيتم تضمينها في الجزء التدريبي. إذا كان int، فيمثل العدد المطلق لعينات التدريب. إذا كان None، يتم تعيين القيمة تلقائيًا إلى مكمّل حجم الاختبار.
  • shuffle (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم خلط البيانات قبل التقسيم.
  • stratify_by_column (str، اختياري، القيمة الافتراضية None) — اسم العمود الذي يحتوي على التسميات المستخدمة لتنفيذ التقسيم الطبقي للبيانات.
  • seed (int, اختياري) — بذرة لتوليد BitGenerator الافتراضي إذا كان generator=None. إذا كان None، فسيتم سحب إنتروبيا جديدة وغير متوقعة من نظام التشغيل. إذا تم تمرير int أو array_like[ints]، فسيتم تمريرها إلى SeedSequence لاستنتاج حالة BitGenerator الأولية.
  • generator (numpy.random.Generator، اختياري) — مولّد عشوائي من Numpy يُستخدم لحساب تبديل صفوف مجموعة البيانات. إذا كان generator=None (الافتراضي)، يُستخدم np.random.default_rng (مولّد البتات الافتراضي (PCG64) في NumPy).
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بمؤشرات التقسيمات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ فهارس التقسيمات، فاستخدمه بدلاً من إعادة الحساب.
  • train_cache_file_name (str, اختياري) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين فهارس مجموعة التدريب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • test_cache_file_name (str, اختياري) — يُحدد اسم المسار لملف الكاش. يُستخدم لتخزين فهارس مجموعة الاختبار بدلاً من اسم ملف الكاش المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • train_new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة لمجموعة التدريب بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحجج التحويل
  • test_new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة لمجموعة الاختبار بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوافز التحويل

تُعيد قاموسًا (datasets.DatasetDict) يحتوي على فرعي تدريب واختبار عشوائيين (train وtest Dataset splits). تُنشأ التقسيمات من مجموعة البيانات وفقًا لـtest_size وtrain_size وshuffle.

تتشابه هذه الطريقة مع train_test_split في scikit-learn.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.train_test_split(test_size=0.2, shuffle=True)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 852
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 214
    })
})

# set a seed
>>> ds = ds.train_test_split(test_size=0.2, seed=42)

# stratified split
>>> ds = load_dataset("stanfordnlp/imdb",split="train")
Dataset({
    features: ['text', 'label'],
    num_rows: 25000
})
>>> ds = ds.train_test_split(test_size=0.2, stratify_by_column="label")
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 20000
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 5000
    })
})

شَريحة

< >

( num_shards: intindex: intcontiguous: bool = Truekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

المعاملات

  • num_shards (int) — عدد الأجزاء التي سيتم تقسيم مجموعة البيانات إليها.
  • index (int) — الشريحة التي يجب اختيارها وإرجاعها.
  • contiguous — (bool، القيمة الافتراضية True): ما إذا كان سيتم اختيار كتل متجاورة من الفهارس للتقسيمات.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • indices_cache_file_name (str، اختياري) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين فهارس كل شريحة بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — يخص هذا الأمر فقط خرائط الفهارس. عدد الفهارس لكل عملية كتابة في كاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة، وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.

أعد الشريحة رقم index من تقسيم مجموعة البيانات إلى num_shards أجزاء.

يُقسَّم هذا بشكل حتمي. dataset.shard(n, i) يقسم مجموعة البيانات إلى مقاطع متجاورة، لذا يمكن إعادة دمجها بسهولة بعد المعالجة. إذا كان len(dataset) % n == l، فإن أول l من مجموعات البيانات يكون طول كل منها (len(dataset) // n) + 1، بينما تكون مجموعات البيانات المتبقية بطول (len(dataset) // n). يعيد datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) مجموعة بيانات بنفس ترتيب الأصل.

ملاحظة: يجب أن تكون قيمة n أقل من عدد العناصر في مجموعة البيانات len(dataset) أو تساويه.

من ناحية أخرى، يحتوي dataset.shard(n, i, contiguous=False) على جميع عناصر مجموعة البيانات التي يكون فيها الباقي عند قسمة الفهرس على n = i.

تأكد من تقسيم البيانات إلى شرائح قبل استخدام أي مشغّل عشوائي (مثل shuffle). يُفضّل استخدام مشغّل التقسيم إلى شرائح في مرحلة مبكرة من خط أنابيب مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})
>>> ds = ds.shard(num_shards=2, index=0)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

تكرار

< >

( num_times: int )

المعاملات

  • num_times (int) — عدد مرات تكرار مجموعة البيانات.

أنشئ Dataset جديدًا يكرر مجموعة البيانات الأساسية num_times مرات.

مثل itertools.repeat، فإن التكرار مرة واحدة يعيد مجموعة البيانات كاملة.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_tf_dataset

< >

( batch_size: typing.Optional[int] = Nonecolumns: typing.Union[str, list[str], NoneType] = Noneshuffle: bool = Falsecollate_fn: typing.Optional[typing.Callable] = Nonedrop_remainder: bool = Falsecollate_fn_args: typing.Optional[dict[str, typing.Any]] = Nonelabel_cols: typing.Union[str, list[str], NoneType] = Noneprefetch: bool = Truenum_workers: int = 0num_test_batches: int = 20 )

المعاملات

  • batch_size (int، اختياري) — حجم الدفعات التي سيتم تحميلها من مجموعة البيانات. القيمة الافتراضية هي None، مما يعني أن مجموعة البيانات لن تُقسَّم إلى دفعات، لكن يمكن تقسيم مجموعة البيانات المُعادَة لاحقًا باستخدام tf_dataset.batch(batch_size).
  • columns (List[str] أو str، اختياري) — أعمدة مجموعة البيانات التي سيتم تحميلها في tf.data.Dataset. يمكن استخدام أسماء الأعمدة التي ينشئها collate_fn والتي لا توجد في مجموعة البيانات الأصلية.
  • shuffle(bool, الافتراضي False) — خلط ترتيب مجموعة البيانات عند التحميل. يُوصى باستخدام True للتدريب، وFalse للتحقق/التقييم.
  • drop_remainder(bool, الافتراضي False) — تجاهل الدفعة الأخيرة غير المكتملة عند التحميل. يضمن أن تكون جميع الدفعات التي يولدها مجموعة البيانات بنفس الطول على بُعد الدفعة.
  • collate_fn(Callable, اختياري) — دالة أو كائن قابل للاستدعاء (مثل DataCollator) يقوم بدمج قوائم العينات في دفعة واحدة.
  • collate_fn_args (Dict, اختياري) — dict اختياري لحجج الكلمات المفتاحية التي سيتم تمريرها إلى collate_fn.
  • label_cols (List[str] أو str، القيمة الافتراضية None) — أعمدة مجموعة البيانات التي سيتم تحميلها كوسوم. لاحظ أن العديد من النماذج تحسب الخسارة داخليًا بدلاً من ترك ذلك لـ Keras، وفي هذه الحالة يكون تمرير الوسوم هنا اختياريًا، طالما أنها موجودة في columns المدخلة.
  • prefetch (bool، القيمة الافتراضية True) — ما إذا كان سيتم تشغيل مُحمِّل البيانات في خيط منفصل والحفاظ على مخزن مؤقت صغير للدفعات للتدريب. يحسّن الأداء من خلال السماح بتحميل البيانات في الخلفية بينما يجري تدريب النموذج.
  • num_workers (int، القيمة الافتراضية 0) — عدد العمال الذين سيتم استخدامهم لتحميل مجموعة البيانات.
  • num_test_batches (int، القيمة الافتراضية 20) — عدد الدفعات المستخدمة لاستنتاج توقيع المخرجات للمجموعة البيانات. كلما زاد هذا العدد، أصبح التوقيع أكثر دقة، لكن سيستغرق إنشاء المجموعة البيانات وقتًا أطول.

أنشئ tf.data.Dataset من مجموعة البيانات الأساسية. ستقوم هذه tf.data.Dataset بتحميل الدُفعات من مجموعة البيانات وترتيبها، وهي مناسبة للتقديم إلى طرق مثل model.fit() أو model.predict(). ستُنتج مجموعة البيانات dicts لكلٍّ من المدخلات والوسوم، ما لم تحتوي dict على مفتاح واحد فقط، وفي هذه الحالة ستُنتج tf.Tensor خام بدلاً من ذلك.

مثال:

>>> ds_train = ds["train"].to_tf_dataset(
...    columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'],
...    shuffle=True,
...    batch_size=16,
...    collate_fn=data_collator,
... )

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

المعاملات

  • repo_id (str) — معرّف المستودع الذي تريد الدفع إليه، بالصيغة التالية: <user>/<dataset_name> أو <org>/<dataset_name>. كما يقبل <dataset_name>, والذي سيُستخدم افتراضيًا نطاق المستخدم المسجّل.

    كما يمكن أن يكون موقعًا داخل دلو، على سبيل المثال buckets/<user_or_org>/<bucket_name>/...

  • config_name (str، القيمة الافتراضية “default”) — اسم التهيئة (أو الجزء الفرعي) لمجموعة البيانات. القيمة الافتراضية هي “default”.
  • set_default (bool، اختياري) — ما إذا كان يجب تعيين هذا الإعداد كإعداد افتراضي. وإلا، فإن الإعداد الافتراضي هو ذلك المسمى بـ “default”.
  • split (str، اختياري) — اسم الجزء الذي سيُمنح لذلك مجموعة البيانات. القيمة الافتراضية هي self.split.
  • data_dir (str, اختياري) — اسم المجلد الذي سيحتوي على ملفات البيانات المرفوعة. القيمة الافتراضية هي config_name إذا كانت مختلفة عن "default"، وإلا فهي "data".

    أُضيف في 2.17.0

  • commit_message (str، اختياري) — الرسالة التي سيتم الالتزام بها أثناء الدفع. ستكون الافتراضية "Upload dataset".
  • commit_description (str, اختياري) — وصف للالتزام الذي سيتم إنشاؤه. بالإضافة إلى ذلك، وصف لطلب الانضمام إذا تم إنشاؤه (create_pr هو True).

    أُضيف في 2.16.0

  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (str, اختياري) — رمز مصادقة اختياري لـ Hugging Face Hub. إذا لم يتم تمرير رمز، فسيتم افتراضياً استخدام الرمز المحفوظ محلياً عند تسجيل الدخول باستخدام hf auth login. سيُطلق خطأً إذا لم يتم تمرير رمز وكان المستخدم غير مسجّل الدخول.
  • revision (str, اختياري) — الفرع الذي سيتم دفع الملفات المرفوعة إليه. الافتراضي هو الفرع "main" .

    أُضيف في 2.15.0

  • create_pr (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب إنشاء طلب سحب (PR) بالملفات المرفوعة أو الالتزام مباشرة.

    أُضيف في 2.15.0

  • max_shard_size (int أو str، اختياري، القيمة الافتراضية "500MB") — الحد الأقصى لحجم مقاطع مجموعة البيانات التي سيتم رفعها إلى hub. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "5MB").
  • num_shards (int, اختياري) — عدد الأجزاء التي سيتم كتابتها. بشكل افتراضي، يعتمد عدد الأجزاء على max_shard_size.

    أُضيف في 2.8.0

  • embed_external_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بايتات الملفات في الشرائح. على وجه التحديد، سيقوم بذلك قبل الدفع للحقول من النوع:
    • الصوت و الصورة: إزالة معلومات المسار المحلي وتضمين محتوى الملف في ملفات Parquet.
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات عند تجهيز مجموعة البيانات ورفعها. يُفيد هذا الأمر إذا كانت مجموعة البيانات تتكون من العديد من العينات أو ملفات الوسائط المضمنة. يستخدم سياق "spawn" للعمل مع hf_xet، وهو عميل rust للرفع السريع إلى HF. تُعطَّل المعالجة متعددة العمليات افتراضيًا.

    أُضيف في 4.0.0

يدفع مجموعة البيانات إلى المستودع كمجموعة بيانات بصيغة Parquet. تُدفَع مجموعة البيانات باستخدام طلبات HTTP ولا تحتاج إلى تثبيت git أو git-lfs.

ملفات Parquet الناتجة مكتفية ذاتياً بشكل افتراضي. إذا احتوى مجموعة البيانات الخاصة بك على بيانات Image أو Audio أو Video، فستخزن ملفات Parquet البايتات الخاصة بصورك أو ملفات الصوت. يمكنك تعطيل ذلك عن طريق تعيين embed_external_files إلى False.

مثال:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

إذا كانت مجموعة بياناتك تحتوي على عدة تقسيمات (مثل التدريب/التحقق/الاختبار):

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

إذا كنت ترغب في إضافة تكوين جديد (أو مجموعة فرعية) إلى مجموعة بيانات (على سبيل المثال، إذا كانت مجموعة البيانات تحتوي على مهام/إصدارات/لغات متعددة):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

المعاملات

  • dataset_path (path-like) — المسار (مثل dataset/train) أو عنوان URI عن بُعد (مثل s3://my-bucket/dataset/train) لمجلد مجموعة البيانات الذي سيتم حفظ مجموعة البيانات فيه.
  • max_shard_size (int أو str، اختياري، القيمة الافتراضية "500MB") — الحد الأقصى لحجم أجزاء مجموعة البيانات التي سيتم حفظها على نظام الملفات. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "50MB").
  • num_shards (int, اختياري) — عدد الأجزاء التي سيتم كتابتها. افتراضيًا، يعتمد عدد الأجزاء على max_shard_size و num_proc.

    أُضيف في 2.8.0

  • num_proc (int, اختياري) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. تُعطَّل المعالجة متعددة العمليات افتراضيًا.

    أُضيف في 2.8.0

  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.8.0

يحفظ مجموعة بيانات في دليل مجموعات البيانات، أو في نظام ملفات باستخدام أي تطبيق من تطبيقات fsspec.spec.AbstractFileSystem.

لبيانات Image وAudio وVideo:

تُخزَّن جميع بيانات Image() وAudio() وVideo() في ملفات arrow. إذا كنت ترغب في تخزين المسارات أو الروابط، فالرجاء استخدام النوع Value(“string”).

مثال:

>>> ds.save_to_disk("path/to/dataset/directory")
>>> ds.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> ds.save_to_disk("path/to/dataset/directory", num_shards=1024)

load_from_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None ) → Dataset or DatasetDict

المعاملات

  • dataset_path (path-like) — المسار (مثل "dataset/train") أو عنوان URI عن بُعد (مثل "s3//my-bucket/dataset/train") لمجلد مجموعة البيانات الذي سيتم تحميل المجموعة منه.
  • keep_in_memory (bool، القيمة الافتراضية None) — ما إذا كان سيتم نسخ مجموعة البيانات في الذاكرة. إذا كانت None، فلن يتم نسخ مجموعة البيانات في الذاكرة ما لم يتم تفعيل ذلك صراحةً عن طريق تعيين datasets.config.IN_MEMORY_MAX_SIZE إلى قيمة غير صفرية. راجع المزيد من التفاصيل في قسم تحسين الأداء.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.8.0

يعيد

Dataset أو DatasetDict

  • إذا كان dataset_path مسارًا لمجلد مجموعة بيانات، فإن مجموعة البيانات المطلوبة.
  • إذا كان dataset_path مسارًا لمجلد قاموس مجموعة بيانات، فسيتم إرجاع datasets.DatasetDict يحتوي على كل تقسيم.

تحمّل مجموعة بيانات تم حفظها سابقًا باستخدام save_to_disk من مجلد مجموعة البيانات، أو من نظام ملفات باستخدام أي تطبيق من تطبيقات fsspec.spec.AbstractFileSystem.

مثال:

>>> ds = load_from_disk("path/to/dataset/directory")

flatten_indices

< >

( keep_in_memory: bool = Falsecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsenum_proc: typing.Optional[int] = Nonenew_fingerprint: typing.Optional[str] = None )

المعاملات

  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • cache_file_name (str، اختياري، الافتراضي None) — يُحدد اسم المسار لملف الكاش. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف الكاش المُولَّد تلقائيًا.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • features (Optional[datasets.Features]، الافتراضي None) — استخدم Features محددة لتخزين ملف الكاش بدلاً من الملف المولّد تلقائيًا.
  • disable_nullable (bool، القيمة الافتراضية False) — السماح بقيم فارغة في الجدول.
  • num_proc (int, اختياري، الافتراضي None) — الحد الأقصى لعدد العمليات عند إنشاء ذاكرة التخزين المؤقت. يتم تحميل الشرائح المخزنة مسبقًا بشكل تسلسلي
  • new_fingerprint (str، اختياري، القيمة الافتراضية None) — البصمة الجديدة للمجموعة بعد التحويل. إذا كانت None، تُحسب البصمة الجديدة باستخدام تجزئة (hash) للبصمة السابقة، وحوافز التحويل

أنشئ مجموعة بيانات جديدة وأخزنها مؤقتًا عن طريق تسطيخ خرائط الفهارس.

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.csv)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.csv)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int، اختياري) — عدد العمليات للمعالجة المتعددة. افتراضيًا، لا يستخدم المعالجة المتعددة. في هذه الحالة، يكون الافتراضي لـbatch_size هو datasets.config.DEFAULT_MAX_BATCH_SIZE، لكن يمكنك جعله 5 أضعاف أو 10 أضعاف القيمة الافتراضية إذا كان لديك قدرة حوسبة كافية.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.19.0

  • **to_csv_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pandas’s pandas.DataFrame.to_csv.

    تم التغيير في 2.10.0

    الآن، index افتراضيًا False إذا لم يُحدد.

    إذا كنت ترغب في كتابة الفهرس، فمرر index=True وقم أيضًا بتعيين اسم لعمود الفهرس عن طريق تمرير index_label.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

يُصدّر مجموعة البيانات إلى csv

مثال:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

المعاملات

  • batch_size (int, اختياري) — حجم الدُفعات (عدد الصفوف) إذا كان batched هو True. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — اضبطه على True لإرجاع مولّد يُخرج مجموعة البيانات على شكل دفعات من batch_size صفوف. القيمة الافتراضية هي False (تُرجع المجموعة الكاملة مرة واحدة).

يعيد مجموعة البيانات على شكل pandas.DataFrame. كما يمكنه إرجاع مولّد (generator) لمجموعات البيانات الكبيرة.

مثال:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

المعاملات

  • batch_size (int، اختياري) — حجم الدُفعات (عدد الصفوف) إذا كان batched هو True. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — اضبطه على True لإرجاع مولّد يُخرج مجموعة البيانات على شكل دفعات من batch_size صفوف. القيمة الافتراضية هي False (تُرجع المجموعة الكاملة مرة واحدة).

يعيد مجموعة البيانات كقاموس بايثون. كما يمكنه إعادة مولّد لمجموعات البيانات الكبيرة.

مثال:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.json)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.json)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int، اختياري) — عدد العمليات للمعالجة المتعددة. افتراضيًا، لا يستخدم المعالجة المتعددة. في هذه الحالة، يكون الافتراضي لـbatch_size هو datasets.config.DEFAULT_MAX_BATCH_SIZE لكن يمكنك جعله 5 أضعاف أو 10 أضعاف القيمة الافتراضية إذا كان لديك قدرة حوسبة كافية.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.19.0

  • **to_json_kwargs (additional keyword arguments) — Parameters to pass to pandas’s pandas.DataFrame.to_json. Default arguments are lines=True and `orient=“records”.

    تم التغيير في 2.11.0

    يكون الافتراضي للمعامل index هو False إذا كان orient هو "split" أو "table".

    إذا كنت ترغب في كتابة الفهرس، فمرر index=True.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

تصدير مجموعة البيانات إلى JSON Lines أو JSON.

تنسيق الإخراج الافتراضي هو JSON Lines. لتصدير إلى JSON، مرّر الحجة lines=False والقيمة المطلوبة لـ orient.

مثال:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.parquet)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.parquet)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. افتراضيًا، يستهدف مجموعات صفوف بحجم بايت غير مضغوط أقصى قدره “100MB”، المعرّف بواسطة datasets.config.MAX_ROW_GROUP_SIZE.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.19.0

  • **parquet_writer_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pyarrow.parquet.ParquetWriter في PyArrow.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

يُصدّر مجموعة البيانات إلى parquet

مثال:

>>> ds.to_parquet("path/to/dataset/directory")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = None**sql_writer_kwargs ) → int

المعاملات

  • name (str) — اسم جدول SQL.
  • con (str أو sqlite3.Connection أو sqlalchemy.engine.Connection أو sqlalchemy.engine.Connection) — سلسلة URI أو كائن اتصال SQLite3/SQLAlchemy يُستخدم للكتابة إلى قاعدة بيانات.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int، اختياري) — عدد العمليات للمعالجة المتعددة. افتراضيًا، لا يستخدم المعالجة المتعددة. في هذه الحالة، يكون الافتراضي لـbatch_size هو datasets.config.DEFAULT_MAX_BATCH_SIZE لكن يمكنك جعله 5 أضعاف أو 10 أضعاف القيمة الافتراضية إذا كان لديك قدرة حوسبة كافية.
  • **sql_writer_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pandas pandas.DataFrame.to_sql.

    تم التغيير في 2.11.0

    الآن، index افتراضيًا False إذا لم يُحدد.

    إذا كنت ترغب في كتابة الفهرس، فمرر index=True وقم أيضًا بتعيين اسم لعمود الفهرس عن طريق تمرير index_label.

يعيد

int

عدد السجلات المكتوبة.

يُصدِّر مجموعة البيانات إلى قاعدة بيانات SQL.

مثال:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

to_iterable_dataset

< >

( num_shards: typing.Optional[int] = 1 )

المعاملات

  • num_shards (int، القيمة الافتراضية 1) — عدد الأجزاء (shards) التي يجب تحديدها عند إنشاء مجموعة البيانات القابلة للتكرار. هذا مفيد بشكل خاص للمجموعات الكبيرة من البيانات لتمكين الخلط بشكل صحيح، وأيضًا لتفعيل التحميل المتوازي السريع باستخدام PyTorch DataLoader أو في الإعدادات الموزعة على سبيل المثال. يتم تعريف الأجزاء باستخدام datasets.Dataset.shard(): فهي ببساطة تقطع البيانات دون كتابة أي شيء على القرص.

احصل على datasets.IterableDataset من datasets.Dataset بنمط الخريطة. هذا يعادل تحميل مجموعة بيانات في وضع البث باستخدام datasets.load_dataset()، لكنه أسرع بكثير لأن البيانات تُبث من ملفات محلية.

على عكس مجموعات البيانات ذات النمط الخرائطي، تكون مجموعات البيانات القابلة للتكرار كسولة (lazy) ولا يمكن التكرار عليها فقط (مثل استخدام حلقة for). بما أنها تُقرأ بشكل تسلسلي في حلقات التدريب، فإن مجموعات البيانات القابلة للتكرار أسرع بكثير من مجموعات البيانات ذات النمط الخرائطي. جميع التحويلات المطبقة على مجموعات البيانات القابلة للتكرار، مثل التصفية أو المعالجة، تتم على الفور عند بدء التكرار على مجموعة البيانات.

ومع ذلك، من الممكن خلط مجموعة بيانات قابلة للتكرار باستخدام datasets.IterableDataset.shuffle(). وهذا خلط تقريبي سريع يعمل بشكل أفضل إذا كان لديك عدة شظايا (shards) وإذا حددت حجم مخزن مؤقت كبير بما يكفي.

للحصول على أفضل أداء في السرعة، تأكد من أن مجموعة البيانات الخاصة بك لا تحتوي على تعيين للفهارس. إذا كان الأمر كذلك، فإن البيانات لا تُقرأ بشكل متتابع، مما قد يؤدي إلى بطء أحياناً. يمكنك استخدام ds = ds.flatten_indices() لكتابة مجموعة البيانات الخاصة بك في كتل متتالية من البيانات والحصول على سرعة مثالية قبل الانتقال إلى مجموعة بيانات قابلة للتكرار.

مثال:

الاستخدام الأساسي:

>>> ids = ds.to_iterable_dataset()
>>> for example in ids:
...     pass

مع التصفية والمعالجة الكسولة:

>>> ids = ds.to_iterable_dataset()
>>> ids = ids.filter(filter_fn).map(process_fn)  # will filter and process on-the-fly when you start iterating over the iterable dataset
>>> for example in ids:
...     pass

مع التقسيم (Sharding) لتفعيل الخلط (Shuffling) بكفاءة:

>>> ids = ds.to_iterable_dataset(num_shards=64)  # the dataset is split into 64 shards to be iterated over
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer for fast approximate shuffling when you start iterating
>>> for example in ids:
...     pass

مع PyTorch DataLoader:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.filter(filter_fn).map(process_fn)
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards to each worker to load, filter and process when you start iterating
>>> for example in ids:
...     pass

مع PyTorch DataLoader وshuffling:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from the shuffled list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

في إعداد موزّع مثل PyTorch DDP مع PyTorch DataLoader و

>>> from datasets.distributed import split_dataset_by_node
>>> ids = ds.to_iterable_dataset(num_shards=512)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> ids = split_dataset_by_node(ds, world_size=8, rank=0)  # will keep only 512 / 8 = 64 shards from the shuffled lists of shards when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from this node's list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

مع الخلط وعشرات الحقب المتعددة:

>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> for epoch in range(n_epochs):
...     ids.set_epoch(epoch)  # will use effective_seed = seed + epoch to shuffle the shards and for the shuffle buffer when you start iterating
...     for example in ids:
...         pass
Feel free to also use `IterableDataset.set_epoch()` when using a PyTorch DataLoader or in distributed setups.

add_faiss_index

< >

( column: strindex_name: typing.Optional[str] = Nonedevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

المعاملات

  • column (str) — عمود المتجهات التي سيتم إضافتها إلى الفهرس.
  • index_name (str، اختياري) — اسم index_name/المعرّف الخاص بالفهرس. هذا هو index_name الذي يُستخدم لاستدعاء get_nearest_examples() أو search(). افتراضيًا، يتوافق مع column.
  • device (Union[int, List[int]], اختياري) — إذا كان عددًا صحيحًا موجبًا، فهو فهرس وحدة معالجة الرسوميات (GPU) المراد استخدامها. إذا كان عددًا صحيحًا سالبًا، فسيتم استخدام جميع وحدات معالجة الرسوميات. إذا تم تمرير قائمة من الأعداد الصحيحة الموجبة، فسيتم التشغيل على تلك الوحدات فقط. افتراضيًا، يتم استخدام وحدة المعالجة المركزية (CPU).
  • string_factory (str، اختياري) — يُمرَّر هذا إلى مصنع الفهرس الخاص بـ Faiss لإنشاء الفهرس. فئة الفهرس الافتراضية هي IndexFlat.
  • metric_type (int، اختياري) — نوع المقياس. مثال: faiss.METRIC_INNER_PRODUCT أو faiss.METRIC_L2.
  • custom_index (faiss.Index، اختياري) — فهرس Faiss مخصص سبق أن أنشأته وضبطته بما يناسب احتياجاتك.
  • batch_size (int) — حجم الدفعة المستخدمة عند إضافة المتجهات إلى FaissIndex. القيمة الافتراضية هي 1000.

    أُضيف في 2.4.0

  • train_size (int، اختياري) — إذا كانت الفهرسة تتطلب خطوة تدريب، يحدد عدد المتجهات التي ستُستخدم لتدريب الفهرس.
  • faiss_verbose (bool، القيمة الافتراضية False) — تفعيل تفصيلية فهرس Faiss.
  • dtype (data-type) — نوع البيانات (dtype) لمصفوفات numpy التي يتم فهرستها. القيمة الافتراضية هي np.float32.

أضف فهرسًا كثيفًا باستخدام Faiss للاسترجاع السريع. بشكل افتراضي، يتم إنشاء الفهرس على متجهات العمود المحدد. يمكنك تحديد device إذا كنت ترغب في تشغيله على وحدة معالجة الرسوميات (device يجب أن يكون فهرس وحدة معالجة الرسوميات). يمكنك العثور على مزيد من المعلومات حول Faiss هنا:

مثال:

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds_with_embeddings = ds.map(lambda example: {'embeddings': embed(example['line']}))
>>> ds_with_embeddings.add_faiss_index(column='embeddings')
>>> # query
>>> scores, retrieved_examples = ds_with_embeddings.get_nearest_examples('embeddings', embed('my new query'), k=10)
>>> # save index
>>> ds_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss')

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> # load index
>>> ds.load_faiss_index('embeddings', 'my_index.faiss')
>>> # query
>>> scores, retrieved_examples = ds.get_nearest_examples('embeddings', embed('my new query'), k=10)

add_faiss_index_from_external_arrays

< >

( external_arrays: arrayindex_name: strdevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

المعاملات

  • external_arrays (np.array) — إذا كنت ترغب في استخدام مصفوفات من خارج المكتبة للفهرس، يمكنك تعيين external_arrays. سيتم استخدام external_arrays لإنشاء فهرس Faiss بدلاً من المصفوفات الموجودة في column المحدد.
  • index_name (str) — اسم index_name/المعرّف الخاص بالفهرس. هذا هو index_name الذي يُستخدم لاستدعاء get_nearest_examples() أو search().
  • device (اختياري Union[int, List[int]], اختياري) — إذا كان عددًا صحيحًا موجبًا، فهو فهرس وحدة معالجة الرسوميات (GPU) التي سيتم استخدامها. إذا كان عددًا صحيحًا سالبًا، فسيتم استخدام جميع وحدات معالجة الرسوميات. إذا تم تمرير قائمة من الأعداد الصحيحة الموجبة، فسيتم التشغيل على تلك الوحدات فقط. افتراضيًا، يتم استخدام وحدة المعالجة المركزية (CPU).
  • string_factory (str، اختياري) — يُمرَّر هذا إلى مصنع الفهرس الخاص بـ Faiss لإنشاء الفهرس. فئة الفهرس الافتراضية هي IndexFlat.
  • metric_type (int، اختياري) — نوع المقياس. مثال: faiss.faiss.METRIC_INNER_PRODUCT أو faiss.METRIC_L2.
  • custom_index (faiss.Index، اختياري) — فهرس Faiss مخصص سبق أن أنشأته وضبطته بما يناسب احتياجاتك.
  • batch_size (int, اختياري) — حجم الدفعة المستخدمة عند إضافة المتجهات إلى FaissIndex. القيمة الافتراضية هي 1000.

    أُضيف في 2.4.0

  • train_size (int، اختياري) — إذا كانت الفهرسة تتطلب خطوة تدريب، يحدد عدد المتجهات التي ستُستخدم لتدريب الفهرس.
  • faiss_verbose (bool، القيمة الافتراضية False) — تفعيل تفصيلية فهرس Faiss.
  • dtype (numpy.dtype) — نوع البيانات (dtype) لمصفوفات numpy التي يتم فهرستها. القيمة الافتراضية هي np.float32.

أضف فهرسًا كثيفًا باستخدام Faiss للاسترجاع السريع. يتم إنشاء الفهرس باستخدام متجهات external_arrays. يمكنك تحديد device إذا كنت ترغب في تشغيله على وحدة معالجة الرسوميات (device يجب أن يكون فهرس وحدة معالجة الرسوميات). يمكنك العثور على مزيد من المعلومات حول Faiss هنا:

save_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]storage_options: typing.Optional[dict] = None )

المعاملات

  • index_name (str) — اسم فهرسة/معرّف الفهرس. هذا هو index_name الذي يُستخدم لاستدعاء .get_nearest أو .search.
  • file (str) — المسار إلى فهرس faiss المُسلسَل على القرص أو عنوان URI عن بُعد (مثل "s3://my-bucket/index.faiss").
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.11.0

احفظ FaissIndex على القرص.

load_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]device: typing.Union[int, list[int], NoneType] = Nonestorage_options: typing.Optional[dict] = None )

المعاملات

  • index_name (str) — اسم فهرسة/معرّف الفهرس. هذا هو index_name الذي يُستخدم لاستدعاء .get_nearest أو .search.
  • file (str) — المسار إلى فهرس faiss المُسلسَل على القرص أو عنوان URI عن بُعد (مثل "s3://my-bucket/index.faiss").
  • device (اختياري Union[int, List[int]]) — إذا كان عددًا صحيحًا موجبًا، فهو فهرس وحدة معالجة الرسوميات (GPU) التي سيتم استخدامها. إذا كان عددًا صحيحًا سالبًا، فسيتم استخدام جميع وحدات معالجة الرسوميات. إذا تم تمرير قائمة من الأعداد الصحيحة الموجبة، فسيتم التشغيل على تلك الوحدات فقط. افتراضيًا، يتم استخدام وحدة المعالجة المركزية (CPU).
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.11.0

تحميل FaissIndex من القرص.

إذا كنت ترغب في إجراء تكوينات إضافية، يمكنك الوصول إلى كائن فهرس faiss من خلال تنفيذ .get_index(index_name).faiss_index لتكييفه مع احتياجاتك.

add_elasticsearch_index

< >

( column: strindex_name: typing.Optional[str] = Nonehost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('elasticsearch.Elasticsearch')] = Nonees_index_name: typing.Optional[str] = Nonees_index_config: typing.Optional[dict] = None )

المعاملات

  • column (str) — عمود المستندات التي يجب إضافتها إلى الفهرس.
  • index_name (str، اختياري) — اسم index_name/المعرّف الخاص بالفهرس. هذا هو اسم الفهرس الذي يُستخدم لاستدعاء get_nearest_examples() أو search(). افتراضيًا، يتوافق مع column.
  • host (str، اختياري، الافتراضي localhost) — المضيف الذي يعمل عليه ElasticSearch.
  • port (str، اختياري، القيمة الافتراضية 9200) — منفذ تشغيل ElasticSearch.
  • es_client (elasticsearch.Elasticsearch، اختياري) — عميل elasticsearch المستخدم لإنشاء الفهرس إذا كانت host و port قيمتهما None.
  • es_index_name (str، اختياري) — اسم فهرس elasticsearch المستخدم لإنشاء الفهرس.
  • es_index_config (dict، اختياري) — إعدادات فهرس elasticsearch. الإعداد الافتراضي هو:

أضف فهرسًا نصيًا باستخدام ElasticSearch للاسترجاع السريع. يتم ذلك في الموقع نفسه.

مثال:

>>> es_client = elasticsearch.Elasticsearch()
>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds.add_elasticsearch_index(column='line', es_client=es_client, es_index_name="my_es_index")
>>> scores, retrieved_examples = ds.get_nearest_examples('line', 'my new query', k=10)

load_elasticsearch_index

< >

( index_name: stres_index_name: strhost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('Elasticsearch')] = Nonees_index_config: typing.Optional[dict] = None )

المعاملات

  • index_name (str) — اسم index_name/المعرّف الخاص بالفهرس. هذا هو اسم الفهرس الذي يُستخدم لاستدعاء get_nearest أو search.
  • es_index_name (str) — اسم فهرس elasticsearch الذي سيتم تحميله.
  • host (str، اختياري، الافتراضي localhost) — المضيف الذي يعمل عليه ElasticSearch.
  • port (str، اختياري، القيمة الافتراضية 9200) — منفذ تشغيل ElasticSearch.
  • es_client (elasticsearch.Elasticsearch، اختياري) — عميل elasticsearch المستخدم لإنشاء الفهرس إذا كانت host و port قيمتهما None.
  • es_index_config (dict، اختياري) — إعدادات فهرس elasticsearch. الإعداد الافتراضي هو:

قم بتحميل فهرس نصي موجود باستخدام ElasticSearch للاسترجاع السريع.

list_indexes

< >

( )

colindex_nameumns/أعدّ قائمة بالمعرّفات لجميع الفهارس المرفقة.

get_index

< >

( index_name: str )

المعاملات

  • index_name (str) — اسم الفهرس.

قائمة index_name/المعرّفات لجميع الفهارس المرفقة.

drop_index

< >

( index_name: str )

المعاملات

  • index_name (str) — اسم index_name/المعرّف الخاص بالفهرس.

احذف المؤشر بالعمود المحدد.

بحث

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, indices)

المعاملات

  • index_name (str) — اسم/معرّف الفهرس.
  • query (Union[str, np.ndarray]) — الاستعلام كنص إذا كان index_name فهرسًا نصيًا، أو كمصفوفة numpy إذا كان index_name فهرسًا متجهيًا.
  • k (int) — عدد الأمثلة المطلوب استرجاعها.

يعيد

(scores, indices)

سلسلة من (scores, indices) حيث:

  • scores (List[List[float]): درجات الاسترجاع من FAISS (افتراضيًا IndexFlatL2) أو ElasticSearch للأمثلة المسترجعة
  • indices (List[List[int]]): فهارس الأمثلة المسترجعة

find_nearest_examples_indices

search_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_indices)

المعاملات

  • index_name (str) — اسم index_name/المعرّف الخاص بالفهرس.
  • queries (Union[List[str], np.ndarray]) — الاستعلامات كقائمة من النصوص إذا كان index_name فهرسًا نصيًا، أو كمصفوفة numpy إذا كان index_name فهرسًا متجهيًا.
  • k (int) — عدد الأمثلة التي يجب استرجاعها لكل استعلام.

يعيد

(total_scores, total_indices)

سلسلة من (total_scores, total_indices) حيث:

  • total_scores (List[List[float]): درجات الاسترجاع من FAISS (افتراضيًا IndexFlatL2) أو ElasticSearch للأمثلة المسترجعة لكل استعلام
  • total_indices (List[List[int]]): فهارس الأمثلة المسترجعة لكل استعلام

find_nearest_examples_indices

get_nearest_examples

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, examples)

المعاملات

  • index_name (str) — اسم فهرسة/معرّف الفهرس.
  • query (Union[str, np.ndarray]) — الاستعلام كنص إذا كان index_name فهرسًا نصيًا، أو كمصفوفة numpy إذا كان index_name فهرسًا متجهيًا.
  • k (int) — عدد الأمثلة المطلوب استرجاعها.

يعيد

(scores, examples)

سلسلة من (scores, examples) حيث:

  • scores (List[float]): درجات الاسترجاع من FAISS (افتراضيًا IndexFlatL2) أو ElasticSearch للأمثلة المسترجعة
  • أمثلة (dict): الأمثلة المسترجعة

ابحث عن أقرب الأمثلة في مجموعة البيانات إلى الاستعلام.

get_nearest_examples_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_examples)

المعاملات

  • index_name (str) — اسم index_name/المعرّف الخاص بالفهرس.
  • queries (Union[List[str], np.ndarray]) — الاستعلامات كقائمة من النصوص إذا كان index_name فهرسًا نصيًا، أو كمصفوفة numpy إذا كان index_name فهرسًا متجهيًا.
  • k (int) — عدد الأمثلة التي يجب استرجاعها لكل استعلام.

يعيد

(total_scores, total_examples)

سلسلة من (total_scores, total_examples) حيث:

  • total_scores (List[List[float]): درجات الاسترجاع من FAISS (افتراضيًا IndexFlatL2) أو ElasticSearch للأمثلة المسترجعة لكل استعلام
  • total_examples (List[dict]): الأمثلة المسترجعة لكل استعلام

ابحث عن أقرب الأمثلة في مجموعة البيانات إلى الاستعلام.

معلومات

< >

( )

كائن DatasetInfo يحتوي على جميع البيانات الوصفية في مجموعة البيانات.

تقسيم

< >

( )

كائن NamedSplit يقابل تقسيماً مسمّى من مجموعة البيانات.

builder_name

< >

( )

استشهاد

< >

( )

config_name

< >

( )

dataset_size

< >

( )

الوصف

< >

( )

download_checksums

< >

( )

download_size

< >

( )

مميزات

< >

( )

صفحة الرئيسية

< >

( )

رخصة

< >

( )

حجم_بالبايت

< >

( )

supervised_keys

< >

( )

الإصدار

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = None**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات CSV.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • num_proc (int, اختياري, الافتراضي هو None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. يكون هذا مفيدًا إذا كانت مجموعة البيانات مكوّنة من ملفات متعددة. يتم تعطيل تعدد العمليات افتراضيًا.

    أُضيف في 2.8.0

  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى pandas.read_csv.

إنشاء مجموعة بيانات من ملف أو ملفات CSV.

اقرأ ملفات CSV، وخزّن البيانات بصيغة Arrow على القرص، ثم أعد Dataset من بيانات Arrow المخرجة في الذاكرة على القرص.

مثال:

>>> ds = Dataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = Nonenum_proc: typing.Optional[int] = None**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات JSON أو JSON Lines.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • field (str، اختياري) — اسم الحقل في ملف JSON الذي يحتوي على مجموعة البيانات.
  • num_proc (int, اختياري الافتراضي هو None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. يكون هذا مفيدًا إذا كانت مجموعة البيانات مكوّنة من ملفات متعددة. يتم تعطيل تعدد العمليات افتراضيًا.

    أُضيف في 2.8.0

  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى JsonConfig.

إنشاء مجموعة بيانات من ملف أو ملفات بصيغة JSON أو JSON Lines.

اقرأ ملفات JSON، وخزّن البيانات بصيغة Arrow على القرص، ثم أعد Dataset من بيانات Arrow المخرجة في الذاكرة على القرص.

مثال:

>>> ds = Dataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonenum_proc: typing.Optional[int] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات Parquet.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • columns (List[str]، اختياري) — إذا لم يكن None، فسيتم قراءة هذه الأعمدة فقط من الملف. قد يكون اسم العمدة بادئة لحقل متداخل، على سبيل المثال، ‘a’ سيحدد ‘a.b’ و ‘a.c’ و ‘a.d.e’.
  • num_proc (int, اختياري, الافتراضي هو None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. يكون هذا مفيدًا إذا كانت مجموعة البيانات مكوّنة من ملفات متعددة. يتم تعطيل تعدد العمليات افتراضيًا.

    أُضيف في 2.8.0

  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]]، اختياري) — إرجاع الصفوف المطابقة للمرشّح فقط. إذا كان ذلك ممكنًا، فسيتم دفع الشرط إلى الأسفل لاستغلال معلومات التقسيم أو البيانات الوصفية الداخلية الموجودة في مصدر البيانات، مثل إحصاءات Parquet. وإلا، فسيتم تصفية دفعات السجلات (RecordBatches) المحمّلة قبل تسليمها.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, اختياري) — خيارات محددة للمسح الخاصة بقطع Parquet. هذا مفيد بشكل خاص لتكوين التخزين المؤقت والتخزين في الذاكرة.

    أُضيف في 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], اختياري, القيمة الافتراضية هي "error") — حدد الإجراء المتخذ عند مواجهة ملف معطوب (ملف لا يمكن قراءته). القيم المسموح بها هي:
    • ‘error’، ترمي استثناءً عند مواجهة ملف غير صالح.
    • ‘warn’، إصدار تحذير عند مواجهة ملف غير صالح وتخطي ذلك الملف.
    • ‘skip’، تخطي الملفات المعيبة دون رفع استثناء أو إصدار تحذير عند مواجهتها.

    أُضيف في 4.2.0

  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى ParquetConfig.

إنشاء مجموعة بيانات من ملف أو ملفات Parquet.

اقرأ ملفات Parquet، وخزّن البيانات بصيغة Arrow على القرص، ثم أعد Dataset من بيانات Arrow المرمّزة في الذاكرة على القرص.

مثال:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet')

تحميل مجموعة فرعية من الأعمدة:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

Efficiently filter data, possibly skipping entire files or row groups:

>>> filters = [("col_0", "==", 0)]
>>> ds = Dataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = Nonekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار(ات) ملف(ات) النص.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • num_proc (int, اختياري, الافتراضي هو None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. يكون هذا مفيدًا إذا كانت مجموعة البيانات مكوّنة من ملفات متعددة. يتم تعطيل تعدد العمليات افتراضيًا.

    أُضيف في 2.8.0

  • keep_linebreaks — (bool، الافتراضي False): ما إذا كان سيتم الإبقاء على علامات تبديل السطر.
  • sample_by (Literal["line", "paragraph", "document"])، القيمة الافتراضية هي “line”) — ما إذا كان سيتم تحميل البيانات سطرًا سطرًا، أو فقرةً فقرةً، أو مستندًا مستندًا. افتراضيًا، كل صف في مجموعة البيانات = سطر واحد.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى TextConfig.

إنشاء مجموعة بيانات من ملف نصي أو أكثر.

اقرأ ملفات النص، وخزّن البيانات بصيغة Arrow على القرص، ثم أعد Dataset من بيانات Arrow المخرجة من الذاكرة على القرص.

مثال:

>>> ds = Dataset.from_text('path/to/dataset.txt')

from_sql

< >

( sql: typing.Union[str, ForwardRef('sqlalchemy.sql.Selectable')]con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]features: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

المعاملات

  • sql (str أو sqlalchemy.sql.Selectable) — استعلام SQL لتنفيذه أو اسم جدول.
  • con (str أو sqlite3.Connection أو sqlalchemy.engine.Connection أو sqlalchemy.engine.Connection) — سلسلة URI تُستخدم لإنشاء اتصال بقاعدة البيانات أو كائن اتصال SQLite3/SQLAlchemy.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى SqlConfig.

إنشاء مجموعة بيانات من استعلام SQL أو جدول قاعدة بيانات.

استعلام قاعدة بيانات SQL، وتخزين البيانات مؤقتًا على القرص بتنسيق Arrow، وإرجاع Dataset من بيانات Arrow المرمّزة في الذاكرة على القرص.

مثال:

>>> # Fetch a database table
>>> ds = Dataset.from_sql("test_data", "postgres:///db_name")
>>> # Execute a SQL query on the table
>>> ds = Dataset.from_sql("SELECT sentence FROM test_data", "postgres:///db_name")
>>> # Use a Selectable object to specify the query
>>> from sqlalchemy import select, text
>>> stmt = select([text("sentence")]).select_from(text("test_data"))
>>> ds = Dataset.from_sql(stmt, "postgres:///db_name")

لا يمكن تخزين مجموعة البيانات المُعادّة مؤقتًا إلا إذا تم تحديد con كنص URI.

align_labels_with_mapping

< >

( label2id: dictlabel_column: str )

المعاملات

  • label2id (dict) — خريطة تطابق أسماء التسميات مع المعرّفات لمواءمة مجموعة البيانات.
  • label_column (str) — اسم العمود الخاص بالتسميات التي سيتم المحاذاة عليها.

مطابقة تعيين معرّفات التسميات وأسماء التسميات في مجموعة البيانات مع تعيين label2id المُدخل. يُعدّ هذا مفيدًا عندما تريد التأكد من أن التسميات المتوقعة من النموذج متوافقة مع مجموعة البيانات. يتم تنفيذ المطابقة باستخدام أسماء التسميات بحروف صغيرة.

مثال:

>>> # dataset with mapping {'entailment': 0, 'neutral': 1, 'contradiction': 2}
>>> ds = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> # mapping to align with
>>> label2id = {'CONTRADICTION': 0, 'NEUTRAL': 1, 'ENTAILMENT': 2}
>>> ds_aligned = ds.align_labels_with_mapping(label2id, "label")

datasets.concatenate_datasets

< >

( dsets: listinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneaxis: int = 0 )

المعاملات

  • dsets (List[datasets.Dataset] أو List[datasets.IterableDataset]) — قائمة من مجموعات البيانات (Datasets) لدمجها.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • axis ({0, 1}, الافتراضي هو 0) — المحور الذي تتم عليه عملية الدمج، حيث 0 تعني عبر الصفوف (رأسياً) و 1 تعني عبر الأعمدة (أفقيًا).

    أُضيف في 1.6.0

دمج عدة مجموعات بيانات (مصادر) في مجموعة بيانات واحدة.

استخدم axis=0 للدمج عموديًا (الافتراضي)، أو axis=1 للدمج أفقيًا.

ملاحظة بخصوص مجموعات البيانات القابلة للتكرار:

  • if axis=0, the resulting dataset’s num_shards is the sum of each dataset’s num_shards.
  • إذا كان axis=1، فإن مجموعة البيانات الناتجة تحتوي على شريحة واحدة (1) لتجنب عدم محاذاة البيانات.
  • if the datasets were split with datasets.distributed.split_dataset_by_node(), they must all be split the same way, and the resulting dataset keeps that split.

مثال:

>>> ds3 = concatenate_datasets([ds1, ds2])

datasets.interleave_datasets

< >

( datasets: listprobabilities: typing.Optional[list[float]] = Noneseed: typing.Optional[int] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonestopping_strategy: typing.Literal['first_exhausted', 'all_exhausted', 'all_exhausted_without_replacement'] = 'first_exhausted' ) → Dataset or IterableDataset

المعاملات

  • datasets (List[Dataset] أو List[IterableDataset]) — قائمة مجموعات البيانات التي سيتم دمجها بالتناوب.
  • probabilities (List[float]، اختياري، القيمة الافتراضية None) — إذا تم تحديده، يتم إنشاء مجموعة البيانات الجديدة عن طريق أخذ عينات من الأمثلة من مصدر واحد في كل مرة وفقًا لهذه الاحتمالات.
  • seed (int، اختياري، القيمة الافتراضية None) — البذرة العشوائية المستخدمة لاختيار مصدر لكل مثال.
  • info (DatasetInfo, اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.

    أُضيف في 2.4.0

  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.

    أُضيف في 2.4.0

  • stopping_strategy (str, الافتراضي هو first_exhausted) — يُقترح حالياً ثلاثة استراتيجيات، وهي first_exhausted, all_exhausted و all_exhausted_without_replacement. بشكل افتراضي، first_exhausted استراتيجية أخذ عينات ناقصة، أي أن بناء مجموعة البيانات يتوقف بمجرد نفاد العينات من إحدى مجموعات البيانات. إذا كانت الاستراتيجية all_exhausted, نستخدم استراتيجية أخذ عينات زائدة، أي أن بناء مجموعة البيانات يتوقف بمجرد إضافة كل عينة من كل مجموعة بيانات مرة واحدة على الأقل. عندما تكون الاستراتيجية all_exhausted_without_replacement نحرص على أن تُؤخذ كل عينة في كل مجموعة بيانات مرة واحدة فقط. يُرجى ملاحظة أنه إذا كانت الاستراتيجية all_exhausted, قد تصبح حجم مجموعة البيانات المتداخلة ضخماً:
    • بدون احتمالات، سيكون عدد العينات في مجموعة البيانات الناتجة max_length_datasets*nb_dataset.
    • مع الاحتمالات المعطاة، سيحتوي مجموعة البيانات الناتجة على عينات أكثر إذا كانت بعض مجموعات البيانات لديها احتمال زيارتها منخفض جداً.

يعيد

Dataset أو IterableDataset

يعتمد نوع الإرجاع على معامل datasets. يكون Dataset إذا كان الإدخال قائمة من Dataset، وIterableDataset إذا كان الإدخال قائمة من IterableDataset.

Interleave several datasets (sources) into a single dataset. The new dataset is constructed by alternating between the sources to get the examples.

يمكنك استخدام هذه الدالة على قائمة من كائنات Dataset، أو على قائمة من كائنات IterableDataset.

  • إذا كانت probabilities تساوي None (الافتراضي)، يتم إنشاء مجموعة البيانات الجديدة بالتناوب بين كل مصدر للحصول على الأمثلة.
  • إذا لم يكن probabilities هو None، يتم بناء مجموعة البيانات الجديدة عن طريق أخذ أمثلة من مصدر عشوائي في كل مرة وفقًا للاحتمالات المُقدَّمة.

ينتهي مجموعة البيانات الناتجة عندما تنفد الأمثلة من إحدى مجموعات البيانات المصدرية، باستثناء عندما يكون oversampling هو True، وفي هذه الحالة، تنتهي مجموعة البيانات الناتجة عندما تنفد الأمثلة من جميع مجموعات البيانات مرة واحدة على الأقل.

ملاحظة بخصوص مجموعات البيانات القابلة للتكرار:

  • عدد num_shards في مجموعة البيانات الناتجة هو الحد الأدنى لعدد num_shards في كل مجموعة بيانات لضمان توازٍ جيد. إذا كانت بعض مجموعات البيانات لديك تحتوي على عدد منخفض جداً من الأجزاء، يمكنك استخدام IterableDataset.reshard().
  • في الإعداد الموزّع أو في عمّالي PyTorch DataLoader، تُطبَّق استراتيجية التوقف لكل عملية على حدة. لذلك، يمكن لاستراتيجية “first_exhausted” على مجموعة بيانات قابلة للتكرار مقسّمة إلى شرائح أن تولّد عددًا أقل من العينات إجمالًا (بحد أقصى عينة مفقودة واحدة لكل مجموعة فرعية من البيانات ولكل عامل).

مثال:

للمجموعات البيانات العادية (بنمط الخريطة):

>>> from datasets import Dataset, interleave_datasets
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22]})
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 10, 0, 1, 2, 21, 0, 11, 1, 2, 0, 1, 12, 2, 10, 0, 22]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12, 13]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22, 23, 24]})
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22, 0, 13, 23, 1, 10, 24]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 13, ..., 0, 1, 2, 0, 24]
For datasets in streaming mode (iterable):

>>> from datasets import interleave_datasets
>>> d1 = load_dataset('allenai/c4', 'es', split='train', streaming=True)
>>> d2 = load_dataset('allenai/c4', 'fr', split='train', streaming=True)
>>> dataset = interleave_datasets([d1, d2])
>>> iterator = iter(dataset)
>>> next(iterator)
{'text': 'Comprar Zapatillas para niña en chancla con goma por...'}
>>> next(iterator)
{'text': 'Le sacre de philippe ier, 23 mai 1059 - Compte Rendu...'

datasets.distributed.split_dataset_by_node

< >

( dataset: ~DatasetTyperank: intworld_size: intstrategy: typing.Literal['auto', 'shards', 'examples'] = 'auto' ) → Dataset or IterableDataset

المعاملات

  • dataset (Dataset أو IterableDataset) — مجموعة البيانات التي سيتم تقسيمها حسب العقدة.
  • rank (int) — ترتيب العقدة الحالية.
  • world_size (int) — إجمالي عدد العقد.
  • strategy (str، القيمة الافتراضية "auto") — كيفية تقسيم مجموعة بيانات قابلة للتكرار. يجب أن تكون واحدة من "auto" أو "shards" أو "examples". مجموعات البيانات من نوع Map تدعم "auto" فقط.

يعيد

Dataset أو IterableDataset

مجموعة البيانات التي سيتم استخدامها على العقدة ذات الترتيب rank.

قسّم مجموعة البيانات الخاصة بالعقدة ذات الترتيب rank في مجموعة عقد حجمها world_size.

للمجموعات البيانات ذات نمط الخريطة:

يُسنَد إلى كل عقدة جزء من البيانات، على سبيل المثال يُمنح الرتبة 0 الجزء الأول من مجموعة البيانات. لتعظيم معدل تحميل البيانات، تُصنع الأجزاء من بيانات متجاورة على القرص إن أمكن.

للمجموعات البيانات القابلة للتكرار:

يمكن أن تكون strategy للتقسيم "auto" أو "shards" أو "examples":

  • "shards": يتم توزيع الشرائح بالتساوي عبر العقد
  • "examples": يحتفظ كل عقدة بمثال واحد من world_size، متجاوزةً الأمثلة الأخرى
  • "auto" (الافتراضي): يستخدم "shards" إذا كان عدد الشرائح في مجموعة البيانات عاملًا قاسمًا لـ world_size (أي إذا كان dataset.num_shards % world_size == 0)، وهو الخيار الأكثر تحسينًا. وإلا يستخدم "examples".

إذا قمت بتبديل ترتيب مجموعة البيانات القابلة للتكرار في إعداد موزّع، فتأكد من تعيين seed ثابت في IterableDataset.shuffle() بحيث تُستخدم نفس القائمة المُبدَّلة من الشرائح على كل عقدة لمعرفة الشرائح التي يجب على العقدة تجاوزها.

datasets.enable_caching

< >

( )

عند تطبيق التحويلات على مجموعة بيانات، تُخزَّن البيانات في ملفات تخزين مؤقت. يتيح آلية التخزين المؤقت إعادة تحميل ملف تخزين مؤقت موجود إذا كان قد تم حسابه مسبقًا.

من الممكن إعادة تحميل مجموعة البيانات لأن ملفات التخزين المؤقت تُسمّى باستخدام بصمة مجموعة البيانات، والتي يتم تحديثها بعد كل تحويل.

إذا تم تعطيلها، لن تعيد المكتبة تحميل ملفات مجموعات البيانات المخزنة مؤقتًا عند تطبيق التحويلات على مجموعات البيانات. بشكل أدق، إذا تم تعطيل التخزين المؤقت:

  • تُعاد ملفات الكاش دائمًا
  • تُكتب ملفات الكاش في مجلد مؤقت يُحذف عند إغلاق الجلسة
  • تُسمّى ملفات التخزين المؤقت باستخدام تجزئة عشوائية بدلاً من بصمة مجموعة البيانات
  • استخدم save_to_disk() لحفظ مجموعة البيانات المُحوَّلة، وإلا فسيتم حذفها عند إغلاق الجلسة
  • لا يؤثر التخزين المؤقت على load_dataset(). إذا كنت ترغب في إعادة توليد مجموعة بيانات من الصفر، فيجب عليك استخدام معامل download_mode في load_dataset().

datasets.disable_caching

< >

( )

عند تطبيق التحويلات على مجموعة بيانات، تُخزَّن البيانات في ملفات تخزين مؤقت. يتيح آلية التخزين المؤقت إعادة تحميل ملف تخزين مؤقت موجود إذا كان قد تم حسابه مسبقًا.

من الممكن إعادة تحميل مجموعة البيانات لأن ملفات التخزين المؤقت تُسمّى باستخدام بصمة مجموعة البيانات، والتي يتم تحديثها بعد كل تحويل.

إذا تم تعطيلها، لن تعيد المكتبة تحميل ملفات مجموعات البيانات المخزنة مؤقتًا عند تطبيق التحويلات على مجموعات البيانات. بشكل أدق، إذا تم تعطيل التخزين المؤقت:

  • تُعاد ملفات الكاش دائمًا
  • تُكتب ملفات الكاش في مجلد مؤقت يُحذف عند إغلاق الجلسة
  • تُسمّى ملفات التخزين المؤقت باستخدام تجزئة عشوائية بدلاً من بصمة مجموعة البيانات
  • استخدم save_to_disk() لحفظ مجموعة البيانات المُحوَّلة، وإلا فسيتم حذفها عند إغلاق الجلسة
  • لا يؤثر التخزين المؤقت على load_dataset(). إذا كنت ترغب في إعادة توليد مجموعة بيانات من الصفر، فيجب عليك استخدام معامل download_mode في load_dataset().

datasets.is_caching_enabled

< >

( )

عند تطبيق التحويلات على مجموعة بيانات، تُخزَّن البيانات في ملفات تخزين مؤقت. يتيح آلية التخزين المؤقت إعادة تحميل ملف تخزين مؤقت موجود إذا كان قد تم حسابه مسبقًا.

من الممكن إعادة تحميل مجموعة البيانات لأن ملفات التخزين المؤقت تُسمّى باستخدام بصمة مجموعة البيانات، والتي يتم تحديثها بعد كل تحويل.

إذا تم تعطيلها، لن تعيد المكتبة تحميل ملفات مجموعات البيانات المخزنة مؤقتًا عند تطبيق التحويلات على مجموعات البيانات. بشكل أدق، إذا تم تعطيل التخزين المؤقت:

  • تُعاد ملفات الكاش دائمًا
  • تُكتب ملفات الكاش في مجلد مؤقت يُحذف عند إغلاق الجلسة
  • تُسمّى ملفات التخزين المؤقت باستخدام تجزئة عشوائية بدلاً من بصمة مجموعة البيانات
  • استخدم save_to_disk() لحفظ مجموعة البيانات المُحوَّلة، وإلا فسيتم حذفها عند إغلاق الجلسة
  • لا يؤثر التخزين المؤقت على load_dataset(). إذا كنت ترغب في إعادة توليد مجموعة بيانات من الصفر، فيجب عليك استخدام معامل download_mode في load_dataset().

class datasets.Column

< >

( source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')]column_name: str )

قابلة للتكرار لعمود محدد من Dataset.

مثال:

تكرار على نصوص عمود “text” في مجموعة بيانات:

for text in dataset["text"]:
    ...

يعمل أيضًا مع الأعمدة المتداخلة:

for source in dataset["metadata"]["source"]:
    ...

DatasetDict

قاموس تُستخدم فيه الأسماء المقسمة كمفاتيح (مثل ‘train’ و ‘test’)، وتُستخدم كائنات Dataset كقيم. كما يحتوي على طرق تحويل مجموعات البيانات مثل map أو filter، لمعالجة جميع التقسيمات دفعة واحدة.

فئة datasets.DatasetDict

< >

( )

قاموس (dict of str: datasets.Dataset) يحتوي على طرق تحويلات مجموعة البيانات (map، filter، إلخ)

بيانات

< >

( )

جداول Apache Arrow التي تدعم كل تقسيم.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.data

cache_files

< >

( )

ملفات الكاش التي تحتوي على جدول Apache Arrow الذي يدعم كل تقسيم.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cache_files
{'test': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-test.arrow'}],
 'train': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-train.arrow'}],
 'validation': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]}

num_columns

< >

( )

عدد الأعمدة في كل تقسيم من مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_columns
{'test': 2, 'train': 2, 'validation': 2}

num_rows

< >

( )

عدد الصفوف في كل جزء من مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_rows
{'test': 1066, 'train': 8530, 'validation': 1066}

column_names

< >

( )

أسماء الأعمدة في كل تقسيم من مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.column_names
{'test': ['text', 'label'],
 'train': ['text', 'label'],
 'validation': ['text', 'label']}

الشكل

< >

( )

شكل كل جزء من مجموعة البيانات (عدد الصفوف، عدد الأعمدة).

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.shape
{'test': (1066, 2), 'train': (8530, 2), 'validation': (1066, 2)}

فريد

< >

( column: str ) → Dict[str, list]

المعاملات

  • column (str) — اسم العمود (قائمة بأسماء الأعمدة باستخدام column_names)

يعيد

Dict[str, list]

قاموس للعناصر الفريدة في العمود المحدد.

إرجاع قائمة بالعناصر الفريدة في عمود لكل تقسيم.

يتم تنفيذ ذلك في الخلفية منخفضة المستوى، ولذلك فهو سريع للغاية.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.unique("label")
{'test': [1, 0], 'train': [1, 0], 'validation': [1, 0]}

cleanup_cache_files

< >

( )

قم بتنظيف جميع ملفات الكاش في مجلد كاش مجموعة البيانات، باستثناء ملف الكاش المستخدم حاليًا إن وُجد. توخَّ الحذر عند تنفيذ هذا الأمر للتأكد من عدم استخدام أي عملية أخرى لملفات كاش أخرى.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cleanup_cache_files()
{'test': 0, 'train': 0, 'validation': 0}

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

المعاملات

  • function (callable) — مع أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> Dict[str, Any] إذا كان batched=False وwith_indices=False
    • function(example: Dict[str, Any], indices: int) -> Dict[str, Any] إذا كان batched=False وwith_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] إذا كان batched=True و with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] إذا كان batched=True و with_indices=True

    للاستخدام المتقدم، يمكن للدالة أيضاً أن تُرجع pyarrow.Table. إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي. علاوة على ذلك، إذا كانت دالتك لا تُرجع شيئاً (None)، فإن map ستنفّذ دالتك وتُرجع مجموعة البيانات دون تغيير. إذا لم تُوفَّر دالة، فسيتم افتراض دالة الهوية: lambda x: x.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx): ....
  • with_rank (bool، القيمة الافتراضية False) — توفير ترتيب العملية إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـ function هو def function(example[, idx], rank): ....
  • with_split (bool، القيمة الافتراضية False) — توفير تقسيم العملية إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example[, idx], split): ....
  • input_columns ([Union[str, list[str]]]، اختياري، القيمة الافتراضية None) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True، وإذا كان batch_size <= 0 أو batch_size == None فسيتم تقديم مجموعة البيانات الكاملة كدفعة واحدة إلى function.
  • drop_last_batch (bool، القيمة الافتراضية False) — ما إذا كان يجب تجاهل الدفعة الأخيرة الأصغر من batch_size بدلاً من معالجتها بواسطة الدالة.
  • remove_columns ([Union[str, list[str]]]، اختياري، القيمة الافتراضية None) — إزالة مجموعة من الأعمدة أثناء تنفيذ عملية الخرائط (mapping). سيتم إزالة الأعمدة قبل تحديث الأمثلة بمخرجات function، أي إذا كان function يضيف أعمدة بأسماء موجودة في remove_columns، فسيتم الاحتفاظ بهذه الأعمدة.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • cache_file_names ([Dict[str, str]]، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا. يجب عليك تقديم cache_file_name واحد لكل مجموعة بيانات في قاموس مجموعة البيانات.
  • writer_batch_size (int، الافتراضي 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة، وسرعة المعالجة. القيمة الأعلى تجعل المعالجة تقوم بعدد أقل من عمليات البحث، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • features ([datasets.Features]، اختياري، الافتراضي None) — استخدم Features محددة لتخزين ملف الكاش بدلاً من الملف المولّد تلقائيًا.
  • disable_nullable (bool، القيمة الافتراضية False) — يمنع القيم الفارغة في الجدول.
  • fn_kwargs (Dict، اختياري، القيمة الافتراضية None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات المستخدمة للمعالجة المتعددة. إذا كانت القيمة None أو 0، فلن تُستخدم المعالجة المتعددة وسيتم تنفيذ العملية في العملية الرئيسية. إذا كانت القيمة أكبر من 1، فسيتم استخدام عملية عاملة واحدة أو عدة عمليات عاملة لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) لكي تعمل المعالجة المتعددة بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
    • إذا كانت None أو 0، فلا يُستخدم تعدد العمليات، وتُنفَّذ العملية في العملية الرئيسية.
    • إذا كان أكبر من 1، تُستخدم عملية عامل واحدة أو عدة عمليات عامل لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) حتى يعمل تعدد العمليات بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
  • desc (str، اختياري، القيمة الافتراضية None) — وصف ذو معنى يُعرض إلى جانب شريط التقدم أثناء خرائط الأمثلة.
  • try_original_type (Optional[bool]، القيمة الافتراضية True) — حاول الحفاظ على أنواع الأعمدة الأصلية (مثل int32 -> int32). اضبطها على False إذا كنت تريد دائمًا استنتاج أنواع جديدة.
  • on_mixed_types (Literal["use_json"], اختياري, القيمة الافتراضية هي None) — إذا كانت القيمة "use_json"، يتم استخدام نوع Json() للحقول ذات الأنواع المختلطة، أي الحقول غير المهيكلة التي تحتوي على بيانات بدون مخطط مسبق التعريف. في هذه الحالة، يُضبط الحقل ذو النوع المختلط على Json().

    يتيح هذا تحميل قوائم تحتوي على مزيج من النصوص/الأعداد الصحيحة/الأعداد العشرية، على سبيل المثال، أو قواميس ذات أنواع قيم عشوائية.

    أُضيف في 4.7.0

تطبيق دالة على جميع الأمثلة في الجدول (فرديةً أو على شكل دفعات) وتحديث الجدول. إذا كانت دالتك تُرجع عمودًا موجودًا مسبقًا، فإنها تُعيد كتابته. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

يمكنك تحديد ما إذا كان ينبغي تجميع الدالة أم لا باستخدام معامل batched:

  • إذا كانت False، فإن الدالة تستقبل مثالًا واحدًا ويجب أن تُرجع مثالًا واحدًا. المثال هو قاموس، مثل {"text": "Hello there !"}.
  • إذا كان True وbatch_size يساوي 1، فإن الدالة تستقبل دفعة تحتوي على مثال واحد كمدخلات ويمكنها إرجاع دفعة تحتوي على مثال واحد أو أكثر. الدفعة هي قاموس، على سبيل المثال دفعة تحتوي على مثال واحد هي {"text": ["Hello there !"]}.
  • إذا كان True وbatch_size هو n > 1، فإن الدالة تستقبل دفعة من n أمثلة كمدخلات، ويمكن أن تعيد دفعة تحتوي على n أمثلة، أو على عدد عشوائي من الأمثلة. لاحظ أن الدفعة الأخيرة قد تحتوي على أقل من n أمثلة. الدفعة هي قاموس، على سبيل المثال، دفعة من n أمثلة هي {"text": ["Hello there !"] * n}.

إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن. يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds["train"][0:3]["text"]
['Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'Review: effective but too-tepid biopic']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

فلتر

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = None )

المعاملات

  • function (Callable) — دالة قابلة للاستدعاء (Callable) تحمل أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> bool إذا كان batched=False وwith_indices=False وwith_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool إذا كان batched=False و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)
    • function(batch: Dict[str, list]) -> list[bool] إذا كان batched=True و with_indices=False و with_rank=False
    • function(batch: Dict[str, list], *extra_args) -> list[bool] إذا كان batched=True و with_indices=True و/أو with_rank=True (حجة إضافية واحدة لكل منهما)

    إذا لم يتم توفير دالة، فإن القيمة الافتراضية هي دالة True دائمًا: lambda x: True.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx[, rank]): ....
  • with_rank (bool، القيمة الافتراضية False) — توفير ترتيب العملية إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـ function هو def function(example[, idx], rank): ....
  • input_columns ([Union[str, list[str]]]، اختياري، القيمة الافتراضية None) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True إذا كان batch_size <= 0 أو batch_size == None، فسيتم تقديم مجموعة البيانات الكاملة كدفعة واحدة إلى function.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • cache_file_names ([Dict[str, str]]، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين نتائج الحساب بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا. يجب عليك تقديم cache_file_name واحد لكل مجموعة بيانات في قاموس مجموعة البيانات.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.
  • fn_kwargs (Dict، اختياري، القيمة الافتراضية None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات المستخدمة للمعالجة المتعددة. إذا كانت القيمة None أو 0، فلن تُستخدم المعالجة المتعددة وسيتم تنفيذ العملية في العملية الرئيسية. إذا كانت القيمة أكبر من 1، فسيتم استخدام عملية عاملة واحدة أو عدة عمليات عاملة لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) لكي تعمل المعالجة المتعددة بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
    • إذا كانت None أو 0، فلا يُستخدم تعدد العمليات، وتُنفَّذ العملية في العملية الرئيسية.
    • إذا كان أكبر من 1، تُستخدم عملية عامل واحدة أو عدة عمليات عامل لمعالجة البيانات بالتوازي. ملاحظة: يجب أن تكون الدالة المُمرَّرة إلى map() قابلة للتسلسل (picklable) حتى يعمل تعدد العمليات بشكل صحيح (أي، يُفضَّل استخدام الدوال المُعرَّفة في المستوى الأعلى من الوحدة، وليس داخل دالة أو فئة أخرى).
  • desc (str، اختياري، القيمة الافتراضية None) — وصف ذو معنى يُعرض إلى جانب شريط التقدم أثناء تصفية الأمثلة.

تطبيق دالة تصفية على جميع العناصر في الجدول على دفعات وتحديث الجدول بحيث تتضمن مجموعة البيانات أمثلة فقط وفقاً لدالة التصفية. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.filter(lambda x: x["label"] == 1)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 4265
    })
    validation: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

المعاملات

  • column_names (Union[str, Sequence[str]]) — أسماء الأعمدة التي سيتم الفرز بناءً عليها.
  • reverse (Union[bool, Sequence[bool]]، القيمة الافتراضية False) — إذا كانت True، يتم الفرز حسب الترتيب التنازلي بدلاً من التصاعدي. إذا تم تقديم قيمة bool واحدة، تُطبَّق القيمة على فرز جميع أسماء الأعمدة. وإلا، يجب تقديم قائمة من قيم bool بنفس الطول والترتيب مثل column_names.
  • null_placement (str, defaults to at_end) — Put None values at the beginning if at_start or first or at the end if at_end or last
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالفهارس المرتبة في الذاكرة بدلاً من كتابتها في ملف كاش.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الفهارس المرتبة، فاستخدمه بدلاً من إعادة الحساب.
  • indices_cache_file_names ([Dict[str, str]]، اختياري، القيمة الافتراضية None) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين تعيين الفهارس بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا. يجب عليك تقديم cache_file_name واحد لكل مجموعة بيانات في قاموس مجموعة البيانات.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. القيمة الأعلى تنتج ملفات كاش أصغر، بينما القيمة الأقل تستهلك ذاكرة مؤقتة أقل.

أنشئ مجموعة بيانات جديدة مرتبة وفقاً لعمود واحد أو عدة أعمدة.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes')
>>> ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['train']['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seeds: typing.Union[int, dict[str, typing.Optional[int]], NoneType] = Noneseed: typing.Optional[int] = Nonegenerators: typing.Optional[dict[str, numpy.random._generator.Generator]] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

المعاملات

  • seeds (Dict[str, int] أو int، اختياري) — بذرة لتوليد BitGenerator الافتراضي إذا كان generator=None. إذا كان None، فسيتم سحب إنتروبيا جديدة وغير متوقعة من نظام التشغيل. إذا تم تمرير int أو array_like[ints]، فسيتم تمريرها إلى SeedSequence لاستنتاج حالة BitGenerator الأولية. يمكنك تقديم بذرة واحدة seed لكل مجموعة بيانات في قاموس مجموعة البيانات.
  • seed (int, اختياري) — بذرة لتوليد BitGenerator الافتراضي إذا كان generator=None. مرادف لـ seeds (يتم رفع ValueError إذا تم توفير كلاهما).
  • generators (Dict[str, *optional*, np.random.Generator]) — مولّد عشوائي من Numpy يُستخدم لحساب تبديل صفوف مجموعة البيانات. إذا كان generator=None (الافتراضي)، يُستخدم np.random.default_rng (مولّد البتات الافتراضي (PCG64) في NumPy). يجب عليك تقديم مولّد generator واحد لكل مجموعة بيانات في قاموس مجموعات البيانات.
  • keep_in_memory (bool، القيمة الافتراضية False) — احتفظ بالبيانات في الذاكرة بدلاً من كتابتها في ملف مؤقت.
  • load_from_cache_file (Optional[bool]، القيمة الافتراضية هي True إذا كان التخزين المؤقت مفعلاً) — إذا أمكن تحديد ملف تخزين مؤقت يحفظ الحساب الحالي لـfunction، فاستخدمه بدلاً من إعادة الحساب.
  • indices_cache_file_names (Dict[str, str], اختياري) — يُحدد اسم المسار لملف التخزين المؤقت. يُستخدم لتخزين خرائط الفهارس بدلاً من اسم ملف التخزين المؤقت المولّد تلقائيًا. يجب عليك تقديم cache_file_name واحد لكل مجموعة بيانات في قاموس مجموعة البيانات.
  • writer_batch_size (int، القيمة الافتراضية 1000) — عدد الصفوف في عملية الكتابة الواحدة لكاتب ملف الكاش. تُعد هذه القيمة توازنًا جيدًا بين استهلاك الذاكرة أثناء المعالجة وسرعة المعالجة. تؤدي القيمة الأعلى إلى تقليل عمليات البحث أثناء المعالجة، بينما تستهلك القيمة الأقل ذاكرة مؤقتة أقل أثناء تشغيل map.

أنشئ مجموعة بيانات جديدة حيث تكون الصفوف مُخلوطة.

تُطبَّق عملية التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

يستخدم التجميع العشوائي حاليًا مولّدات الأرقام العشوائية من numpy. يمكنك إما تقديم مولّد بتات NumPy BitGenerator لاستخدامه، أو تقديم بذرة (seed) لبدء مولّد الأرقام العشوائية الافتراضي في NumPy (PCG64).

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"]["label"][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds["train"]["label"][:10]
[0, 1, 0, 1, 0, 0, 0, 0, 0, 0]

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن __getitem__ يعيد كائنات بايثون (الافتراضي).
  • columns (list[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون)،
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

حدد __getitem__ صيغة الإرجاع (النوع والأعمدة). تُضبط الصيغة لكل مجموعة بيانات في قاموس مجموعات البيانات.

من الممكن استدعاء map بعد استدعاء set_format. بما أن map قد يضيف أعمدة جديدة، فإن قائمة الأعمدة المُنسَّقة يتم تحديثها. في هذه الحالة، إذا طبّقت map على مجموعة بيانات لإضافة عمود جديد، فسيتم تنسيق هذا العمود:

new formatted columns = (all columns - previously unformatted columns)

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}

إعادة تعيين التنسيق

< >

( )

إعادة تعيين صيغة إرجاع __getitem__ إلى كائنات بايثون وجميع الأعمدة. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

نفس self.set_format()

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن __getitem__ يعيد كائنات بايثون (الافتراضي).
  • columns (list[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون).
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

يُستخدم في عبارة with. اضبط صيغة إرجاع __getitem__ (النوع والأعمدة). تُطبَّق التحويلة على جميع مجموعات البيانات في قاموس مجموعة البيانات.

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

المعاملات

  • type (str، اختياري) — نوع المخرجات المختار من بين [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. يعني None أن __getitem__ يعيد كائنات بايثون (الافتراضي).
  • columns (list[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. None تعني أن __getitem__ يعيد جميع الأعمدة (الافتراضي).
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات بايثون).
  • **format_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى دالة التحويل مثل np.array أو torch.tensor أو tensorflow.ragged.constant.

حدد صيغة إرجاع __getitem__ (النوع والأعمدة). يتم تطبيق تنسيق البيانات على الفور. تُستخدم صيغة type (مثل “numpy”) لتنسيق الدفعات عند استخدام __getitem__. يتم ضبط الصيغة لكل مجموعة بيانات في قاموس مجموعات البيانات.

من الممكن أيضًا استخدام تحويلات مخصصة للتنسيق باستخدام with_transform().

على عكس set_format()، تُعيد with_format كائن DatasetDict جديدًا يحتوي على كائنات Dataset جديدة.

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds["train"][0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

المعاملات

  • transform (Callable, اختياري) — تحويل تنسيق مُعرَّف من قِبل المستخدم، يستبدل التنسيق المُعرَّف بواسطة set_format(). دالة التنسيق هي دالة قابلة للاستدعاء تستقبل دفعة (كقاموس) كمدخل وتعيد دفعة. تُطبَّق هذه الدالة مباشرة قبل إرجاع الكائنات في __getitem__.
  • columns (list[str]، اختياري) — الأعمدة التي سيتم تنسيقها في المخرجات. إذا تم تحديدها، فإن دفعة الإدخال الخاصة بالتحويل تحتوي فقط على تلك الأعمدة.
  • output_all_columns (bool، القيمة الافتراضية False) — احتفظ بالأعمدة غير المنسّقة أيضًا في المخرجات (ككائنات python). إذا تم ضبطها على True، فسيتم الاحتفاظ بالأعمدة غير المنسّقة الأخرى مع مخرجات التحويل.

حدد صيغة إرجاع __getitem__ باستخدام هذا التحويل. يُطبَّق التحويل على دفعات البيانات في الوقت الفعلي عند استدعاء __getitem__. يتم تعيين التحويل لكل مجموعة بيانات في قاموس مجموعات البيانات

كما هو الحال مع set_format()، يمكن إعادة تعيين هذا باستخدام reset_format().

على عكس set_transform()، تُعيد with_transform كائن DatasetDict جديدًا يحتوي على كائنات Dataset جديدة.

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example['text'], truncation=True, padding=True, return_tensors="pt")
>>> ds = ds.with_transform(encode)
>>> ds["train"][0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101,  1103,  2067,  1110, 17348,  1106,  1129,  1103,  6880,  1432,
        112,   188,  1207,   107, 14255,  1389,   107,  1105,  1115,  1119,
        112,   188,  1280,  1106,  1294,   170, 24194,  1256,  3407,  1190,
        170, 11791,  5253,   188,  1732,  7200, 10947, 12606,  2895,   117,
        179,  7766,   118,   172, 15554,  1181,  3498,  6961,  3263,  1137,
        188,  1566,  7912, 14516,  6997,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0])}

تسطيح

< >

( max_depth = 16 )

تسطيح جدول Apache Arrow الخاص بكل تقسيم (تتم تسطيح الميزات المتداخلة). يتم تسطيح كل عمود بنوع struct إلى عمود واحد لكل حقل من حقول الـ struct. تُترك الأعمدة الأخرى دون تغيير.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad")
>>> ds["train"].features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers.text': List(Value('string')),
 'answers.answer_start': List(Value('int32'))}
>>> ds.flatten()
DatasetDict({
    train: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 87599
    })
    validation: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 10570
    })
})

cast

< >

( features: Features )

المعاملات

  • features (Features) — ميزات جديدة لتحويل مجموعة البيانات إليها. يجب أن يتطابق اسم الحقول وترتيبها في الميزات مع أسماء الأعمدة الحالية. كما يجب أن يكون نوع البيانات قابلاً للتحويل من نوع إلى آخر. للتحويل غير البسيط، مثل string <-> ClassLabel، يجب عليك استخدام map() لتحديث مجموعة البيانات.

قم بتحويل مجموعة البيانات إلى مجموعة ميزات جديدة. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature )

المعاملات

  • column (str) — اسم العمود.
  • feature (Feature) — الميزة المستهدفة.

قم بتحويل العمود إلى ميزة للتحليل.

مثال:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → DatasetDict

المعاملات

  • column_names (Union[str, list[str]]) — اسم العمود أو الأعمدة المراد حذفها.

يعيد

DatasetDict

نسخة من كائن مجموعة البيانات دون الأعمدة المراد إزالتها.

إزالة عمود واحد أو عدة أعمدة من كل تقسيم في مجموعة البيانات والسمات المرتبطة بالعمود أو الأعمدة.

تُطبَّق عملية التحويل على جميع تقسيمات قاموس مجموعة البيانات.

يمكنك أيضًا إزالة عمود باستخدام map() مع remove_columns لكن الطريقة الحالية لا تنسخ بيانات الأعمدة المتبقية وبالتالي فهي أسرع.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.remove_columns("label")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

rename_column

< >

( original_column_name: strnew_column_name: str )

المعاملات

  • original_column_name (str) — اسم العمود الذي سيتم تغيير اسمه.
  • new_column_name (str) — الاسم الجديد للعمود.

إعادة تسمية عمود في مجموعة البيانات ونقل الميزات المرتبطة بالعمود الأصلي إلى اسم العمود الجديد. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

يمكنك أيضًا إعادة تسمية عمود باستخدام map() مع remove_columns لكن الطريقة الحالية:

  • يتولى نقل الميزات الأصلية تحت اسم العمود الجديد.
  • لا ينسخ البيانات إلى مجموعة بيانات جديدة، وبالتالي يكون أسرع بكثير.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.rename_column("label", "label_new")
DatasetDict({
    train: Dataset({
        features: ['text', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
})

rename_columns

< >

( column_mapping: dict ) → DatasetDict

المعاملات

  • column_mapping (Dict[str, str]) — خريطة للأعمدة لإعادة تسميتها بأسمائها الجديدة.

يعيد

DatasetDict

نسخة من مجموعة البيانات مع إعادة تسمية الأعمدة.

أعد تسمية عدة أعمدة في مجموعة البيانات، وانقل الميزات المرتبطة بالأعمدة الأصلية إلى الأسماء الجديدة للأعمدة. يتم تطبيق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
DatasetDict({
    train: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
})

select_columns

< >

( column_names: typing.Union[str, list[str]] )

المعاملات

  • column_names (Union[str, list[str]]) — اسم العمود أو الأعمدة التي يجب الاحتفاظ بها.

اختر عمودًا واحدًا أو عدة أعمدة من كل تقسيم في مجموعة البيانات والميزات المرتبطة بالعمود أو الأعمدة.

تُطبَّق عملية التحويل على جميع تقسيمات قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.select_columns("text")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

المعاملات

  • column (str) — اسم العمود الذي سيتم تحويله.
  • include_nulls (bool, القيمة الافتراضية هي False) — ما إذا كان يجب تضمين القيم الفارغة في تسميات الفئات. إذا كانت True, سيتم ترميز القيم الفارغة على أنها "None" تسمية فئة.

    أُضيف في 1.14.2

يُحوّل العمود المُعطى إلى ClassLabel ويحدّث الجداول.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq")
>>> ds["train"].features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column("answer")
>>> ds["train"].features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

المعاملات

  • repo_id (str) — معرّف المستودع الذي تريد الدفع إليه، بالصيغة التالية: <user>/<dataset_name> أو <org>/<dataset_name>. كما يقبل <dataset_name>, والذي سيُستخدم افتراضيًا نطاق المستخدم المسجّل.

    كما يمكن أن يكون موقعًا داخل دلو، على سبيل المثال buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — اسم إعداد مجموعة البيانات. القيمة الافتراضية هي “default”.
  • set_default (bool، اختياري) — ما إذا كان يجب تعيين هذا الإعداد كإعداد افتراضي. وإلا، فإن الإعداد الافتراضي هو ذلك المسمى بـ “default”.
  • data_dir (str, اختياري) — اسم المجلد الذي سيحتوي على ملفات البيانات المرفوعة. القيمة الافتراضية هي config_name إذا كانت مختلفة عن "default"، وإلا فهي "data".

    أُضيف في 2.17.0

  • commit_message (str، اختياري) — الرسالة التي سيتم الالتزام بها أثناء الدفع. ستكون الافتراضية "Upload dataset".
  • commit_description (str, اختياري) — وصف للالتزام الذي سيتم إنشاؤه. بالإضافة إلى ذلك، وصف لطلب الانضمام إذا تم إنشاؤه (create_pr هو True).

    أُضيف في 2.16.0

  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (str, اختياري) — رمز مصادقة اختياري لـ Hugging Face Hub. إذا لم يتم تمرير رمز، فسيتم افتراضياً استخدام الرمز المحفوظ محلياً عند تسجيل الدخول باستخدام hf auth login. سيُطلق خطأً إذا لم يتم تمرير رمز وكان المستخدم غير مسجّل الدخول.
  • revision (str, اختياري) — الفرع الذي سيتم دفع الملفات المرفوعة إليه. الافتراضي هو الفرع "main" .

    أُضيف في 2.15.0

  • create_pr (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب إنشاء طلب سحب (PR) بالملفات المرفوعة أو الالتزام مباشرة.

    أُضيف في 2.15.0

  • max_shard_size (int أو str، اختياري، القيمة الافتراضية "500MB") — الحد الأقصى لحجم أجزاء مجموعة البيانات التي سيتم رفعها إلى hub. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "500MB" أو "1GB").
  • num_shards (Dict[str, int], اختياري) — عدد الأجزاء التي سيتم كتابتها. بشكل افتراضي، يعتمد عدد الأجزاء على max_shard_size. استخدم قاموسًا لتعريف عدد أجزاء مختلف لكل تقسيم.

    أُضيف في 2.8.0

  • embed_external_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بايتات الملفات في الشرائح. على وجه التحديد، سيقوم بذلك قبل الدفع للحقول من النوع:
    • يزيل Audio و Image معلومات المسار المحلي ويدمج محتوى الملفات في ملفات Parquet.
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات عند تجهيز مجموعة البيانات ورفعها. يُفيد هذا الأمر إذا كانت مجموعة البيانات تتكون من العديد من العينات أو ملفات الوسائط المضمنة. يستخدم سياق "spawn" للعمل مع hf_xet، وهو عميل rust للرفع السريع إلى HF. تُعطَّل المعالجة متعددة العمليات افتراضيًا.

    أُضيف في 4.0.0

يدفع DatasetDict إلى المستودع كمجموعة بيانات Parquet. يتم دفع DatasetDict باستخدام طلبات HTTP ولا يتطلب تثبيت git أو git-lfs.

سيتم دفع كل تقسيم من تقسيمات مجموعة البيانات بشكل مستقل. وستحتفظ مجموعة البيانات المُدَفوعة بأسماء التقسيمات الأصلية.

ملفات Parquet الناتجة مكتفية ذاتياً افتراضياً: إذا احتوى مجموعة البيانات الخاصة بك على بيانات Image أو Audio، فستخزن ملفات Parquet البايتات الخاصة بصورك أو ملفات الصوت. يمكنك تعطيل ذلك عن طريق تعيين embed_external_files إلى False.

مثال:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

إذا كنت ترغب في إضافة تكوين جديد (أو مجموعة فرعية) إلى مجموعة بيانات (على سبيل المثال، إذا كانت مجموعة البيانات تحتوي على مهام/إصدارات/لغات متعددة):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

المعاملات

  • dataset_dict_path (path-like) — المسار (مثل dataset/train) أو معرّف URI عن بُعد (مثل s3://my-bucket/dataset/train) لمجلد قاموس البيانات الذي سيُحفظ فيه قاموس البيانات.
  • max_shard_size (int أو str، اختياري، القيمة الافتراضية "500MB") — الحد الأقصى لحجم أجزاء مجموعة البيانات التي سيتم حفظها على نظام الملفات. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "50MB").
  • num_shards (Dict[str, int], اختياري) — عدد الشرائح التي سيتم كتابتها. بشكل افتراضي، يعتمد عدد الشرائح على max_shard_size و num_proc. يجب عليك تحديد عدد الشرائح لكل مجموعة بيانات في قاموس مجموعات البيانات. استخدم قاموسًا لتعريف عدد شرائح مختلف لكل تقسيم.

    أُضيف في 2.8.0

  • num_proc (int, اختياري, الافتراضي None) — عدد العمليات عند تنزيل مجموعة البيانات وتوليدها محليًا. تُعطَّل المعالجة متعددة العمليات افتراضيًا.

    أُضيف في 2.8.0

  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.8.0

يحفظ قاموس مجموعة بيانات على نظام الملفات باستخدام fsspec.spec.AbstractFileSystem.

لبيانات Image وAudio وVideo:

تُخزَّن جميع بيانات Image() وAudio() وVideo() في ملفات arrow. إذا كنت ترغب في تخزين المسارات أو الروابط، فالرجاء استخدام النوع Value(“string”).

مثال:

>>> dataset_dict.save_to_disk("path/to/dataset/directory")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", num_shards={"train": 1024, "test": 8})

load_from_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None )

المعاملات

  • dataset_dict_path (path-like) — المسار (مثل "dataset/train") أو معرّف URI عن بُعد (مثل "s3//my-bucket/dataset/train") لمجلد قاموس البيانات الذي سيتم تحميل قاموس البيانات منه.
  • keep_in_memory (bool، القيمة الافتراضية None) — ما إذا كان سيتم نسخ مجموعة البيانات في الذاكرة. إذا كانت None، فلن يتم نسخ مجموعة البيانات في الذاكرة ما لم يتم تفعيل ذلك صراحةً عن طريق تعيين datasets.config.IN_MEMORY_MAX_SIZE إلى قيمة غير صفرية. راجع المزيد من التفاصيل في قسم تحسين الأداء.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.8.0

حمّل مجموعة بيانات تم حفظها سابقًا باستخدام save_to_disk من نظام ملفات باستخدام fsspec.spec.AbstractFileSystem.

مثال:

>>> ds = load_from_disk('path/to/dataset/directory')

from_csv

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

المعاملات

  • path_or_paths (dict من مسارات) — مسار أو مسارات ملفات CSV.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى pandas.read_csv.

إنشاء DatasetDict من ملف CSV أو أكثر.

مثال:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_csv({'train': 'path/to/dataset.csv'})

from_json

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات JSON Lines.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى JsonConfig.

إنشاء DatasetDict من ملف أو ملفات JSON Lines.

مثال:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_json({'train': 'path/to/dataset.json'})

from_parquet

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = None**kwargs )

المعاملات

  • path_or_paths (dict من مسارات) — مسار أو مسارات ملفات CSV.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • columns (list[str]، اختياري) — إذا لم يكن None، فسيتم قراءة هذه الأعمدة فقط من الملف. قد يكون اسم العمدة بادئة لحقل متداخل، على سبيل المثال، ‘a’ سيحدد ‘a.b’ و ‘a.c’ و ‘a.d.e’.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى ParquetConfig.

إنشاء DatasetDict من ملف Parquet أو أكثر.

مثال:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_parquet({'train': 'path/to/dataset/parquet'})

from_text

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

المعاملات

  • path_or_paths (dict من مسارات) — مسار أو مسارات ملف النص.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • cache_dir (str، اختياري، الافتراضي "~/.cache/huggingface/datasets") — المجلد الذي يُخزَّن فيه البيانات مؤقتًا.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى TextConfig.

إنشاء DatasetDict من ملف نصي أو أكثر.

مثال:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_text({'train': 'path/to/dataset.txt'})

IterableDataset

تُنفّذ الفئة الأساسية IterableDataset مجموعة بيانات قابلة للتكرار مدعومة بمولّدات بايثون.

فئة datasets.IterableDataset

< >

( ex_iterable: _BaseExamplesIterableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneformatting: typing.Optional[datasets.iterable_dataset.FormattingConfig] = Nonedistributed: typing.Optional[datasets.iterable_dataset.DistributedConfig] = Nonetoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

مجموعة بيانات مدعومة بقابل للتكرار.

from_file

< >

( filename: str )

المعاملات

  • filename (str) — اسم ملف مجموعة البيانات.

أنشئ كائن IterableDataset من جدول Arrow في الملف المحدد باسمه.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = Nonenum_shards: typing.Optional[int] = 1 )

المعاملات

  • df (pandas.DataFrame) — إطار بيانات يحتوي على مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • preserve_index (bool، اختياري) — ما إذا كان سيتم تخزين الفهرس كعمود إضافي في مجموعة البيانات الناتجة. القيمة الافتراضية None ستخزّن الفهرس كعمود، باستثناء RangeIndex الذي يُخزَّن كبيانات وصفية فقط. استخدم preserve_index=True لإجباره على التخزين كعمود.
  • num_shards (int، القيمة الافتراضية 1) — عدد الأجزاء (shards) التي يجب تحديدها عند إنشاء مجموعة البيانات القابلة للتكرار. هذا مفيد بشكل خاص للمجموعات الكبيرة من البيانات لتمكين الخلط بشكل صحيح، كما أنه يتيح التحميل المتوازي السريع باستخدام PyTorch DataLoader أو في الإعدادات الموزعة على سبيل المثال.

قم بتحويل pandas.DataFrame إلى pyarrow.Table لإنشاء IterableDataset.

تُستنتج أنواع الأعمدة في جدول Arrow الناتج من أنواع البيانات (dtypes) الخاصة بـ pandas.Series داخل DataFrame. في حالة السلاسل غير الكائنية (non-object Series)، يُترجم نوع NumPy إلى ما يعادله في Arrow. أما في حالة object، فيجب تخمين نوع البيانات من خلال فحص الكائنات Python الموجودة في هذا السلسلة.

انتبه إلى أن سلسلة من نوع object لا تحمل معلومات كافية دائمًا للتوصل إلى نوع Arrow ذي معنى. في حال تعذّر استنتاج النوع، على سبيل المثال لأن إطار البيانات طوله 0 أو لأن السلسلة تحتوي فقط على كائنات None/nan، يتم تعيين النوع إلى null. يمكن تجنّب هذا السلوك من خلال بناء ميزات صريحة وتوريدها إلى هذه الدالة.

Important: a dataset created with from_pandas() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it on disk and reload using e.g. to_parquet / from_parquet.

مثال:

>>> ds = IterableDataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

المعاملات

  • mapping (Mapping) — تعيين السلاسل النصية إلى مصفوفات أو قوائم بايثون.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • num_shards (int، القيمة الافتراضية 1) — عدد الأجزاء (shards) التي يجب تحديدها عند إنشاء مجموعة البيانات القابلة للتكرار. هذا مفيد بشكل خاص للمجموعات الكبيرة من البيانات لتمكين الخلط بشكل صحيح، كما أنه يتيح التحميل المتوازي السريع باستخدام PyTorch DataLoader أو في الإعدادات الموزعة على سبيل المثال.

تحويل dict إلى pyarrow.Table لإنشاء IterableDataset.

Important: a dataset created with from_dict() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. to_parquet / from_parquet.

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

المعاملات

  • mapping (List[dict]) — قائمة من خرائط تُحوّل السلاسل النصية إلى قيم الصفوف.
  • features (Features، اختياري) — ميزات مجموعة البيانات.
  • info (DatasetInfo، اختياري) — معلومات عن مجموعة البيانات، مثل الوصف والاستشهاد وما إلى ذلك.
  • split (NamedSplit, اختياري) — اسم تقسيم مجموعة البيانات.
  • num_shards (int، القيمة الافتراضية 1) — عدد الأجزاء (shards) التي يجب تحديدها عند إنشاء مجموعة البيانات القابلة للتكرار. هذا مفيد بشكل خاص للمجموعات الكبيرة من البيانات لتمكين الخلط بشكل صحيح، كما أنه يتيح التحميل المتوازي السريع باستخدام PyTorch DataLoader أو في الإعدادات الموزعة على سبيل المثال.

تحويل قائمة من القواميس إلى pyarrow.Table لإنشاء IterableDataset`.

لاحظ أن مفاتيح الإدخال الأول ستُستخدم لتحديد أعمدة مجموعة البيانات، بغض النظر عما يُمرر إلى features.

Important: a dataset created with from_list() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. from_parquet / to_parquet.

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonegen_kwargs: typing.Optional[dict] = Nonesplit: NamedSplit = NamedSplit('train') )

المعاملات

  • generator (Callable) — دالة مولِّدة yields أمثلة.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • gen_kwargs(dict, اختياري) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى الدالة القابلة للاستدعاء generator. يمكنك تحديد مجموعة بيانات قابلة للتكرار مقسمة إلى أجزاء عن طريق تمرير قائمة الأجزاء في gen_kwargs. يمكن استخدام ذلك لتحسين الخلط وعند التكرار على مجموعة البيانات باستخدام عدة عمّال.
  • split (NamedSplit, الافتراضي هو Split.TRAIN) — اسم الجزء الذي سيُسند إلى مجموعة البيانات.

    أُضيف في 2.21.0

إنشاء مجموعة بيانات قابلة للتكرار من مولّد.

مثال:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = IterableDataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = IterableDataset.from_generator(gen, gen_kwargs={"shards": shards})
>>> ds = ds.shuffle(seed=42, buffer_size=10_000)  # shuffles the shards order + uses a shuffle buffer
>>> from torch.utils.data import DataLoader
>>> dataloader = DataLoader(ds.with_format("torch"), num_workers=4)  # give each worker a subset of 32/4=8 shards

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

المعاملات

  • column_names (Union[str, List[str]]) — اسم العمود أو الأعمدة المراد حذفها.

يعيد

IterableDataset

نسخة من كائن مجموعة البيانات دون الأعمدة المراد إزالتها.

احذف عمودًا واحدًا أو عدة أعمدة من مجموعة البيانات والميزات المرتبطة بها. يتم إجراء الإزالة على الفور على الأمثلة عند التكرار على مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.remove_columns("label")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

المعاملات

  • column_names (Union[str, List[str]]) — اسم العمود أو الأعمدة المراد اختيارها.

يعيد

IterableDataset

نسخة من كائن مجموعة البيانات مع الأعمدة المحددة.

اختر عمودًا واحدًا أو عدة أعمدة في مجموعة البيانات والميزات المرتبطة بها. يتم تنفيذ الاختيار على الفور على الأمثلة أثناء التكرار على مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.select_columns("text")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] ) → IterableDataset

المعاملات

  • column (str) — اسم العمود.
  • feature (Feature) — الميزة المستهدفة.

يعيد

IterableDataset

قم بتحويل العمود إلى ميزة للتحليل.

مثال:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train", streaming=True)
>>> ds.features
{'audio': Audio(sampling_rate=8000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}
>>> ds = ds.cast_column("audio", Audio(sampling_rate=16000))
>>> ds.features
{'audio': Audio(sampling_rate=16000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}

cast

< >

( features: Features ) → IterableDataset

المعاملات

  • features (Features) — ميزات جديدة لتحويل مجموعة البيانات إليها. يجب أن تتطابق أسماء الحقول في الميزات مع أسماء الأعمدة الحالية. كما يجب أن يكون نوع البيانات قابلاً للتحويل من نوع إلى آخر. للتحويل غير البسيط، مثل string <-> ClassLabel، يجب عليك استخدام map() لتحديث مجموعة البيانات.

يعيد

IterableDataset

نسخة من مجموعة البيانات مع الميزات المُحوَّلة.

قم بتحويل مجموعة البيانات إلى مجموعة جديدة من الميزات.

مثال:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features["label"] = ClassLabel(names=["bad", "good"])
>>> new_features["text"] = Value("large_string")
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

decode

< >

( enable: bool = Truenum_threads: typing.Optional[int] = None ) → IterableDataset

المعاملات

  • enable (bool، القيمة الافتراضية True) — تفعيل أو تعطيل فك ترميز الميزات.
  • num_threads (int, اختياري، القيمة الافتراضية None) — تفعيل تعدد الخيوط (Multithreading) لفك ترميز الميزات. لاحظ أن load_dataset() يستخدم بالفعل بعض الخيوط افتراضيًا عند بث مجموعة بيانات من HF تتضمن ميزات قابلة للفك. افتراضيًا، يتم تعيين num_threads إلى 32 إذا كانت هناك ميزة واحدة على الأقل تتطلب فك الترميز، وإلا فتم تعيينه إلى 0.

يعيد

IterableDataset

نسخة من مجموعة البيانات مع الميزات المُحوَّلة.

تفعيل أو تعطيل فك ترميز ميزات مجموعة البيانات للصوت والصورة والفيديو.

عند التفعيل (الافتراضي)، يتم فك ترميز أنواع الوسائط:

  • audio -> قاموس يحتوي على “array” و “sampling_rate” و “path”
  • image -> PIL.Image
  • video -> torchcodec.decoders.VideoDecoder

يمكن تفعيل تعدد الخيوط باستخدام num_threads: حيث يُقرأ كل ملف وسائط ويُفكّ تشفيره في خيط عامل، مما يتيح تداخل رحلات الشبكة ذهابًا وإيابًا بين الأمثلة المتتالية. وهذا مفيد بشكل خاص لتسريع بث البيانات عن بُعد، وقد فعّلت load_dataset() هذه الميزة افتراضيًا عند بث مجموعة بيانات عن بُعد تحتوي على سمات قابلة لفك التشفير (انظر HF_DATASETS_DECODE_NUM_THREADS). أما مجموعات البيانات المقروءة من القرص المحلي فتُبث باستخدام num_threads=0، لأن تعدد الخيوط قد يكون أبطأ من فك التشفير في الخيط الرئيسي للبيانات المحلية على الأقراص السريعة. وبما أن الأمثلة تُفكّ تشفيرها مسبقًا، يمكن لكل خيط نشط الاحتفاظ بمثال واحد في الذاكرة: قلّل قيمة num_threads لتقليل استهلاك الذاكرة.

يكون تعطيل فك الترميز مفيداً إذا كنت ترغب في التكرار على مسارات ملفات الوسائط أو بايتاتها دون فك ترميز محتواها فعلياً. ولتعطيل فك الترميز يمكنك استخدام .decode(False)، وهو ما يعادل استدعاء .cast() أو .cast_column() مع ضبط جميع أنواع Audio و Image و Video على decode=False.

أمثلة:

تعطيل فك الترميز:

>>> from datasets import load_dataset
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> next(iter(ds))
{'image': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=2048x1024>,
'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'}
>>> ds = ds.decode(False)
>>> ds.features
{'image': Image(mode=None, decode=False, id=None),
'text': Value('string')}
>>> next(iter(ds))
{
  'image': {
    'path': 'hf://datasets/sshh12/planet-textures@69dc4cef7a5c4b2cfe387727ec8ea73d4bff7302/train/textures/0000.png',
    'bytes': None
  },
  'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'
}

تسريع البث باستخدام الخيوط المتعددة:

>>> import os
>>> from datasets import load_dataset
>>> from tqdm import tqdm
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> # already threaded by default with 32 threads, but more threads can help going even faster
>>> ds = ds.decode(num_threads=64)
>>> for _ in tqdm(ds):  # 2 times faster !
...     ...

__iter__

< >

( )

iter

< >

( batch_size: intdrop_last_batch: bool = False )

المعاملات

  • batch_size (int) — حجم كل دفعة تُقدَّم.
  • drop_last_batch (bool، الافتراضي False) — ما إذا كان يجب حذف الدفعة الأخيرة إذا كانت أصغر من batch_size

تكرار عبر الدفعات ذات الحجم batch_size.

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonefn_kwargs: typing.Optional[dict] = None )

المعاملات

  • function (Callable, اختياري, القيمة الافتراضية هي None) — دالة تُطبَّق على الفور على الأمثلة عند تكرار مجموعة البيانات. يجب أن يكون لها أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> Dict[str, Any] إذا كان batched=False وwith_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] إذا كان batched=False وwith_indices=True
    • function(batch: Dict[str, List]) -> Dict[str, List] إذا كان batched=True و with_indices=False
    • function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List] إذا كان batched=True و with_indices=True

    للاستخدام المتقدم، يمكن للدالة أيضاً أن تُرجع pyarrow.Table. إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي. علاوة على ذلك، إذا كانت دالتك لا تُرجع شيئاً (None)، فإن map ستنفّذ دالتك وتُرجع مجموعة البيانات دون تغيير. إذا لم تُوفَّر دالة، فسيتم افتراض دالة الهوية: lambda x: x.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx[, rank]): ....
  • input_columns (Optional[Union[str, List[str]]]، القيمة الافتراضية None) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True. إذا كان batch_size <= 0 أو batch_size == None، فسيتم تقديم مجموعة البيانات الكاملة كدفعة واحدة إلى function.
  • drop_last_batch (bool، القيمة الافتراضية False) — ما إذا كان يجب تجاهل الدفعة الأخيرة الأصغر من batch_size بدلاً من معالجتها بواسطة الدالة.
  • remove_columns ([List[str]]، اختياري، القيمة الافتراضية None) — إزالة مجموعة من الأعمدة أثناء تنفيذ عملية الخرائط (mapping). سيتم حذف الأعمدة قبل تحديث الأمثلة بمخرجات function، أي إذا كان function يضيف أعمدة بأسماء موجودة في remove_columns، فسيتم الاحتفاظ بهذه الأعمدة.
  • features ([Features]، اختياري، القيمة الافتراضية None) — أنواع الميزات في مجموعة البيانات الناتجة.
  • fn_kwargs (Dict، اختياري، الافتراضي None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function.

تطبيق دالة على جميع الأمثلة في مجموعة البيانات القابلة للتكرار (فردية أو على شكل دفعات) وتحديثها. إذا كانت دالتك تعيد عمودًا موجودًا مسبقًا، فإنها تستبدل محتواه. تُطبَّق الدالة على الأمثلة أثناء التكرار على مجموعة البيانات بشكل فوري.

يمكنك تحديد ما إذا كان ينبغي تجميع الدالة أم لا باستخدام معامل batched:

  • إذا كانت False، فإن الدالة تستقبل مثالًا واحدًا ويجب أن تُرجع مثالًا واحدًا. المثال هو قاموس، مثل {"text": "Hello there !"}.
  • إذا كان True وbatch_size يساوي 1، فإن الدالة تستقبل دفعة تحتوي على مثال واحد كمدخلات، ويمكنها إرجاع دفعة تحتوي على مثال واحد أو أكثر. الدفعة هي قاموس، على سبيل المثال، دفعة تحتوي على مثال واحد هي {“text”: [“Hello there !”]}.
  • إذا كانت True وbatch_size تساوي n > 1، فإن الدالة تستقبل دفعة من n أمثلة كمدخلات، ويمكن أن تعيد دفعة تحتوي على n أمثلة، أو على عدد عشوائي من الأمثلة. لاحظ أن الدفعة الأخيرة قد تحتوي على عدد أقل من n أمثلة. الدفعة هي قاموس، على سبيل المثال، دفعة من n أمثلة هي {"text": ["Hello there !"] * n}.

إذا كانت الدالة غير متزامنة، فسيُنفّذ map دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن. يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'Review: effective but too-tepid biopic'}]

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDataset

المعاملات

  • original_column_name (str) — اسم العمود الذي سيتم تغيير اسمه.
  • new_column_name (str) — الاسم الجديد للعمود.

يعيد

IterableDataset

نسخة من مجموعة البيانات مع إعادة تسمية للعمود.

إعادة تسمية عمود في مجموعة البيانات، ونقل الميزات المرتبطة بالعمود الأصلي إلى تحت اسم العمود الجديد.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

فلتر

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

المعاملات

  • function (Callable) — دالة قابلة للاستدعاء (Callable) تحمل أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> bool إذا كان with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool إذا كان with_indices=True, batched=False
    • function(example: Dict[str, List]) -> List[bool] إذا كان with_indices=False, batched=True
    • function(example: Dict[str, List], indices: List[int]) -> List[bool] إذا كان with_indices=True, batched=True

    إذا كانت الدالة غير متزامنة، فسيُنفّذ filter دالتك بالتوازي. إذا لم تُوفَّر دالة، فسيتم افتراض دالة تُرجع دائمًا قيمة صحيحة: lambda x: True.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx): ....
  • input_columns (str أو List[str]، اختياري) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، الافتراضي 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True.
  • fn_kwargs (Dict، اختياري، الافتراضي None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function.

طبّق دالة تصفية على جميع العناصر بحيث تتضمن مجموعة البيانات أمثلةً فقط وفقًا لدالة التصفية. يتم إجراء التصفية على الفور أثناء التكرار على مجموعة البيانات.

إذا كانت الدالة غير متزامنة، فسيُنفّذ filter دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن (قابل للضبط). يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds.take(3))
[{'label': 0, 'movie_review': 'simplistic , silly and tedious .'},
 {'label': 0,
 'movie_review': "it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'movie_review': 'exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

المعاملات

  • seed (int، اختياري، القيمة الافتراضية None) — بذرة عشوائية تُستخدم لخلط مجموعة البيانات. تُستخدم لأخذ عينات من مخزن الخلط (shuffle buffer) وكذلك لخلط شرائح البيانات (data shards).
  • generator (numpy.random.Generator، اختياري) — مولّد عشوائي من Numpy يُستخدم لحساب تبديل صفوف مجموعة البيانات. إذا كان generator=None (الافتراضي)، يُستخدم np.random.default_rng (مولّد البتات الافتراضي (PCG64) في NumPy).
  • buffer_size (int، القيمة الافتراضية 1000) — حجم المخزن المؤقت.
  • max_buffer_input_shards (int، القيمة الافتراضية 10) — الحد الأقصى لعدد الشرائح المستخدمة في تغذية المخزن المؤقت في كل مرة.

يقوم بتبديل عناصر مجموعة البيانات هذه عشوائيًا.

تملأ هذه المجموعة بيانات مخزن مؤقتًا يحتوي على buffer_size عنصرًا، ثم تعيّن عناصر عشوائيًا من هذا المخزن المؤقت، مع استبدال العناصر المحددة بعناصر جديدة. وللخلط المثالي، يجب أن يكون حجم المخزن المؤقت أكبر من حجم المجموعة الكاملة أو مساويًا له.

على سبيل المثال، إذا كانت مجموعة البيانات الخاصة بك تحتوي على 10,000 عنصرًا لكن buffer_size مضبوط على 1000، فإن shuffle سيختار في البداية عنصرًا عشوائيًا من أول 1000 عنصر فقط في المخزن المؤقت. بمجرد اختيار عنصر، يتم استبدال مكانه في المخزن المؤقت بالعنصر التالي (أي العنصر رقم 1,001)، مع الحفاظ على مخزن مؤقت يتكون من 1000 عنصر.

إذا كان مجموعة البيانات مكوّنة من عدة شظايا، فإنها تملأ المخزن المؤقت باستخدام ما يصل إلى max_buffer_input_shards شظايا في كل مرة، كما أنها تخلط ترتيب الشظايا. وهذا يحسّن جودة الخلط بشكل كبير. تُدمج الشظايا المدخلة بالتناوب داخل كل عقدة وعامل، مع الحفاظ على عدد الشظايا المتاحة لتحميل البيانات بالتوازي.

ومع ذلك، إذا تم تثبيت الترتيب باستخدام skip() أو take()، فإن ترتيب الشرائح يبقى دون تغيير، ولا يُستخدم شريحة واحدة في كل مرة لملء المخزن المؤقت.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'label': 1},
 {'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'label': 1},
 {'text': 'effective but too-tepid biopic', 'label': 1}]
>>> shuffled_ds = ds.shuffle(seed=42)
>>> list(shuffled_ds.take(3))
[{'text': "a sports movie with action that's exciting on the field and a story you care about off it .",
 'label': 1},
 {'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .',
 'label': 1},
 {'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune .",
 'label': 1}]
>>> resharded_ds = ds.reshard()  # useful to shard Parquet datasets by row group instead of by file, improving shuffling quality on dataset with one or few files.
>>> shuffled_resharded_ds = resharded_ds.shuffle(seed=42)
>>> list(shuffled_resharded_ds.take(3))
[{'text': 'this mistaken-identity picture is so film-culture referential that the final product is a ghost .',
 'label': 0},
 {'text': 'woody allen used to ridicule movies like hollywood ending . now he makes them .',
 'label': 0},
 {'text': "not only is undercover brother as funny , if not more so , than both austin powers films , but it's also one of the smarter , savvier spoofs to come along in some time .",
 'label': 1}]

دفعة

< >

( batch_size: typing.Optional[int] = Noneby_column: typing.Union[str, list[str], NoneType] = Nonedrop_last_batch: bool = False )

المعاملات

  • batch_size (int, اختياري) — عدد العينات في كل دفعة.
  • by_column (Union[str, list[str], اختياري — العمود المستخدم لتجميع الأمثلة في دفعات. تُجمَّع الأمثلة المتتالية التي تحمل نفس القيمة لذلك العمود في نفس الدفعة. يمكن أن يكون هذا أيضًا قائمة من الأعمدة إذا كنت ترغب في التجميع حسب عدة أعمدة. عند التجميع حسب العمود، يُستخدم حجم الدفعة (batch_size) فقط للتحكم في حجم الدفعات التي سيتم تجميعها أو تقطيعها أثناء التراكم.

    أُضيف في 4.9.0

  • drop_last_batch (bool، القيمة الافتراضية False) — ما إذا كان سيتم تجاهل الدفعة الأخيرة غير المكتملة.

تجميع العينات من مجموعة البيانات في دفعات.

مثال:

>>> ds = load_dataset("some_dataset", streaming=True)
>>> batched_ds = ds.batch(batch_size=32)

تخطي

< >

( n: int )

المعاملات

  • n (int) — عدد العناصر التي سيتم تجاوزها.

أنشئ IterableDataset جديدًا يتخطى أول n عناصر.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

المعاملات

  • n (int) — عدد العناصر المطلوب أخذها.

أنشئ IterableDataset جديدًا يحتوي على العناصر الـn الأولى فقط.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

شَريحة

< >

( num_shards: intindex: intcontiguous: bool = True )

المعاملات

  • num_shards (int) — عدد الأجزاء التي سيتم تقسيم مجموعة البيانات إليها.
  • index (int) — الشريحة التي يجب اختيارها وإرجاعها.
  • contiguous — (bool، القيمة الافتراضية True): ما إذا كان سيتم اختيار كتل متجاورة من الفهارس للتقسيمات.

أعد الشريحة رقم index من تقسيم مجموعة البيانات إلى num_shards أجزاء.

تُقسَّم هذه العملية بشكل حتمي. يقسم dataset.shard(n, i) مجموعة البيانات إلى مقاطع متجاورة، مما يتيح إعادة دمجها بسهولة بعد المعالجة. إذا كان dataset.num_shards % n == l، فإن أول l مجموعات بيانات تحتوي كل منها على (dataset.num_shards // n) + 1 شريحة، بينما تحتوي مجموعات البيانات المتبقية على (dataset.num_shards // n) شريحة. يعيد datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) مجموعة بيانات بنفس ترتيب الأصل. وبشكل خاص، يعيد dataset.shard(dataset.num_shards, i) مجموعة بيانات تحتوي على شريحة واحدة.

ملاحظة: يجب أن تكون قيمة n أقل من عدد الشرائح في مجموعة البيانات dataset.num_shards أو تساويه.

من ناحية أخرى، يحتوي dataset.shard(n, i, contiguous=False) على جميع أجزاء مجموعة البيانات التي يكون فيها الباقي عند قسمة الفهرس على n = i.

تأكد من تقسيم البيانات إلى شرائح قبل استخدام أي مشغّل عشوائي (مثل shuffle). يُفضّل استخدام مشغّل التقسيم إلى شرائح في مرحلة مبكرة من خط أنابيب مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.shard(num_shards=2, index=0)
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 2
})

reshard

< >

( )

أعد تقسيم مجموعة البيانات إذا أمكن، أي قسّم الشرائح الحالية إلى شرائح أكثر. يزيد هذا من عدد الشرائح، وتكون مجموعة البيانات الناتجة فيها num_shards >= previous_num_shards. قد يحدث التساوي إذا تعذر تقسيم أي شريحة بشكل أكبر.

يعتمد آلية إعادة التقسيم على صيغة ملف مجموعة البيانات:

  • Parquet: تقسيم البيانات إلى شرائح لكل مجموعة صفوف بدلاً من كل ملف
  • Vortex: شريحة لكل نطاق من الكتل المتتالية (حوالي 64 ميغابايت من بيانات الملف لكل شريحة) بدلاً من شريحة لكل ملف
  • أخرى: لم يتم تنفيذها بعد (المساهمات مرحّب بها!)

تأكد من إعادة التقسيم/التقسيم قبل استخدام أي مشغّل عشوائي (مثل shuffle). من الأفضل استخدام مشغّل التقسيم في مرحلة مبكرة من خط أنابيب مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.reshard()
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 3600
})

تكرار

< >

( num_times: typing.Optional[int] )

المعاملات

  • num_times (int) أو (None) — عدد مرات تكرار مجموعة البيانات. إذا كانت None، فسيتم تكرار مجموعة البيانات بشكل غير محدود.

أنشئ IterableDataset جديدًا يكرر مجموعة البيانات الأساسية num_times مرات.

ينتهي الإدخال الفارغ حتى عندما يكون num_times هو None.

ملاحظة: يعتمد تأثير استدعاء shuffle بعد repeat بشكل كبير على حجم المخزن المؤقت. عند استخدام buffer_size بقيمة 1، لا يُرى أي بيانات مكررة في نفس التكرار، حتى بعد الخلط: يعادل ds.repeat(n).shuffle(seed=42, buffer_size=1) ما يعبر عنه بـ ds.shuffle(seed=42, buffer_size=1).repeat(n)، حيث يقوم فقط بخلط ترتيب الشرائح داخل كل تكرار. عند استخدام حجم مخزن مؤقت >= (عدد العينات في مجموعة البيانات * عدد المرات)، نحصل على خلط كامل للبيانات المكررة، أي أنه يمكن ملاحظة التكرارات في نفس التكرار.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.csv)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.csv)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.
  • **to_csv_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pandas.DataFrame.to_csv في pandas. تتخذ المعلمة index القيمة الافتراضية False إذا لم تُحدَّد. إذا كنت ترغب في كتابة الفهرس، فمرِّر index=True وحدِّد أيضًا اسمًا لعمود الفهرس عن طريق تمرير index_label.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

يُصدّر مجموعة البيانات إلى ملف csv.

يتكرر هذا على مجموعة البيانات ويحمّلها بالكامل في الذاكرة قبل كتابتها.

مثال:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

المعاملات

  • batch_size (int, اختياري) — حجم الدُفعات (عدد الصفوف) إذا كان batched هو True. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — اضبطه على True لإرجاع مولّد يُخرج مجموعة البيانات على شكل دفعات من batch_size صفوف. القيمة الافتراضية هي False (تُرجع المجموعة الكاملة مرة واحدة).

يعيد مجموعة البيانات على شكل pandas.DataFrame. كما يمكنه إرجاع مولّد (generator) لمجموعات البيانات الكبيرة.

مثال:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

المعاملات

  • batch_size (int، اختياري) — حجم الدُفعات (عدد الصفوف) إذا كان batched هو True. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.

يعيد مجموعة البيانات كقاموس بايثون. كما يمكنه إعادة مولّد لمجموعات البيانات الكبيرة.

مثال:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.json)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.json)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.
  • **to_json_kwargs (additional keyword arguments) — Parameters to pass to pandas’s pandas.DataFrame.to_json. Default arguments are lines=True and orient="records". The parameter indexdefaults toFalseiforientis“split”or“table”. If you would like to write the index, pass index=True`.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

تصدير مجموعة البيانات إلى JSON Lines أو JSON.

يتكرر هذا على مجموعة البيانات ويحمّلها بالكامل في الذاكرة قبل كتابتها.

تنسيق الإخراج الافتراضي هو JSON Lines. لتصدير إلى JSON، مرّر الحجة lines=False والقيمة المطلوبة لـ orient.

مثال:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_json(f"path/of/my/dataset/data-{index:05d}.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

المعاملات

  • path_or_buf (PathLike أو FileOrBuffer) — إما مسار إلى ملف (مثل file.parquet)، أو عنوان URI عن بُعد (مثل hf://datasets/username/my_dataset_name/data.parquet)، أو BinaryIO، حيث سيتم حفظ مجموعة البيانات فيه بالتنسيق المحدد.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, اختياري) — أزواج مفتاح/قيمة تُمرَّر إلى نظام الملفات الخلفي، إن وُجد.

    أُضيف في 2.19.0

  • **parquet_writer_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pyarrow.parquet.ParquetWriter في PyArrow.

يعيد

int

عدد الأحرف أو البايتات المكتوبة.

يُصدّر مجموعة البيانات إلى parquet

مثال:

>>> ds.to_parquet("path/to/dataset/directory")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_parquet(f"path/of/my/dataset/data-{index:05d}.parquet")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = None**sql_writer_kwargs ) → int

المعاملات

  • name (str) — اسم جدول SQL.
  • con (str أو sqlite3.Connection أو sqlalchemy.engine.Connection أو sqlalchemy.engine.Connection) — سلسلة URI أو كائن اتصال SQLite3/SQLAlchemy يُستخدم للكتابة إلى قاعدة بيانات.
  • batch_size (int، اختياري) — حجم الدفعة التي يتم تحميلها في الذاكرة وكتابتها دفعة واحدة. القيمة الافتراضية هي datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • **sql_writer_kwargs (معلمات إضافية) — معلمات تُمرَّر إلى pandas.DataFrame.to_sql في pandas. تتخذ المعلمة index القيمة الافتراضية False إذا لم تُحدَّد. إذا كنت ترغب في كتابة الفهرس، فمرِّر index=True وحدِّد أيضًا اسمًا لعمود الفهرس عن طريق تمرير index_label.

يعيد

int

عدد السجلات المكتوبة.

يُصدِّر مجموعة البيانات إلى قاعدة بيانات SQL.

مثال:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

المعاملات

  • repo_id (str) — معرّف المستودع الذي تريد الدفع إليه، بالصيغة التالية: <user>/<dataset_name> أو <org>/<dataset_name>. كما يقبل <dataset_name>, والذي سيُستخدم افتراضيًا نطاق المستخدم المسجّل.

    كما يمكن أن يكون موقعًا داخل دلو، على سبيل المثال buckets/<user_or_org>/<bucket_name>/...

  • config_name (str، القيمة الافتراضية “default”) — اسم التهيئة (أو الجزء الفرعي) لمجموعة البيانات. القيمة الافتراضية هي “default”.
  • set_default (bool، اختياري) — ما إذا كان يجب تعيين هذا الإعداد كإعداد افتراضي. وإلا، فإن الإعداد الافتراضي هو ذلك المسمى بـ “default”.
  • split (str، اختياري) — اسم الجزء الذي سيُمنح لذلك مجموعة البيانات. القيمة الافتراضية هي self.split.
  • data_dir (str، اختياري) — اسم المجلد الذي سيحتوي على ملفات البيانات المرفوعة. القيمة الافتراضية هي config_name إذا كانت مختلفة عن “default”، وإلا فهي “data”.
  • commit_message (str، اختياري) — الرسالة التي سيتم الالتزام بها أثناء الدفع. ستكون الافتراضية "Upload dataset".
  • commit_description (str, اختياري) — وصف للالتزام الذي سيتم إنشاؤه. بالإضافة إلى ذلك، وصف لطلب الانضمام إذا تم إنشاؤه (create_pr هو True).
  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (str, اختياري) — رمز مصادقة اختياري لـ Hugging Face Hub. إذا لم يتم تمرير رمز، فسيتم افتراضياً استخدام الرمز المحفوظ محلياً عند تسجيل الدخول باستخدام hf auth login. سيُطلق خطأً إذا لم يتم تمرير رمز وكان المستخدم غير مسجّل الدخول.
  • revision (str، اختياري) — الفرع الذي سيتم دفع الملفات المرفوعة إليه. الافتراضي هو الفرع "main".
  • create_pr (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إنشاء طلب سحب (PR) بالملفات المرفوعة أم الالتزام مباشرة.
  • max_shard_size (int أو str، اختياري) — الحد الأقصى الاختياري لحجم أجزاء مجموعة البيانات التي سيتم رفعها إلى المستودع. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "5MB"). إذا لم يُقدَّم، فإن عدد الأجزاء الافتراضي يكون مساويًا لـ .num_shards لهذه المجموعة.
  • num_shards (int, اختياري) — عدد الأجزاء (shards) المراد كتابتها. إذا تم تقديم max_shard_size ولم يتم تقديم num_shards، فإن عدد الأجزاء يُقدَّر من max_shard_size. يمكن أن يكون أكبر من .num_shards لهذا مجموعة البيانات: في هذه الحالة، يتم توزيع كل جزء إدخال على عدة أجزاء إخراج عن طريق كتابة أمثلته إليها بطريقة الدوران (round-robin).
  • embed_external_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بايتات الملفات في الشرائح. على وجه التحديد، سيقوم بذلك قبل الدفع للحقول من النوع:
    • الصوت و الصورة: إزالة معلومات المسار المحلي وتضمين محتوى الملف في ملفات Parquet.
  • num_proc (int، اختياري، القيمة الافتراضية None) — عدد العمليات عند تجهيز مجموعة البيانات ورفعها. يكون هذا مفيدًا إذا كانت مجموعة البيانات تتكون من عينات وتحويلات كثيرة. يستخدم سياق “spawn” للعمل مع hf_xet، وهو عميل rust للرفع السريع إلى HF. تكون المعالجة متعددة العمليات معطلةً افتراضيًا.

يدفع مجموعة البيانات إلى المستودع كمجموعة بيانات بصيغة Parquet. تُدفَع مجموعة البيانات باستخدام طلبات HTTP ولا تحتاج إلى تثبيت git أو git-lfs.

ملفات Parquet الناتجة مكتفية ذاتياً بشكل افتراضي. إذا احتوى مجموعة البيانات الخاصة بك على بيانات Image أو Audio أو Video، فستخزن ملفات Parquet البايتات الخاصة بصورك أو ملفات الصوت. يمكنك تعطيل ذلك عن طريق تعيين embed_external_files إلى False.

مثال:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

إذا كانت مجموعة بياناتك تحتوي على عدة تقسيمات (مثل التدريب/التحقق/الاختبار):

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

إذا كنت ترغب في إضافة تكوين جديد (أو مجموعة فرعية) إلى مجموعة بيانات (على سبيل المثال، إذا كانت مجموعة البيانات تحتوي على مهام/إصدارات/لغات متعددة):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

load_state_dict

< >

( state_dict: dict )

حمّل state_dict الخاص بمجموعة البيانات. ستُستأنف عملية التكرار من المثال التالي لتلك اللحظة التي تم فيها حفظ الحالة.

يعود الاستئناف إلى النقطة التي تم فيها حفظ نقطة التفتيش بالضبط، باستثناء حالتين:

  1. تُفقد الأمثلة من مخازن الخلط عند استئناف التدريب وتُعاد تعبئة المخازن ببيانات جديدة
  2. قد تتسبب تركيبات .with_format(arrow) و.map() المُجمَّعة في تخطي دفعة واحدة.

مثال:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

والذي يعيد:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

state_dict

< >

( ) → dict

يعيد

dict

احصل على state_dict الحالي لمجموعة البيانات. يتوافق هذا مع الحالة عند آخر مثال تم إرجاؤه.

يعود الاستئناف إلى النقطة التي تم فيها حفظ نقطة التفتيش بالضبط، باستثناء حالتين:

  1. تُفقد الأمثلة من مخازن الخلط عند استئناف التدريب وتُعاد تعبئة المخازن ببيانات جديدة
  2. قد تتسبب تركيبات .with_format(arrow) و.map() المُجمَّعة في تخطي دفعة واحدة.

مثال:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

والذي يعيد:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

معلومات

< >

( )

كائن DatasetInfo يحتوي على جميع البيانات الوصفية في مجموعة البيانات.

تقسيم

< >

( )

كائن NamedSplit يقابل تقسيماً مسمّى من مجموعة البيانات.

builder_name

< >

( )

استشهاد

< >

( )

config_name

< >

( )

dataset_size

< >

( )

الوصف

< >

( )

download_checksums

< >

( )

download_size

< >

( )

مميزات

< >

( )

صفحة الرئيسية

< >

( )

رخصة

< >

( )

حجم_بالبايت

< >

( )

supervised_keys

< >

( )

الإصدار

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = False**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات CSV.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى pandas.read_csv.

إنشاء IterableDataset من ملف أو ملفات CSV.

مثال:

>>> ds = IterableDataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = None**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات JSON أو JSON Lines.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • field (str، اختياري) — اسم الحقل في ملف JSON الذي يحتوي على مجموعة البيانات.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى JsonConfig.

إنشاء IterableDataset من ملف أو ملفات JSON أو JSON Lines.

مثال:

>>> ds = IterableDataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار أو مسارات ملفات Parquet.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • columns (List[str]، اختياري) — إذا لم يكن None، فسيتم قراءة هذه الأعمدة فقط من الملف. قد يكون اسم العمدة بادئة لحقل متداخل، على سبيل المثال، ‘a’ سيحدد ‘a.b’ و ‘a.c’ و ‘a.d.e’.
  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]]، اختياري) — إرجاع الصفوف المطابقة للمرشّح فقط. إذا كان ذلك ممكنًا، فسيتم دفع الشرط إلى الأسفل لاستغلال معلومات التقسيم أو البيانات الوصفية الداخلية الموجودة في مصدر البيانات، مثل إحصاءات Parquet. وإلا، فسيتم تصفية دفعات السجلات (RecordBatches) المحمّلة قبل تسليمها.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, اختياري) — خيارات محددة للمسح الخاصة بقطع Parquet. هذا مفيد بشكل خاص لتكوين التخزين المؤقت والتخزين في الذاكرة.

    أُضيف في 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], اختياري, القيمة الافتراضية هي "error") — حدد الإجراء المتخذ عند مواجهة ملف معطوب (ملف لا يمكن قراءته). القيم المسموح بها هي:
    • ‘error’، ترمي استثناءً عند مواجهة ملف غير صالح.
    • ‘warn’، إصدار تحذير عند مواجهة ملف غير صالح وتخطي ذلك الملف.
    • ‘skip’، تخطي الملفات المعيبة دون رفع استثناء أو إصدار تحذير عند مواجهتها.

    أُضيف في 4.2.0

  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى ParquetConfig.

إنشاء IterableDataset من ملف أو ملفات Parquet.

مثال:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet')

تحميل مجموعة فرعية من الأعمدة:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

Efficiently filter data, possibly skipping entire files or row groups:

>>> filters = [("col_0", "==", 0)]
>>> ds = IterableDataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

المعاملات

  • path_or_paths (path-like أو قائمة من path-like) — مسار(ات) ملف(ات) النص.
  • split (NamedSplit، اختياري) — اسم التقسيم الذي سيُسند إلى مجموعة البيانات.
  • features (Features، اختياري) — مميزات مجموعة البيانات.
  • keep_in_memory (bool، القيمة الافتراضية False) — ما إذا كان سيتم نسخ البيانات في الذاكرة.
  • keep_linebreaks — (bool، الافتراضي False): ما إذا كان سيتم الإبقاء على علامات تبديل السطر.
  • sample_by (Literal["line", "paragraph", "document"])، القيمة الافتراضية هي “line”) — ما إذا كان سيتم تحميل البيانات سطرًا سطرًا، أو فقرةً فقرةً، أو مستندًا مستندًا. افتراضيًا، كل صف في مجموعة البيانات = سطر واحد.
  • **kwargs (معلمات إضافية بالكلمات المفتاحية) — معلمات بالكلمات المفتاحية تُمرَّر إلى TextConfig.

إنشاء IterableDataset من ملف نصي أو أكثر.

مثال:

>>> ds = IterableDataset.from_text('path/to/dataset.txt')

class datasets.IterableColumn

< >

( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )

قابلة للتكرار لعمود محدد في IterableDataset.

مثال:

تكرار على نصوص عمود “text” في مجموعة بيانات:

for text in dataset["text"]:
    ...

يعمل أيضًا مع الأعمدة المتداخلة:

for source in dataset["metadata"]["source"]:
    ...

IterableDatasetDict

قاموس تُستخدم فيه الأسماء المقسّمة كمفاتيح (مثل ‘train’ و ‘test’)، وتُستخدم كائنات IterableDataset كقيم.

فئة datasets.IterableDatasetDict

< >

( )

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: int = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefn_kwargs: typing.Optional[dict] = None )

المعاملات

  • function (Callable, اختياري, القيمة الافتراضية هي None) — دالة تُطبَّق على الفور على الأمثلة عند تكرار مجموعة البيانات. يجب أن يكون لها أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> Dict[str, Any] إذا كان batched=False وwith_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] إذا كان batched=False وwith_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] إذا كان batched=True و with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] إذا كان batched=True و with_indices=True

    للاستخدام المتقدم، يمكن للدالة أيضاً أن تُرجع pyarrow.Table. إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي. علاوة على ذلك، إذا كانت دالتك لا تُرجع شيئاً (None)، فإن map ستنفّذ دالتك وتُرجع مجموعة البيانات دون تغيير. إذا لم تُوفَّر دالة، فسيتم افتراض دالة الهوية: lambda x: x.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx[, rank]): ....
  • input_columns ([Union[str, list[str]]]، اختياري، القيمة الافتراضية None) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function.
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True.
  • drop_last_batch (bool، القيمة الافتراضية False) — ما إذا كان يجب تجاهل الدفعة الأخيرة الأصغر من batch_size بدلاً من معالجتها بواسطة الدالة.
  • remove_columns ([list[str]]، اختياري، القيمة الافتراضية None) — إزالة مجموعة من الأعمدة أثناء تنفيذ عملية الخرائط (mapping). سيتم حذف الأعمدة قبل تحديث الأمثلة بمخرجات function، أي إذا كان function يضيف أعمدة بأسماء موجودة في remove_columns، فسيتم الاحتفاظ بهذه الأعمدة.
  • fn_kwargs (Dict، اختياري، القيمة الافتراضية None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function

تطبيق دالة على جميع الأمثلة في مجموعة البيانات القابلة للتكرار (فردية أو على شكل دفعات) وتحديثها. إذا كانت دالتك تعيد عمودًا موجودًا مسبقًا، فإنها تستبدله. تُطبَّق الدالة على الأمثلة أثناء التكرار على مجموعة البيانات بشكل فوري. يُطبَّق التحويل على جميع مجموعات البيانات في قاموس مجموعة البيانات.

يمكنك تحديد ما إذا كان ينبغي تجميع الدالة أم لا باستخدام معامل batched:

  • إذا كانت False، فإن الدالة تستقبل مثالًا واحدًا ويجب أن تُرجع مثالًا واحدًا. المثال هو قاموس، مثل {"text": "Hello there !"}.
  • إذا كان True وbatch_size يساوي 1، فإن الدالة تستقبل دفعة تحتوي على مثال واحد كمدخلات ويمكنها إرجاع دفعة تحتوي على مثال واحد أو أكثر. الدفعة هي قاموس، على سبيل المثال دفعة تحتوي على مثال واحد هي {"text": ["Hello there !"]}.
  • إذا كانت True وbatch_size تساوي n > 1، فإن الدالة تستقبل دفعة من n أمثلة كمدخلات، ويمكن أن تعيد دفعة تحتوي على n أمثلة، أو على عدد عشوائي من الأمثلة. لاحظ أن الدفعة الأخيرة قد تحتوي على عدد أقل من n أمثلة. الدفعة هي قاموس، على سبيل المثال، دفعة من n أمثلة هي {"text": ["Hello there !"] * n}.

إذا كانت الدالة غير متزامنة، فإن map ستنفّذ دالتك بالتوازي، مع حد أقصى يبلغ ألف استدعاء متزامن. يُوصى باستخدام asyncio.Semaphore في دالتك إذا كنت ترغب في تحديد الحد الأقصى لعدد العمليات التي يمكن تنفيذها في الوقت نفسه.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> next(iter(ds["train"]))
{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

فلتر

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

المعاملات

  • function (Callable) — دالة قابلة للاستدعاء (Callable) تحمل أحد التواقيع التالية:
    • function(example: Dict[str, Any]) -> bool إذا كان with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool إذا كان with_indices=True, batched=False
    • function(example: Dict[str, list]) -> list[bool] إذا كان with_indices=False, batched=True
    • function(example: Dict[str, list], indices: list[int]) -> list[bool] إذا كان with_indices=True, batched=True

    If no function is provided, defaults to an always True function: lambda x: True.

  • with_indices (bool، القيمة الافتراضية False) — توفير فهارس أمثلة إلى function. لاحظ أنه في هذه الحالة يجب أن تكون التوقيع الخاص بـfunction هو def function(example, idx): ....
  • input_columns (str أو list[str]، اختياري) — الأعمدة التي سيتم تمريرها إلى function كحجج موضعية. إذا كانت None، يتم تمرير قاموس يقابل جميع الأعمدة المنسّقة كحجة واحدة.
  • batched (bool، الافتراضي False) — تقديم دفعة من الأمثلة إلى function
  • batch_size (int، اختياري، القيمة الافتراضية 1000) — عدد الأمثلة في كل دفعة تُقدَّم إلى function إذا كان batched=True.
  • fn_kwargs (Dict، اختياري، القيمة الافتراضية None) — حجج الكلمات المفتاحية التي سيتم تمريرها إلى function

تطبيق دالة تصفية على جميع العناصر بحيث تتضمن مجموعة البيانات أمثلةً فقط وفقًا لدالة التصفية. يتم إجراء التصفية على الفور أثناء التكرار على مجموعة البيانات. تُطبَّق التصفية على جميع مجموعات البيانات ضمن قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds["train"].take(3))
[{'label': 0, 'text': 'Review: simplistic , silly and tedious .'},
 {'label': 0,
 'text': "Review: it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'text': 'Review: exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

المعاملات

  • seed (int، اختياري، القيمة الافتراضية None) — بذرة عشوائية تُستخدم لخلط مجموعة البيانات. تُستخدم لأخذ عينات من مخزن الخلط (shuffle buffer) وكذلك لخلط شرائح البيانات (data shards).
  • generator (numpy.random.Generator، اختياري) — مولّد عشوائي من Numpy يُستخدم لحساب تبديل صفوف مجموعة البيانات. إذا كان generator=None (الافتراضي)، يُستخدم np.random.default_rng (مولّد البتات الافتراضي (PCG64) في NumPy).
  • buffer_size (int، القيمة الافتراضية 1000) — حجم المخزن المؤقت.
  • max_buffer_input_shards (int، القيمة الافتراضية 10) — الحد الأقصى لعدد الشرائح المستخدمة في تغذية المخزن المؤقت في كل مرة.

يُخلط عناصر مجموعة البيانات هذه عشوائيًا. يُطبَّق الخلط على جميع مجموعات البيانات في قاموس مجموعة البيانات.

تملأ هذه المجموعة بيانات مخزن مؤقت يحتوي على buffer_size عنصرًا، ثم تعيّن عناصر عشوائيًا من هذا المخزن المؤقت، مع استبدال العناصر المحددة بعناصر جديدة. وللخلط المثالي، يجب أن يكون حجم المخزن المؤقت أكبر من حجم المجموعة الكاملة أو مساويًا له.

على سبيل المثال، إذا كانت مجموعة البيانات الخاصة بك تحتوي على 10,000 عنصرًا لكن buffer_size مضبوط على 1000، فإن shuffle سيختار في البداية عنصرًا عشوائيًا من أول 1000 عنصر فقط في المخزن المؤقت. بمجرد اختيار عنصر، يتم استبدال مكانه في المخزن المؤقت بالعنصر التالي (أي العنصر رقم 1,001)، مع الحفاظ على مخزن مؤقت يتكون من 1000 عنصر.

إذا كان مجموعة البيانات مكوّنة من عدة أجزاء، فإنها تقوم أيضًا بـshuffle لترتيب هذه الأجزاء. ومع ذلك، إذا تم تثبيت الترتيب باستخدام skip() أو take()، فإن ترتيب الأجزاء يبقى دون تغيير.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.shuffle(seed=42)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': "a sports movie with action that's exciting on the field and a story you care about off it ."},
 {'label': 1,
 'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .'},
 {'label': 1,
 'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune ."}]

with_format

< >

( type: typing.Optional[str] = None )

المعاملات

  • type (str، اختياري) — إما نوع المخرجات المختار من [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None تعني أنه يُعاد كائنات بايثون (الافتراضي).

إرجاع مجموعة بيانات بالصيغة المحددة.

مثال:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation", streaming=True)
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds = ds.with_format("torch")
>>> next(iter(ds))
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

cast

< >

( features: Features ) → IterableDatasetDict

المعاملات

  • features (Features) — الميزات الجديدة التي يجب تحويل مجموعة البيانات إليها. يجب أن تتطابق أسماء الحقول في الميزات مع أسماء الأعمدة الحالية. كما يجب أن يكون نوع البيانات قابلاً للتحويل من نوع إلى آخر. للتحويلات غير البسيطة، مثل string <-> ClassLabel، يجب عليك استخدام map لتحديث مجموعة البيانات.

نسخة من مجموعة البيانات مع الميزات المُحوَّلة.

قم بتحويل مجموعة البيانات إلى مجموعة ميزات جديدة. يتم تطبيق تحويل النوع على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] )

المعاملات

  • column (str) — اسم العمود.
  • feature (Feature) — الميزة المستهدفة.

تحويل العمود إلى ميزة للتحليل. يُطبَّق تحويل النوع على جميع مجموعات البيانات ضمن قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

المعاملات

  • column_names (Union[str, list[str]]) — اسم العمود أو الأعمدة المراد حذفها.

نسخة من كائن مجموعة البيانات دون الأعمدة المراد إزالتها.

احذف عمودًا واحدًا أو عدة أعمدة من مجموعة البيانات والميزات المرتبطة بها. يتم إجراء الحذف على الفور على الأمثلة عند التكرار على مجموعة البيانات. يُطبَّق الحذف على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.remove_columns("label")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDatasetDict

المعاملات

  • original_column_name (str) — اسم العمود الذي سيتم تغيير اسمه.
  • new_column_name (str) — الاسم الجديد للعمود.

نسخة من مجموعة البيانات مع إعادة تسمية للعمود.

إعادة تسمية عمود في مجموعة البيانات، ونقل الميزات المرتبطة بالعمود الأصلي إلى تحت اسم العمود الجديد. تُطبَّق إعادة التسمية على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds["train"]))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_columns

< >

( column_mapping: dict ) → IterableDatasetDict

المعاملات

  • column_mapping (Dict[str, str]) — خريطة للأعمدة لإعادة تسميتها بأسمائها الجديدة.

نسخة من مجموعة البيانات مع إعادة تسمية الأعمدة

أعد تسمية عدة أعمدة في مجموعة البيانات، وانقل الميزات المرتبطة بالأعمدة الأصلية إلى الأسماء الجديدة للأعمدة. يتم تطبيق إعادة التسمية على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_columns({"text": "movie_review", "label": "rating"})
>>> next(iter(ds["train"]))
{'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'rating': 1}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

المعاملات

  • column_names (Union[str, list[str]]) — اسم العمود أو الأعمدة التي يجب الاحتفاظ بها.

نسخة من كائن مجموعة البيانات تحتوي على الأعمدة المحددة فقط.

اختر عمودًا واحدًا أو عدة أعمدة في مجموعة البيانات والميزات المرتبطة بها. يتم تنفيذ الاختيار على الفور على الأمثلة عند التكرار على مجموعة البيانات. يُطبَّق الاختيار على جميع مجموعات البيانات في قاموس مجموعة البيانات.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.select("text")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

المعاملات

  • repo_id (str) — معرّف المستودع الذي تريد الدفع إليه، بالصيغة التالية: <user>/<dataset_name> أو <org>/<dataset_name>. كما يقبل <dataset_name>, والذي سيُستخدم افتراضيًا نطاق المستخدم المسجّل.

    كما يمكن أن يكون موقعًا داخل دلو، على سبيل المثال buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — اسم إعداد مجموعة البيانات. القيمة الافتراضية هي “default”.
  • set_default (bool، اختياري) — ما إذا كان يجب تعيين هذا الإعداد كإعداد افتراضي. وإلا، فإن الإعداد الافتراضي هو ذلك المسمى بـ “default”.
  • data_dir (str, اختياري) — اسم المجلد الذي سيحتوي على ملفات البيانات المرفوعة. القيمة الافتراضية هي config_name إذا كانت مختلفة عن "default"، وإلا فهي "data".

    أُضيف في 2.17.0

  • commit_message (str، اختياري) — الرسالة التي سيتم الالتزام بها أثناء الدفع. ستكون الافتراضية "Upload dataset".
  • commit_description (str, اختياري) — وصف للالتزام الذي سيتم إنشاؤه. بالإضافة إلى ذلك، وصف لطلب الانضمام إذا تم إنشاؤه (create_pr هو True).

    أُضيف في 2.16.0

  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (str, اختياري) — رمز مصادقة اختياري لـ Hugging Face Hub. إذا لم يتم تمرير رمز، فسيتم افتراضياً استخدام الرمز المحفوظ محلياً عند تسجيل الدخول باستخدام hf auth login. سيُطلق خطأً إذا لم يتم تمرير رمز وكان المستخدم غير مسجّل الدخول.
  • revision (str، اختياري) — الفرع الذي سيتم دفع الملفات المرفوعة إليه. الافتراضي هو الفرع "main".
  • create_pr (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إنشاء طلب سحب (PR) بالملفات المرفوعة أم الالتزام مباشرة.
  • max_shard_size (int أو str، اختياري) — الحد الأقصى الاختياري لحجم شظايا مجموعة البيانات المراد رفعها إلى الحاضنة. إذا تم التعبير عنه كنص، فيجب أن يتكون من أرقام تليها وحدة (مثل "500MB" أو "1GB"). إذا لم يُقدَّم، فإن كل تقسيم يحافظ على عدد الشظايا الأصلي لمجموعة البيانات.
  • num_shards (Dict[str, int], اختياري) — عدد الأجزاء (shards) التي سيتم كتابتها. استخدم قاموسًا لتعريف قيمة مختلفة لـnum_shards لكل تقسيم (split). إذا تم تقديم max_shard_size ولم يتم تقديم num_shards لتقسيم معين، فإن عدد الأجزاء لذلك التقسيم يُقدَّر من max_shard_size.
  • embed_external_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بايتات الملفات في الشرائح. على وجه التحديد، سيقوم بذلك قبل الدفع للحقول من النوع:
    • يزيل Audio و Image معلومات المسار المحلي ويدمج محتوى الملفات في ملفات Parquet.
  • num_proc (int, اختياري, القيمة الافتراضية هي None) — عدد العمليات عند تجهيز مجموعة البيانات ورفعها. يُفيد هذا الأمر إذا كانت مجموعة البيانات تتكون من العديد من العينات أو ملفات الوسائط المضمنة. يستخدم سياق "spawn" للعمل مع hf_xet، وهو عميل rust للرفع السريع إلى HF. تُعطَّل المعالجة متعددة العمليات افتراضيًا.

    أُضيف في 4.0.0

يدفع IterableDatasetDict إلى المستودع كمجموعة بيانات Parquet. يتم دفع IterableDatasetDict باستخدام طلبات HTTP ولا يتطلب تثبيت git أو git-lfs.

سيتم دفع كل تقسيم من تقسيمات مجموعة البيانات بشكل مستقل. وستحتفظ مجموعة البيانات المُدَفوعة بأسماء التقسيمات الأصلية.

ملفات Parquet الناتجة مكتفية ذاتياً افتراضياً: إذا احتوى مجموعة البيانات الخاصة بك على بيانات Image أو Audio، فستخزن ملفات Parquet البايتات الخاصة بصورك أو ملفات الصوت. يمكنك تعطيل ذلك عن طريق تعيين embed_external_files إلى False.

مثال:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

إذا كنت ترغب في إضافة تكوين جديد (أو مجموعة فرعية) إلى مجموعة بيانات (على سبيل المثال، إذا كانت مجموعة البيانات تحتوي على مهام/إصدارات/لغات متعددة):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

الميزات

class datasets.Features

< >

( *args**kwargs )

قاموس خاص يحدد البنية الداخلية لمجموعة البيانات.

يتم إنشاء الكائن باستخدام قاموس من النوع dict[str, FieldType]، حيث تكون المفاتيح هي أسماء الأعمدة المطلوبة، والقيم هي نوع العمود المعني.

يمكن أن يكون FieldType أحد ما يلي:

  • تحدد ميزة Value قيمة لنوع بيانات واحد، مثل int64 أو string.
  • تحدد ميزة ClassLabel مجموعة محددة مسبقًا من الفئات التي يمكن ربطها بوسوم، وستُخزَّن كأعداد صحيحة في مجموعة البيانات.
  • يحدد dict في Python ميزة مركّبة تحتوي على تعيين من الحقول الفرعية إلى الميزات الفرعية. من الممكن وجود حقول متداخلة داخل حقول متداخلة بطريقة عشوائية.
  • يحدد List أو LargeList ميزة مركبة تحتوي على تسلسل من الميزات الفرعية، جميعها من نفس نوع الميزة.
  • خاصية Array2D أو Array3D أو Array4D أو Array5D للمصفوفات متعددة الأبعاد.
  • ميزة Audio لتخزين المسار المطلق إلى ملف صوتي أو قاموس يحتوي على المسار النسبي لملف صوتي (مفتاح “path”) ومحتواه البايتي (مفتاح “bytes”). تقوم هذه ميزة بتحميل الصوت بشكل كسول باستخدام مُفكّك.
  • خاصية Image لتخزين المسار المطلق لملف صورة، أو كائن np.ndarray، أو كائن PIL.Image.Image، أو قاموس يحتوي على المسار النسبي لملف الصورة (مفتاح “path”) ومحتواه البايتي (مفتاح “bytes”). تستخرج هذه الخاصية بيانات الصورة.
  • ميزة Video لتخزين المسار المطلق لملف فيديو، أو كائن torchcodec.decoders.VideoDecoder، أو قاموس يحتوي على المسار النسبي لملف الفيديو (المفتاح “path”) ومحتواه البايتي (المفتاح “bytes”). تقوم هذه ميزة بتحميل الفيديو بشكل كسول باستخدام مُفكّك.
  • ميزة Pdf لتخزين المسار المطلق إلى ملف PDF، أو كائن pdfplumber.pdf.PDF، أو قاموس يحتوي على المسار النسبي لملف PDF (المفتاح “path”) ومحتواه البايتي (المفتاح “bytes”). تقوم هذه ميزة بتحميل ملف PDF بشكل كسول باستخدام قارئ PDF.
  • ميزة Nifti لتخزين المسار المطلق إلى ملف تصوير عصبي بصيغة NIfTI، أو كائن nibabel.Nifti1Image أو قاموس يحتوي على المسار النسبي لملف NIfTI (المفتاح “path”) ومحتواه البايتي (المفتاح “bytes”). تقوم هذه ميزة بتحميل ملف NIfTI بشكل كسول باستخدام nibabel.
  • ميزة Translation أو TranslationVariableLanguages الخاصة بترجمة الآلة.
  • ميزة Json لتخزين البيانات غير المهيكلة، مثل تلك التي تحتوي على أنواع مختلطة/عشوائية. تحت الغطاء

نسخ

< >

( )

أنشئ نسخة عميقة من Features.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> copy_of_features = ds.features.copy()
>>> copy_of_features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}

decode_batch

< >

( batch: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

المعاملات

  • batch (dict[str, list[Any]]) — بيانات دفعة مجموعة البيانات.
  • token_per_repo_id (dict, اختياري) — للاطلاع على ملفات الصوت أو الصور وفك ترميزها من المستودعات الخاصة على Hub، يمكنك تمرير قاموس repo_id (str) -> token (bool or str)

فك ترميز الدفعة باستخدام فك ترميز مخصص للميزات.

decode_column

< >

( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

المعاملات

  • column (list[Any]) — بيانات عمود مجموعة البيانات.
  • column_name (str) — اسم عمود مجموعة البيانات.

فك ترميز العمود باستخدام فك ترميز مخصص للميزة.

decode_example

< >

( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

المعاملات

  • example (dict[str, Any]) — بيانات صف مجموعة البيانات.
  • token_per_repo_id (dict, اختياري) — للاطلاع على ملفات الصوت أو الصور وفك ترميزها من المستودعات الخاصة على Hub، يمكنك تمرير قاموس repo_id (str) -> token (bool or str).

مثال على فك الترميز مع فك ميزات مخصص.

encode_batch

< >

( batch )

المعاملات

  • batch (dict[str, list[Any]]) — بيانات في دفعة من مجموعة البيانات.

ترميز الدفعة إلى صيغة Arrow.

encode_column

< >

( columncolumn_name: str )

المعاملات

  • column (list[Any]) — البيانات الموجودة في عمود مجموعة البيانات.
  • column_name (str) — اسم عمود مجموعة البيانات.

ترميز العمود إلى صيغة مخصصة لـ Arrow.

encode_example

< >

( example )

المعاملات

  • example (dict[str, Any]) — بيانات في صف من مجموعة البيانات.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( max_depth = 16 ) → Features

يعيد

الميزات

الميزات المسطحة.

تسطيح الميزات. يتم حذف كل عمود من نوع القاموس واستبداله بجميع الحقول الفرعية التي يحتويها. تُسمّى الحقول الجديدة عن طريق دمج اسم العمود الأصلي واسم الحقل الفرعي على النحو التالي: <original>.<subfield>.

إذا احتوت عمود على قواميس متداخلة، فإن أسماء الحقول الفرعية على المستويات الأدنى تُدمج أيضًا لتشكيل أعمدة جديدة: <original>.<subfield>.<subsubfield>، وما إلى ذلك.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features.flatten()
{'answers.answer_start': List(Value('int32'), id=None),
 'answers.text': List(Value('string'), id=None),
 'context': Value('string'),
 'id': Value('string'),
 'question': Value('string'),
 'title': Value('string')}

from_arrow_schema

< >

( pa_schema: Schema )

المعاملات

  • pa_schema (pyarrow.Schema) — مخطط Arrow.

إنشاء Features من مخطط Arrow. كما يتحقق من بيانات وصفية المخطط بخصوص ميزات Hugging Face Datasets. لا يتم دعم الحقول غير القابلة للتبديل (Non-nullable) وتُضبط لتكون قابلة للتبديل (nullable).

كما أن pa.dictionary غير مدعوم، ويُستخدم النوع الأساسي بدلاً منه. لذلك، تقوم مجموعات البيانات بتحويل كائنات DictionaryArray إلى قيمها الفعلية.

from_dict

< >

( dic ) → Features

المعاملات

  • dic (dict[str, Any]) — قاموس بايثون.

يعيد

الميزات

إنشاء [Features] من قاموس.

أعد توليد كائن الميزة المتداخلة من قاموس مُفكك التسلسل. نستخدم المفتاح _type لاستنتاج اسم فئة البيانات الخاصة بالميزة FieldType.

يتيح ذلك استخدام بناءٍ مريح لتعريف الميزات من قواميس JSON المُفكَّكة. تُستخدم هذه الدالة على وجه الخصوص عند فكّ تسلسل [DatasetInfo] الذي تمّ تصديره إلى كائن JSON. تعمل هذه الدالة كمقابل لـ [Features.from_arrow_schema] وتتعامل مع الفوريّة المتكررة حقلًا بحقل، لكنها لا تتطلب أيّ خرائط إلى/من pyarrow، باستثناء أنها تستفيد من خرائط أنواع البيانات الأولية في pyarrow التي يقوم بها [Value] تلقائيًا.

مثال:

>>> Features.from_dict({'_type': {'dtype': 'string', 'id': None, '_type': 'Value'}})
{'_type': Value('string')}

reorder_fields_as

< >

( other: Features )

المعاملات

  • other ([الميزات]) — الميزات [Features] الأخرى التي يجب أن تتوافق معها.

Reorder Features fields to match the field order of other [Features].

ترتيب الحقول مهم لأنه يؤثر على بيانات arrow الأساسية. إعادة ترتيب الحقول تتيح مطابقة نوع بيانات arrow الأساسية.

مثال:

>>> from datasets import Features, List, Value
>>> # let's say we have two features with a different order of nested fields (for a and b for example)
>>> f1 = Features({"root": {"a": Value("string"), "b": Value("string")}})
>>> f2 = Features({"root": {"b": Value("string"), "a": Value("string")}})
>>> assert f1.type != f2.type
>>> # re-ordering keeps the base structure (here List is defined at the root level), but makes the fields order match
>>> f1.reorder_fields_as(f2)
{'root': List({'b': Value('string'), 'a': Value('string')})}
>>> assert f1.reorder_fields_as(f2).type == f2.type

Scalar

class datasets.Value

< >

( dtype: strid: typing.Optional[str] = None )

المعاملات

  • dtype (str) — اسم نوع البيانات.

قيمة مكوّن قياسي من نوع بيانات محدد.

أنواع Value الممكنة هي كالتالي:

  • null
  • bool
  • int8
  • int16
  • int32
  • int64
  • uint8
  • uint16
  • uint32
  • uint64
  • float16
  • float32 (مستعار float)
  • float64 (مستعار double)
  • time32[(s|ms)]
  • time64[(us|ns)]
  • timestamp[(s|ms|us|ns)]
  • timestamp[(s|ms|us|ns), tz=(tzstring)]
  • date32
  • date64
  • duration[(s|ms|us|ns)]
  • decimal128(precision, scale)
  • decimal256(precision, scale)
  • binary
  • large_binary
  • binary_view
  • string
  • large_string
  • string_view

مثال:

>>> from datasets import Features
>>> features = Features({'stars': Value('int32')})
>>> features
{'stars': Value('int32')}

فئة datasets.ClassLabel

< >

( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )

المعاملات

  • num_classes (int، اختياري) — عدد الفئات. يجب أن تكون جميع التسميات < num_classes.
  • names (list من str، اختياري) — أسماء نصية للفئات الصحيحة. يتم الحفاظ على الترتيب الذي تُقدَّم به الأسماء.
  • names_file (str، اختياري) — المسار إلى ملف يحتوي على أسماء للفئات الصحيحة، اسم واحد في كل سطر.

نوع الميزة لوسوم الفئات الصحيحة.

هناك 3 طرق لتعريف ClassLabel، تتوافق مع 3 معاملات:

  • num_classes: أنشئ تسميات من 0 إلى (num_classes-1).
  • names: قائمة من نصوص التسميات.
  • names_file: ملف يحتوي على قائمة التسميات.

تُخزَّن التسميات في الخلفية كأعداد صحيحة. يمكنك استخدام -1 لتمثيل التسميات المجهولة أو الناقصة.

مثال:

>>> from datasets import Features, ClassLabel
>>> features = Features({'label': ClassLabel(num_classes=3, names=['bad', 'ok', 'good'])})
>>> features
{'label': ClassLabel(names=['bad', 'ok', 'good'])}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.IntegerArray] ) → pa.Int64Array

المعاملات

  • storage (Union[pa.StringArray, pa.IntegerArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.Int64Array

مصفوفة في نوع التخزين ClassLabel الخاص بسهم.

قم بتحويل مصفوفة Arrow إلى نوع تخزين arrow الخاص بـ ClassLabel. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ ClassLabel هي:

  • pa.string()
  • pa.int()

int2str

< >

( values: typing.Union[int, collections.abc.Iterable] )

التحويل من integer إلى string لاسم الفئة.

بالنسبة إلى التسميات المجهولة/الناقصة: تمرير أعداد سالبة يثير ValueError.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].int2str(0)
'neg'

str2int

< >

( values: typing.Union[str, collections.abc.Iterable] )

اسم فئة التحويل string => integer.

مثال:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].str2int('neg')
0

مركّب

فئة datasets.LargeList

< >

( feature: typing.Anyid: typing.Optional[str] = None )

المعاملات

  • feature (FeatureType) — نوع بيانات الميزة الفرعية لكل عنصر ضمن القائمة الكبيرة.

نوع الميزة لبيانات القوائم الكبيرة المكوّنة من نوع بيانات الميزات الفرعية.

يعتمد على pyarrow.LargeListType، وهو يشبه pyarrow.ListType لكنه يستخدم إزاحات 64-بت بدلاً من 32-بت.

class datasets.List

< >

( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )

المعاملات

  • feature (FeatureType) — نوع بيانات الميزة الفرعية لكل عنصر ضمن القائمة الكبيرة.
  • length (اختياري int، الافتراضي -1) — طول القائمة إذا كان ثابتًا. الافتراضي هو -1 مما يعني طولًا غير محدد.

نوع الميزة لبيانات القوائم الكبيرة المكوّنة من نوع بيانات الميزات الفرعية.

يعتمد على pyarrow.ListType، الذي يستخدم إزاحات 32-بت أو طولًا ثابتًا.

فئة datasets.Sequence

< >

( feature = Nonelength = -1**kwargs )

المعاملات

  • feature (FeatureType) — نوع بيانات الميزة الفرعية لكل عنصر ضمن القائمة الكبيرة.
  • length (اختياري int، الافتراضي -1) — طول القائمة إذا كان ثابتًا. الافتراضي هو -1 مما يعني طولًا غير محدد.

يُعدّ Sequence أداة مساعدة تقوم تلقائيًا بتحويل ميزة القاموس الداخلية إلى قاموس من القوائم. تم تنفيذ هذا السلوك ليكون طبقة توافق مع مكتبة TensorFlow Datasets، لكنه قد لا يكون مرغوبًا فيه في بعض الحالات. إذا كنت لا تريد هذا السلوك، يمكنك استخدام List أو LargeList بدلاً من Sequence.

الترجمة

فئة datasets.Translation

< >

( languages: listid: typing.Optional[str] = None )

المعاملات

  • languages (dict) — قاموس لكل مثال يربط رموز اللغات النصية بترجمات نصية.

Feature للترجمات مع لغات ثابتة لكل مثال. هنا من أجل التوافق مع tfds.

مثال:

>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': 'le chat',
...         'de': 'die katze'
... }

تسطيح

< >

( )

Flatten ميزة الترجمة إلى قاموس.

class datasets.TranslationVariableLanguages

< >

( languages: typing.Optional[list] = Nonenum_languages: typing.Optional[int] = Noneid: typing.Optional[str] = None ) →

  • language or translation (variable-length 1D tf.Tensor of tf.string)

المعاملات

  • languages (dict) — قاموس لكل مثال يربط رموز اللغات النصية بترجمة أو أكثر نصية. قد تختلف اللغات الموجودة من مثال إلى آخر.

يعيد

  • language أو translation (tf.Tensor أحادي البُعد بطول متغيّر من نوع tf.string)

رموز اللغات مرتبة تصاعديًا أو ترجمات نصية عادية، مرتبة لتتوافق مع رموز اللغات.

Feature للترجمات التي تتضمن لغات متغيرة لكل مثال. هنا من أجل التوافق مع tfds.

مثال:

>>> # At construction time:
>>> datasets.features.TranslationVariableLanguages(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': ['le chat', 'la chatte,']
...         'de': 'die katze'
... }
>>> # Tensor returned :
>>> {
...         'language': ['en', 'de', 'fr', 'fr'],
...         'translation': ['the cat', 'die katze', 'la chatte', 'le chat'],
... }

تسطيح

< >

( )

Flatten الخاصية TranslationVariableLanguages إلى قاموس.

المصفوفات

فئة datasets.Array2D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

المعاملات

  • shape (tuple) — حجم كل بُعد.
  • dtype (str) — اسم نوع البيانات.

أنشئ مصفوفة ثنائية الأبعاد.

مثال:

>>> from datasets import Features
>>> features = Features({'x': Array2D(shape=(1, 3), dtype='int32')})

class datasets.Array3D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

المعاملات

  • shape (tuple) — حجم كل بُعد.
  • dtype (str) — اسم نوع البيانات.

أنشئ مصفوفة ثلاثية الأبعاد.

مثال:

>>> from datasets import Features
>>> features = Features({'x': Array3D(shape=(1, 2, 3), dtype='int32')})

class datasets.Array4D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

المعاملات

  • shape (tuple) — حجم كل بُعد.
  • dtype (str) — اسم نوع البيانات.

أنشئ مصفوفة رباعية الأبعاد.

مثال:

>>> from datasets import Features
>>> features = Features({'x': Array4D(shape=(1, 2, 2, 3), dtype='int32')})

class datasets.Array5D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

المعاملات

  • shape (tuple) — حجم كل بُعد.
  • dtype (str) — اسم نوع البيانات.

أنشئ مصفوفة خماسية الأبعاد.

مثال:

>>> from datasets import Features
>>> features = Features({'x': Array5D(shape=(1, 2, 2, 3, 3), dtype='int32')})

الصوت

فئة datasets.Audio

< >

( sampling_rate: typing.Optional[int] = Nonedecode: bool = Truenum_channels: typing.Optional[int] = Nonestream_index: typing.Optional[int] = Noneid: typing.Optional[str] = None )

المعاملات

  • sampling_rate (int، اختياري) — معدل العينة المستهدف. إذا كان None، يتم استخدام معدل العينة الأصلي.
  • num_channels (int, اختياري) — عدد القنوات المطلوب للعينات. افتراضيًا، يُستخدم عدد قنوات المصدر. ستعيد فك ترميز الصوت عينات بشكل (num_channels, num_samples) حاليًا None (عدد قنوات المصدر، الافتراضي)، 1 (أحادي) أو 2 (ستيريو) قنوات مدعومة. يُمرر num_channels الحجج إلى torchcodec.decoders.AudioDecoder.

    أُضيف في 4.4.0

  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات الصوت. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": audio_path, "bytes": audio_bytes}.
  • stream_index (int, اختياري) — مؤشر البث المراد استخدامه من الملف. إذا كان None فسيتم افتراضياً استخدام المؤشر “الأفضل”.

مكوّن Feature الصوتي لاستخراج البيانات الصوتية من ملف صوتي.

المدخل: تقبل ميزة الصوت كمدخل:

  • str: المسار المطلق لملف الصوت (أي يُسمح بالوصول العشوائي).

  • مسار pathlib.Path: المسار إلى ملف الصوت (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف الصوت إلى ملف الأرشيف.
    • bytes: محتوى البايتات الخاص بملف الصوت.

    يُعدّ هذا مفيدًا لملفات parquet أو webdataset التي تضمّن ملفات صوتية.

  • dict بالمفاتيح:

    • array: مصفوفة تحتوي على عينة الصوت
    • sampling_rate: عدد صحيح يقابل معدل أخذ العينات لعينة الصوت.
  • كائن torchcodec.decoders.AudioDecoder: كائن مُفكِّك الصوت الخاص بـ torchcodec.

المخرجات: تُخرج ميزات الصوت البيانات ككائنات torchcodec.decoders.AudioDecoder، مع مفاتيح إضافية:

  • array: مصفوفة تحتوي على عينة الصوت
  • sampling_rate: عدد صحيح يقابل معدل أخذ العينات لعينة الصوت.

مثال:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=44100, num_channels=2))
>>> ds[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>
>>> audio = ds[0]["audio"]
>>> audio.get_samples_played_in_range(0, 10)
AudioSamples:
    data (shape): torch.Size([2, 110592])
    pts_seconds: 0.0
    duration_seconds: 2.507755102040816
    sample_rate: 44100

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين Audio arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()})

قم بتحويل مصفوفة Arrow إلى نوع تخزين Audio الخاص بـ arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ Audio هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات الصوت
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب

decode_example

< >

( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

المعاملات

  • value (dict) — قاموس بمفاتيح:
    • path: نص يحتوي على مسار ملف الصوت النسبي.
    • bytes: بايتات ملف الصوت.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات الصوت وفك ترميزها من المستودعات الخاصة على Hub، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str)

decode ملف صوتي مثال إلى بيانات صوتية.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة

    أُضيف في 4.8.5

  • remote_files (bool, القيمة الافتراضية هي True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة. على سبيل المثال، الملفات التي تبدأ مساراتها بـ hf:// أو https://

    أُضيف في 4.8.5

يعيد

pa.StructArray

مصفوفة في نوع تخزين Audio arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات الصوت في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) → dict

المعاملات

  • value (str، bytes، bytearray، dict، AudioDecoder) — البيانات المُمرَّرة كمدخل إلى ميزة الصوت.

يعيد

dict

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، فاطرح خطأً، وإلا فسطّح الميزة إلى قاموس.

صورة

فئة datasets.Image

< >

( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • mode (str، اختياري) — الوضع الذي يجب تحويل الصورة إليه. إذا كان None، يتم استخدام الوضع الأصلي للصورة.
  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات الصورة. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": image_path, "bytes": image_bytes}.

خاصية Feature لقراءة بيانات الصورة من ملف صورة.

المدخل: تقبل ميزة الصورة كمدخل:

  • str: المسار المطلق لملف الصورة (أي يُسمح بالوصول العشوائي).

  • مسار pathlib.Path: المسار إلى ملف الصورة (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف الصورة إلى ملف الأرشيف.
    • bytes: بايتات ملف الصورة.

    يُعدّ هذا مفيدًا لملفات parquet أو webdataset التي تضمّن ملفات صور.

  • مصفوفة np.ndarray: مصفوفة NumPy تمثل صورة.

  • A PIL.Image.Image: PIL image object.

المخرجات: تُخرج ميزات الصورة البيانات ككائنات PIL.Image.Image.

أمثلة:

>>> from datasets import load_dataset, Image
>>> ds = load_dataset("AI-Lab-Makerere/beans", split="train")
>>> ds.features["image"]
Image(decode=True, id=None)
>>> ds[0]["image"]
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at 0x15E52E7F0>
>>> ds = ds.cast_column('image', Image(decode=False))
{'bytes': None,
 'path': '/root/.cache/huggingface/datasets/downloads/extracted/b0a21163f78769a2cf11f58dfc767fb458fc7cea5c05dccc0144a2c0f0bc1292/train/healthy/healthy_train.85.jpg'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين سهم الصورة، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين Image الخاص بـ arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين Image الخاص بـ pyarrow هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.large_string() - يجب أن يحتوي على بيانات "path" (سيتم تحويله إلى نص إذا أمكن)
  • pa.binary() - يجب أن يحتوي على بايتات الصورة
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب
  • pa.list(*) - يجب أن يحتوي على بيانات مصفوفة الصور

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار مطلق لملف الصورة، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار مطلق أو نسبي لملف الصورة.
    • bytes: بايتات ملف الصورة.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات الصور وفك ترميزها من المستودعات الخاصة على Hub، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

فك ترميز ملف صورة مثال إلى بيانات صورة.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة

    أُضيف في 4.8.5

  • remote_files (bool, القيمة الافتراضية هي True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة. على سبيل المثال، الملفات التي تبدأ مساراتها بـ hf:// أو https://

    أُضيف في 4.8.5

يعيد

pa.StructArray

مصفوفة في نوع تخزين سهم الصورة، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات الصور في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )

المعاملات

  • value (str أو np.ndarray أو PIL.Image.Image أو dict) — البيانات المُمررة كمدخل إلى ميزة الصورة.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

فيديو

فئة datasets.Video

< >

( decode: bool = Truestream_index: typing.Optional[int] = Nonedimension_order: typing.Literal['NCHW', 'NHWC'] = 'NCHW'num_ffmpeg_threads: int = 1device: typing.Union[str, ForwardRef('torch.device'), NoneType] = 'cpu'seek_mode: typing.Literal['exact', 'approximate'] = 'exact'id: typing.Optional[str] = None )

المعاملات

  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات الفيديو. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": video_path, "bytes": video_bytes}.
  • stream_index (int, اختياري) — مؤشر البث المراد استخدامه من الملف. إذا كان None فسيتم افتراضياً استخدام المؤشر “الأفضل”.
  • dimension_order (str, defaults to NCHW) — The dimension order of the decoded frames. where N is the batch size, C is the number of channels, H is the height, and W is the width of the frames.
  • num_ffmpeg_threads (int، القيمة الافتراضية 1) — عدد الخيوط المستخدمة لفك ترميز الفيديو. (يُوصى بإبقائها عند 1)
  • device (str أو torch.device، الافتراضي cpu) — الجهاز المستخدم لفك ترميز الفيديو.
  • seek_mode (str، القيمة الافتراضية exact) — يحدد ما إذا كان الوصول إلى الإطار سيكون “دقيقاً” (exact) أو “تقريبياً” (approximate). يضمن الوضع الدقيق أن طلب الإطار i سيعيد دائماً الإطار i، لكن ذلك يتطلب مسحاً أولياً للملف. الوضع التقريبي أسرع لأنه يتجنب مسح الملف، لكنه أقل دقة لأنه يستخدم بيانات وصفية الملف (metadata) لحساب الموقع المحتمل للإطار i. اقرأ المزيد هنا

ميزة Feature في الفيديو لقراءة بيانات الفيديو من ملف فيديو.

المدخل: تقبل ميزة الفيديو كمدخل:

  • str: المسار المطلق لملف الفيديو (أي يُسمح بالوصول العشوائي).

  • مسار pathlib.Path: المسار إلى ملف الفيديو (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف الفيديو في مستودع مجموعة البيانات.
    • bytes: بايتات ملف الفيديو.

    يُعدّ هذا مفيدًا لملفات parquet أو webdataset التي تضمّن ملفات فيديو.

  • كائن torchcodec.decoders.VideoDecoder: كائن مُفكِّك الفيديو الخاص بـ torchcodec.

المخرجات: تُميَّز مخرجات الفيديو البيانات ككائنات من نوع torchcodec.decoders.VideoDecoder.

أمثلة:

>>> from datasets import Dataset, Video
>>> ds = Dataset.from_dict({"video":["path/to/Screen Recording.mov"]}).cast_column("video", Video())
>>> ds.features["video"]
Video(decode=True, id=None)
>>> ds[0]["video"]
<torchcodec.decoders._video_decoder.VideoDecoder object at 0x14a61e080>
>>> video = ds[0]["video"]
>>> video.get_frames_in_range(0, 10)
FrameBatch:
data (shape): torch.Size([10, 3, 50, 66])
pts_seconds: tensor([0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333,
        0.4333], dtype=torch.float64)
duration_seconds: tensor([0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167,
        0.0167], dtype=torch.float64)
>>> ds.cast_column('video', Video(decode=False))[0]["video]
{'bytes': None,
 'path': 'path/to/Screen Recording.mov'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين السهم بالفيديو، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين Video الخاص بـ arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ Video هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات الفيديو
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب
  • pa.list(*) - يجب أن يحتوي على بيانات مصفوفة الفيديو

decode_example

< >

( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار مطلق لملف الفيديو، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار مطلق أو نسبي لملف الفيديو.
    • bytes: بايتات ملف الفيديو.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات الفيديو في المستودعات الخاصة على Hub وفك ترميزها، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

Decode ملف فيديو كمثال إلى بيانات فيديو.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة

    أُضيف في 4.8.5

  • remote_files (bool, القيمة الافتراضية هي True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة. على سبيل المثال، الملفات التي تبدأ مساراتها بـ hf:// أو https://

    أُضيف في 4.8.5

يعيد

pa.StructArray

مصفوفة في نوع تخزين السهم بالفيديو، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات الصور في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )

المعاملات

  • value (str أو np.ndarray أو bytes أو bytearray أو VideoDecoder أو dict) — البيانات المُمررة كمدخل إلى ميزة الفيديو.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

شبكة

فئة datasets.Mesh

< >

( decode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات الشبكة. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": mesh_path, "bytes": mesh_bytes}. يستخدم فك ترميز الشبكة trimesh ويدعم ملفات .glb و.ply و.stl.

شبكة Feature لقراءة بيانات الشبكات ثلاثية الأبعاد من ملف.

المدخل: تقبل ميزة Mesh كمدخل:

  • str: المسار المطلق لملف الشبكة (أي يُسمح بالوصول العشوائي).

  • pathlib.Path: مسار إلى ملف الشبكة (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف الشبكة (mesh) إلى ملف الأرشيف.
    • bytes: بايتات ملف الشبكة.

    يُعدّ هذا مفيدًا لملفات parquet أو webdataset التي تضمّن ملفات mesh.

  • A trimesh.Trimesh or trimesh.Scene: 3D mesh or scene object.

المخرجات: تُخرج ميزة Mesh البيانات ككائنات trimesh.Trimesh أو trimesh.Scene.

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين Mesh arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين Mesh arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين Mesh pyarrow هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.large_string() - يجب أن يحتوي على بيانات "path" (سيتم تحويله إلى نص إذا أمكن)
  • pa.binary() - يجب أن يحتوي على بايتات الشبكة
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (dict) — قاموس بمفاتيح:
    • path: نص يحتوي على مسار مطلق أو نسبي لملش الشبكة.
    • bytes: بايتات ملف الشبكة.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات mesh وفك ترميزها من المستودعات الخاصة على Hub، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

Decode example mesh file.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة.
  • remote_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة.

يعيد

pa.StructArray

مصفوفة في نوع تخزين Mesh arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات الشبكة في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )

المعاملات

  • value (str، bytes، dict، trimesh.Trimesh، أو trimesh.Scene) — البيانات المُمررة كمدخل إلى ميزة Mesh.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

Json

class datasets.Json

< >

( decode: bool = Trueid: typing.Optional[str] = None )

نوع الميزة الخاص بـ JSON objects.

تُخزَّن الكائنات في الخلفية كنصوص مشفّرة بصيغة JSON.

مثال:

>>> from datasets import Features, Json
>>> features = Features({'json': Json()})
>>> features
{'json': Json()}
>>> from datasets import Dataset, Features, Json, List
>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> # OR
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> ds[0]
{'a': [{'b': 0}, {'c': 0}]}
>>> def f(x):
...     for y in x["a"]:
...         y["d"] = "foo"
...     return x
>>> ds = ds.map(f)
>>> ds.features
>>> ds[0]
{'a': [{'b': 0, 'd': 'foo'}, {'c': 0, 'd': 'foo'}]}

cast_storage

< >

( storage: Array ) → pa.JsonArray

المعاملات

  • storage (Union[pa.StringArray, pa.IntegerArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.JsonArray

مصفوفة في نوع تخزين Json الخاص بـ arrow.

قم بتحويل مصفوفة Arrow إلى نوع تخزين arrow الخاص بـ Json.

Pdf

class datasets.Pdf

< >

( decode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات pdf. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": pdf_path, "bytes": pdf_bytes}.

تجريبي. ميزة Feature لقراءة مستندات pdf من ملف pdf.

المدخل: تقبل ميزة Pdf كمدخل:

  • str: المسار المطلق لملف pdf (أي يُسمح بالوصول العشوائي).

  • مسار من نوع pathlib.Path: المسار إلى ملف pdf (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف pdf في مستودع مجموعة البيانات.
    • bytes: بايتات ملف pdf. يُعدّ هذا مفيدًا للملفات المؤرشفة التي يتم الوصول إليها بشكل تسلسلي.
  • pdfplumber.pdf.PDF: كائن pdfplumber pdf.

أمثلة:

>>> from datasets import Dataset, Pdf
>>> ds = Dataset.from_dict({"pdf": ["path/to/pdf/file.pdf"]}).cast_column("pdf", Pdf())
>>> ds.features["pdf"]
Pdf(decode=True, id=None)
>>> ds[0]["pdf"]
<pdfplumber.pdf.PDF object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("pdf", Pdf(decode=False))
>>> ds[0]["pdf"]
{'bytes': None,
'path': 'path/to/pdf/file.pdf'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين Pdf arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين Pdf الخاص بـ arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ Pdf هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات الصورة
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب
  • pa.list(*) - يجب أن يحتوي على بيانات مصفوفة pdf

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار ملف pdf المطلق، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار مطلق أو نسبي لملف pdf.
    • bytes: بايتات ملف pdf.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات pdf في المستودعات الخاصة على الـ Hub وفك ترميزها، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

تحويل ملف pdf مثال إلى بيانات pdf.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة

    أُضيف في 4.8.5

  • remote_files (bool, القيمة الافتراضية هي True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة. على سبيل المثال، الملفات التي تبدأ مساراتها بـ hf:// أو https://

    أُضيف في 4.8.5

يعيد

pa.StructArray

مصفوفة في نوع تخزين PDF السهمي، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات PDF في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )

المعاملات

  • value (str أو bytes أو pdfplumber.pdf.PDF أو dict) — البيانات المُمرَّرة كمدخل إلى ميزة Pdf.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

Nifti

class datasets.Nifti

< >

( decode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات NIfTI. إذا كانت False يتم إرجاع نص يحتوي على البايتات. لا يُدعم decode=False عند فك ترميز الأمثلة.

تجريبي. ميزة Feature من Nifti لقراءة ملفات التصوير العصبي بصيغة NIfTI.

المدخل: تقبل ميزة Nifti كمدخل:

  • str: المسار المطلق إلى ملف NIfTI (أي يُسمح بالوصول العشوائي).

  • مسار pathlib.Path: المسار إلى ملف NIfTI (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف NIfTI في مستودع مجموعة البيانات.
    • bytes: بايتات ملف NIfTI. يُعدّ هذا مفيدًا للملفات المؤرشفة التي يتم الوصول إليها بشكل تسلسلي.
  • كائن صورة nibabel (مثل nibabel.nifti1.Nifti1Image).

أمثلة:

>>> from datasets import Dataset, Nifti
>>> ds = Dataset.from_dict({"nifti": ["path/to/file.nii.gz"]}).cast_column("nifti", Nifti())
>>> ds.features["nifti"]
Nifti(decode=True, id=None)
>>> ds[0]["nifti"]
<nibabel.nifti1.Nifti1Image object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("nifti", Nifti(decode=False))
>>> ds[0]["nifti"]
{'bytes': None,
'path': 'path/to/file.nii.gz'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.BinaryArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray, pa.BinaryArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين سهم Nifti، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين Nifti arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين Nifti pyarrow هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات NIfTI
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار ملف NIfTI المطلق، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار مطلق أو نسبي لملف NIfTI.
    • bytes: بايتات ملف NIfTI.
  • token_per_repo_id (dict, اختياري) — للوصول إلى ملفات NIfTI الخاصة بالمستودعات الخاصة على الـ Hub وفك ترميزها، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

فكّ ترميز ملف NIfTI التجريبي إلى كائن صورة nibabel.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool, الافتراضي هو True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة

    أُضيف في 4.8.5

  • remote_files (bool, القيمة الافتراضية هي True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة. على سبيل المثال، الملفات التي تبدأ مساراتها بـ hf:// أو https://

    أُضيف في 4.8.5

يعيد

pa.StructArray

مصفوفة في نوع تخزين NifTI arrow، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

تضمين ملفات NifTI في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )

المعاملات

  • value (str أو bytes أو nibabel.Nifti1Image أو dict) — البيانات المُمررة كمدخل إلى ميزة Nifti.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

BioSequence

فئة datasets.BioSequence

< >

( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • format (str، القيمة الافتراضية "fasta") — اسم تنسيق التسلسل، كما تفهمه Bio.SeqIO. القيم الشائعة هي "fasta" و"fastq" و"genbank".
  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات التسلسل. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": path, "bytes": bytes}.

تجريبي. ميزة Feature في BioSequence لقراءة سجلات التسلسلات البيولوجية من ملف تسلسل.

يحتوي ملف التسلسل على سجل واحد أو أكثر من بقايا الأحماض الأمينية مع معرّفاتها وتعليقاتها. تتشابه صيغ FASTA وFASTQ وGenBank في هذا المستوى من حيث الشكل، ولا تختلف إلا في المُحلِّل (parser) المستخدم، لذا يختار format المُحلِّل بدلاً من تحديد النوع.

المدخل: تقبل ميزة BioSequence كمدخل:

  • str: المسار المطلق إلى ملف التسلسل (أي يُسمح بالوصول العشوائي).

  • مسار من نوع pathlib.Path: المسار إلى ملف التسلسل (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف التسلسل في مستودع مجموعة البيانات.
    • bytes: بايتات ملف التسلسل. يُعدّ هذا مفيدًا للملفات المؤرشفة التي يتم الوصول إليها بشكل تسلسلي.
  • سجل تسلسل Bio.SeqRecord.SeqRecord: سجل تسلسل في مكتبة بيوبايثون.

أمثلة:

>>> from datasets import Dataset, BioSequence
>>> ds = Dataset.from_dict({"seq": ["path/to/sequences.fasta"]}).cast_column("seq", BioSequence())
>>> ds.features["seq"]
BioSequence(format='fasta', decode=True)
>>> ds[0]["seq"]
SeqRecord(seq=Seq('ACGT'), id='seq1', name='seq1', description='seq1', dbxrefs=[])
>>> ds = ds.cast_column("seq", BioSequence(decode=False))
>>> ds[0]["seq"]
{'bytes': None,
'path': 'path/to/sequences.fasta'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين arrow الخاص بـ BioSequence، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين BioSequence الخاص بـ arrow. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ BioSequence هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات الملف
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار الملف المطلق، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار ملف مطلق أو نسبي.
    • bytes: بايتات الملف.
  • token_per_repo_id (dict, اختياري) — للاطلاع على الملفات من المستودعات الخاصة على الـ Hub وفك ترميزها، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

Decode example sequence file into a biopython record.

قد يحتوي الملف على العديد من السجلات؛ ويعيد هذا الأمر السجل الأول، لأن الصف الواحد يمثل سجلاً واحداً. استخدم محمّلات التسلسل المعبأة لتوسيع ملف متعدد السجلات إلى صف لكل سجل.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة.
  • remote_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة.

يعيد

pa.StructArray

مصفوفة في نوع تخزين BioSequence الخاص بـ arrow.

تضمين ملفات التسلسل في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )

المعاملات

  • value (str أو bytes أو Bio.SeqRecord.SeqRecord أو dict) — البيانات المُمررة كمدخل إلى ميزة BioSequence.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

BioStructure

class datasets.BioStructure

< >

( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )

المعاملات

  • format (str، الافتراضي "pdb") — تنسيق البنية، إما "pdb" أو "mmcif".
  • decode (bool، القيمة الافتراضية True) — ما إذا كان سيتم فك ترميز بيانات الهيكل. إذا كانت False، فسيُعاد القاموس الأساسي بالصيغة {"path": path, "bytes": bytes}.

تجريبي. ميزة Feature في BioStructure لقراءة الهياكل الجزيئية الكبيرة من ملف بنية.

يحتوي ملف البنية على الإحداثيات ثلاثية الأبعاد لذرات الجزيء، مجمّعة في سلاسل ومخلفات. يصف PDB وmmCIF نفس الكائنات ولا يختلفان إلا في المُحلِّل المستخدم، لذا يختار format المُحلِّل بدلاً من النوع.

المدخل: تقبل ميزة BioStructure كمدخل:

  • str: المسار المطلق إلى ملف البنية (أي يُسمح بالوصول العشوائي).

  • مسار من نوع pathlib.Path: يشير إلى ملف البنية (أي يُسمح بالوصول العشوائي).

  • dict بالمفاتيح:

    • path: نص يحتوي على المسار النسبي لملف البنية في مستودع مجموعة البيانات.
    • bytes: بايتات ملف البنية. يُعدّ هذا مفيدًا للملفات المؤرشفة التي يتم الوصول إليها بشكل تسلسلي.
  • Bio.PDB.Structure.Structure: هيكل bioPython.

أمثلة:

>>> from datasets import Dataset, BioStructure
>>> ds = Dataset.from_dict({"st": ["path/to/1abc.pdb"]}).cast_column("st", BioStructure())
>>> ds.features["st"]
BioStructure(format='pdb', decode=True)
>>> ds[0]["st"]
<Structure id=1abc>
>>> ds = ds.cast_column("st", BioStructure(decode=False))
>>> ds[0]["st"]
{'bytes': None,
'path': 'path/to/1abc.pdb'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

المعاملات

  • storage (Union[pa.StringArray, pa.StructArray]) — مصفوفة PyArrow للتحويل.

يعيد

pa.StructArray

مصفوفة في نوع تخزين arrow الخاص بـ BioStructure، وهو pa.struct({"bytes": pa.binary(), "path": pa.string()}).

قم بتحويل مصفوفة Arrow إلى نوع تخزين arrow الخاص بـ BioStructure. أنواع Arrow التي يمكن تحويلها إلى نوع تخزين pyarrow الخاص بـ BioStructure هي:

  • pa.string() - يجب أن يحتوي على بيانات "path"
  • pa.binary() - يجب أن يحتوي على بايتات الملف
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - لا يهم الترتيب

decode_example

< >

( value: dicttoken_per_repo_id = None )

المعاملات

  • value (str أو dict) — نص يحتوي على مسار الملف المطلق، أو قاموس بمفاتيح:
    • path: نص يحتوي على مسار ملف مطلق أو نسبي.
    • bytes: بايتات الملف.
  • token_per_repo_id (dict, اختياري) — للاطلاع على الملفات من المستودعات الخاصة على الـ Hub وفك ترميزها، يمكنك تمرير قاموس repo_id (str) -> token (bool أو str).

Decode example structure file into a biopython structure.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

المعاملات

  • storage (pa.StructArray) — مصفوفة PyArrow للتضمين.
  • token_per_repo_id (dict, اختياري) — قاموس repo_id -> token لجلب بايتات الملفات.
  • local_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات المحلية في المصفوفة.
  • remote_files (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين بيانات الملفات البعيدة في المصفوفة.

يعيد

pa.StructArray

مصفوفة في نوع تخزين arrow الخاص بـ BioStructure.

تضمين ملفات البنية في مصفوفة Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )

المعاملات

  • value (str أو bytes أو Bio.PDB.Structure.Structure أو dict) — البيانات المُمرَّرة كمدخل إلى ميزة BioStructure.

ترميز المثال إلى صيغة Arrow.

تسطيح

< >

( )

إذا كان في حالة قابلة للفك، أعد الميزة نفسها، وإلا فسطّح الميزة إلى قاموس.

أنظمة الملفات

datasets.filesystems.is_remote_filesystem

< >

( fs: AbstractFileSystem )

المعاملات

  • fs (fsspec.spec.AbstractFileSystem) — فئة فائقة مجردة لأنظمة الملفات البرمجية بلغة بايثون، مثل fsspec.filesystem('file') أو s3fs.S3FileSystem.

يتحقق مما إذا كان fs نظام ملفات عن بُعد.

بصمة

class datasets.fingerprint.Hasher

< >

( )

Hasher يقبل كائنات Python كمدخلات.

Update on GitHub