input: Write a function to extract the top 10 most frequent words from a given text using natural language processing techniques. If the text contains fewer than 10 distinct words, return all distinct words in descending order of frequency. If the text is empty, return an empty list.
  assert get_top_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 get_top_words("") == []
  assert get_top_words("apple banana apple cherry banana apple") == [('apple', 3), ('banana', 2), ('cherry', 1)]
output: def get_top_words(text):
      if not text:
          return []
      words = text.split()
      freq = {}
      for word in words:
          if word in freq:
              freq[word] += 1
          else:
              freq[word] = 1
      sorted_words = sorted(freq.items(), key=lambda x: x[1], reverse=True)
      return sorted_words[:10]