Datasets documentation
معالجة بيانات النص
معالجة بيانات النص
يُظهر هذا الدليل طرقًا محددة لمعالجة مجموعات بيانات النص. تعلّم كيفية:
- قم بتجزئة مجموعة بيانات باستخدام map().
- محاذاة تسميات مجموعة البيانات مع معرّفات التسميات لمجموعات بيانات NLI.
للاطلاع على دليل حول كيفية معالجة أي نوع من مجموعات البيانات، راجع دليل العملية العامة.
خريطة
تدعم دالة map() معالجة دفعات من الأمثلة دفعة واحدة، مما يسرّع عملية الترميز.
حمّل مُرمِّزًا من 🤗 Transformers:
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")اضبط معامل batched على True في دالة map() لتطبيق مُرمّز النص على دفعات من الأمثلة:
>>> dataset = dataset.map(lambda examples: tokenizer(examples["text"]), batched=True)
>>> dataset[0]
{'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,
'input_ids': [101, 1996, 2600, 2003, 16036, 2000, 2022, 1996, 7398, 2301, 1005, 1055, 2047, 1000, 16608, 1000, 1998, 2008, 2002, 1005, 1055, 2183, 2000, 2191, 1037, 17624, 2130, 3618, 2084, 7779, 29058, 8625, 13327, 1010, 3744, 1011, 18856, 19513, 3158, 5477, 4168, 2030, 7112, 16562, 2140, 1012, 102],
'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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': [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]}تحوّل الدالة map() القيم المُعادَة إلى صيغة مدعومة من PyArrow. لكن إرجاع المصفوفات (tensors) بشكل صريح كمصفوفات NumPy يكون أسرع لأنها صيغة مدعومة بشكل أصلي في PyArrow. اضبط return_tensors="np" عند معالجة النص (tokenize):
>>> dataset = dataset.map(lambda examples: tokenizer(examples["text"], return_tensors="np"), batched=True)محاذاة
تقوم دالة align_labels_with_mapping() بمطابقة معرّف التسمية في مجموعة البيانات مع اسم التسمية. لا تتبع جميع نماذج 🤗 Transformers تعيين التسميات المعتمد في مجموعة البيانات الأصلية، خاصةً في مجموعات بيانات NLI. على سبيل المثال، تستخدم مجموعة بيانات MNLI تعيين التسميات التالي:
>>> label2id = {"entailment": 0, "neutral": 1, "contradiction": 2}لمواءمة تعيين تسميات مجموعة البيانات مع التعيين المستخدم بواسطة النموذج، أنشئ قاموسًا باسم التسمية والمعرّف للمواءمة عليه:
>>> label2id = {"contradiction": 0, "neutral": 1, "entailment": 2}مرر قاموس تعيينات التسميات إلى دالة align_labels_with_mapping()، بالإضافة إلى العمود الذي سيتم المحاذاة بناءً عليه:
>>> from datasets import load_dataset
>>> mnli = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> mnli_aligned = mnli.align_labels_with_mapping(label2id, "label")يمكنك أيضًا استخدام هذه الدالة لتعيين تعيين مخصص للتسميات إلى المعرّفات.
Update on GitHub