input: Write a function to create a natural language processing application in Python that extracts the top 10 most frequent words from a given text. The function should return a list of tuples where each tuple contains a word and its frequency.
  from collections import Counter
  
  def top_frequent_words(text):
      # Split the text into individual words
      words = text.split()
  
      # Create a counter object
      counter = Counter(words)
  
      # Get the top 10 most frequent words
      top_words = counter.most_common(10)
  
      return top_words
  
  assert top_frequent_words("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") == [('dolor', 1), ('Lorem', 1), ('ipsum', 1), ('amet', 1), ('consectetur', 1), ('adipiscing', 1), ('elit,', 1), ('sed', 1), ('do', 1), ('eiusmod', 1)]
  assert top_frequent_words("The quick brown fox jumps over the lazy dog. The dog was not amused.") == [('The', 2), ('dog.', 1), ('brown', 1), ('fox', 1), ('jumps', 1), ('over', 1), ('lazy', 1), ('The', 1), ('dog', 1), ('was', 1)]
  assert top_frequent_words("") == []
  assert top_frequent_words("word word word word word word word word word word") == [('word', 10)]
output: def top_frequent_words(text):
      words = text.split()
      counter = Counter(words)
      top_words = counter.most_common(10)
      return top_words