要在Hugging Face的datasets
庫中創建帶有 ‘train’、’test’、’valid’ 這三個分割的資料集,並且每個分割都有 ‘text’ 和 ‘label’,你可以參考以下的步驟:
- 首先,創建一個包含 ‘text’ 和 ‘label’ 的資料集。
pythonCopy codefrom datasets import Dataset
# 假設你有一個文字和標籤列表
texts = ["Hello world!", "Machine learning is fun.", "..."]
labels = [0, 1, 0] # 例如,0代表 '英文',1代表 '科技'
# 創建一個資料集
dataset = Dataset.from_dict({"text": texts, "label": labels})
- 然後,使用
train_test_split
函數來分割資料集,創建 ‘train’ 和 ‘test’ 子集。這個函數會返回一個字典,字典的鍵是分割的名稱,值是對應的子集。
pythonCopy codesplit_dataset = dataset.train_test_split(test_size=0.2)
# 現在,split_dataset 有 'train' 和 'test' 兩個子集
print(split_dataset['train'])
print(split_dataset['test'])
- 接著,我們再從 ‘train’ 子集中分割出一部分作為 ‘valid’ 子集。
pythonCopy codetrain_dataset, valid_dataset = split_dataset['train'].train_test_split(test_size=0.2)
# 現在,我們有 'train'、'test'、'valid' 三個子集
print(train_dataset)
print(valid_dataset)
print(split_dataset['test'])
- 最後,我們將這三個子集組合起來,創建一個完整的資料集。
pythonCopy codefrom datasets import DatasetDict
dataset = DatasetDict({
'train': train_dataset,
'valid': valid_dataset,
'test': split_dataset['test'],
})
# 現在,dataset 有 'train'、'test'、'valid' 三個子集
print(dataset['train'])
print(dataset['valid'])
print(dataset['test'])
在這個例子中,我們首先創建了一個包含 ‘text’ 和 ‘label’ 的資料集,然後使用 train_test_split
函數來創建 ‘train’ 和 ‘test’ 子集,最後再從 ‘train’ 子集中分割出一部分作為 ‘valid’ 子集。所有的子集都被存儲在一個 DatasetDict
對象中,你可以用分割的名稱來存取對應的子集。