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 accept a string of text as input and return a list of tuples representing the top 10 most frequent words and their counts. If the text has fewer than 10 unique words, it should return all of them.
  
  def top_10_words(text):
      from collections import Counter
      words = text.split()
      counter = Counter(words)
      top_words = counter.most_common(10)
      return top_words
  
  assert top_10_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_10_words("one two two three three three four four four four five five five five five six six six six six six seven seven seven seven seven seven seven") == [('seven', 7), ('six', 6), ('five', 5), ('four', 4), ('three', 3), ('two', 2), ('one', 1)]
  assert top_10_words("") == []
  assert top_10_words("a b c d e f g h i j k") == [('a', 1), ('b', 1), ('c', 1), ('d', 1), ('e', 1), ('f', 1), ('g', 1), ('h', 1), ('i', 1), ('j', 1)]
output: def top_10_words(text):
      from collections import Counter
      words = text.split()
      counter = Counter(words)
      top_words = counter.most_common(10)
      return top_words