code: def train_valid_split(dataset, valid_ratio=0.05):
      
      if not 0.0 <= valid_ratio <= 1.0:
          raise ValueError('valid_ratio should be in [0, 1]')
  
      num_train = len(dataset)
      num_valid = np.ceil(num_train * valid_ratio).astype('int')
      indices = np.arange(num_train)
  
      np.random.shuffle(indices)
      valid = SimpleDataset([dataset[indices[i]] for i in range(num_valid)])
      train = SimpleDataset([dataset[indices[i + num_valid]] for i in range(num_train - num_valid)])
      return train, valid
docs: Split the dataset into training and validation sets.
  
      Parameters
      ----------
      dataset : list
          A list of training samples.
      valid_ratio : float, default 0.05
          Proportion of training samples to use for validation set
          range: [0, 1]
  
      Returns
      -------
      train : SimpleDataset
      valid : SimpleDataset