Datasets documentation
Proses data teks
Proses data teks
Panduan ini menunjukkan metode spesifik untuk memproses dataset teks. Pelajari cara:
- Tokenisasi dataset dengan map().
- Selaraskan label dataset dengan id label untuk dataset NLI.
Untuk panduan tentang cara memproses dataset apa pun, lihat panduan proses umum.
Peta
Fungsi map() mendukung pemrosesan batch contoh sekaligus, yang mempercepat tokenisasi.
Muat tokenizer dari 🤗 Transformers:
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")Atur parameter batched menjadi True pada fungsi map() untuk menerapkan tokenizer pada batch contoh:
>>> 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]}Fungsi map() mengonversi nilai yang dikembalikan ke format yang didukung PyArrow. Namun, mengembalikan tensor secara eksplisit sebagai array NumPy lebih cepat karena merupakan format PyArrow yang didukung secara native. Atur return_tensors="np" saat Anda melakukan tokenisasi teks:
>>> dataset = dataset.map(lambda examples: tokenizer(examples["text"], return_tensors="np"), batched=True)Selaraskan
Fungsi align_labels_with_mapping() menyelaraskan id label dataset dengan nama label. Tidak semua model 🤗 Transformers mengikuti pemetaan label yang ditentukan oleh dataset asli, terutama untuk dataset NLI. Sebagai contoh, dataset MNLI menggunakan pemetaan label berikut:
>>> label2id = {"entailment": 0, "neutral": 1, "contradiction": 2}Untuk menyelaraskan pemetaan label dataset dengan pemetaan yang digunakan oleh model, buat kamus nama label dan id untuk diselaraskan:
>>> label2id = {"contradiction": 0, "neutral": 1, "entailment": 2}Lewatkan kamus pemetaan label ke fungsi align_labels_with_mapping(), beserta kolom yang akan diselaraskan:
>>> from datasets import load_dataset
>>> mnli = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> mnli_aligned = mnli.align_labels_with_mapping(label2id, "label")Anda juga dapat menggunakan fungsi ini untuk menetapkan pemetaan kustom dari label ke id.
Update on GitHub