input: Write a function to find and print the top 5 most frequent words in a given sentence. The function should return a list of tuples where each tuple contains a word and its frequency.
  
  
  def top_5_frequent_words(sentence):
      import collections
      words = sentence.split()
      counter = collections.Counter(words)
      return counter.most_common(5)
  
  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', 2), ('over', 1), ('quick', 1), ('brown', 1), ('fox', 1)]
  assert top_5_frequent_words("Python Python Python is fun and Python makes things easier")==[('Python', 4), ('and', 1), ('easier', 1), ('fun', 1), ('is', 1)]
  assert top_5_frequent_words("a a a a a b b b b b c c c c d d d e e f g h")==[('a', 5), ('b', 5), ('c', 4), ('d', 3), ('e', 2)]
  assert top_5_frequent_words("")==[]
  
output: def top_5_frequent_words(sentence):
      import collections
      words = sentence.split()
      counter = collections.Counter(words)
      return counter.most_common(5)