input: Write a function to create a machine learning algorithm using an SVM classifier to categorize a dataset of records. The function should accept a dataset as input and return the predicted label for a given set of features. If the dataset is empty, return None.
  assert categorize_records([{"label": "apple", "features": [1, 1, 0]}, {"label": "banana", "features": [0, 1, 1]}, {"label": "lemon", "features": [0, 0, 1]}, {"label": "orange", "features": [1, 0, 0]}, {"label": "pear", "features": [0, 1, 0]}], [1, 0, 1]) == "banana"
  assert categorize_records([{"label": "apple", "features": [1, 1, 0]}, {"label": "banana", "features": [0, 1, 1]}, {"label": "lemon", "features": [0, 0, 1]}], [0, 1, 0]) == "banana"
  assert categorize_records([], [1, 0, 1]) == None
  assert categorize_records([{"label": "apple", "features": [1, 1, 0]}], [1, 0, 0]) == "apple"
output: def categorize_records(dataset, features):
      if not dataset:
          return None
      
      from sklearn import svm
      from sklearn.model_selection import train_test_split
      
      X = [record["features"] for record in dataset]
      y = [record["label"] for record in dataset]
      
      clf = svm.SVC()
      clf.fit(X, y)
      
      return clf.predict([features])[0]