input: Write a function to print the top 5 most frequent words in a given sentence. The function should split the sentence into words, count the frequency of each word using the `collections.Counter` class, and then find and print the top 5 most frequent words. If the input sentence is empty, the function should print an empty list.
  assert top_5_frequent_words("Python is an interpreted, high-level, general-purpose programming language.")==[('Python', 1), ('is', 1), ('an', 1), ('interpreted,', 1), ('high-level,', 1)]
  assert top_5_frequent_words("The quick brown fox jumps over the lazy dog.")==[('The', 1), ('quick', 1), ('brown', 1), ('fox', 1), ('jumps', 1)]
  assert top_5_frequent_words("Hello world world Hello!")==[('Hello', 2), ('world', 2), ('!', 1), ('world', 2), ('Hello', 2)]
  assert top_5_frequent_words("")==[]
output: def top_5_frequent_words(sentence):
      if not sentence:
          return []
      words = sentence.split()
      word_counts = Counter(words)
      top_5 = word_counts.most_common(5)
      return top_5