# Shuffle the dataset df = df.sample(frac=1, random_state=42).reset_index(drop=True) # Split into train, validation, and test sets train_frac = 0.7 valid_frac = 0.15 test_frac = 0.15 # define train and validation size train_size = int(train_frac * len(df)) valid_size = int(valid_frac * len(df)) # create train, validation, and test datasets df_train = df[:train_size] df_valid = df[train_size:train_size + valid_size] df_test = df[train_size + valid_size:] # Convert the pandas DataFrames back to Hugging Face Datasets train_ds = Dataset.from_pandas(df_train) valid_ds = Dataset.from_pandas(df_valid) test_ds = Dataset.from_pandas(df_test) # Combine into a DatasetDict dataset_dict = DatasetDict({ 'train': train_ds, 'valid': valid_ds, 'test': test_ds })